max 10 downloads per dag
ik wil graag een script maken waardoor elke ip-adres maar 10 keer per dag mag downloaden..alleen ik weet niet zo goed hoe...moet ik het met cookies doen?..of met een database?
Wat weet je van databases en welke database heb je tot je beschikking? Het gebruik van een database ligt voor de hand, cookies kan iemand zelf weggooien.
ik heb tot zover gekregen dat het controleert op downloads...alleen ik weet niet hoe ik het van de laatste 24 uur moet controlleren...ik dacht iets met INTERVAL..
Maar misschien kan het simpeler...
ik heb het al..:D
Uiteraard kun je die ook in INSERT, UPDATE en DELETE-queries gebruiken, net wat jij leuk/handig vindt. PHP komt daar niet aan te pas, nergens voor nodig. Offtopic: Waarom zo vreselijk moeilijk doen in PHP met de datumtijd wanneer je in SQL gewoon over de functie NOW() beschikt?
Als ik dat gebruik komt er een hele andere tijd..
Met php date is het ook zo..
Geen idee waarom
Je houd het bij in de db dus gebruik je maar mooi de db functie.
Wat weet je van databases en welke database heb je tot je beschikking?
Tel het aantal downloads bij de dag, is dit 10 of hoger geef een melding dat het limiet van de dag is bereikt, klaar.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$now = new DateTime('now', new DateTimeZone('Europe/Amsterdam'));
$sql1 = mysql_query("SELECT * FROM downloads where ip='".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());
if(mysql_num_rows($sql1) == "0"){
mysql_query("INSERT INTO downloads SET ip = '".$_SERVER['REMOTE_ADDR']."',
date='".$now->format('Y-m-d H:i:s')."', downloads= '1' ") or die(mysql_error());
// download bestand
}else{
while($data1 = mysql_fetch_object($sql1)) {
if($data1->downloads < "9"){
$down=$data1->downloads+1;
mysql_query("UPDATE downloads SET downloads= '".$down."',date='".$now->format('Y-m-d H:i:s')."' where ip = '".$_SERVER['REMOTE_ADDR']."' ") or die(mysql_error());
// download bestand
}else{
// download limiet bereikt
}
}
}
?>
$now = new DateTime('now', new DateTimeZone('Europe/Amsterdam'));
$sql1 = mysql_query("SELECT * FROM downloads where ip='".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());
if(mysql_num_rows($sql1) == "0"){
mysql_query("INSERT INTO downloads SET ip = '".$_SERVER['REMOTE_ADDR']."',
date='".$now->format('Y-m-d H:i:s')."', downloads= '1' ") or die(mysql_error());
// download bestand
}else{
while($data1 = mysql_fetch_object($sql1)) {
if($data1->downloads < "9"){
$down=$data1->downloads+1;
mysql_query("UPDATE downloads SET downloads= '".$down."',date='".$now->format('Y-m-d H:i:s')."' where ip = '".$_SERVER['REMOTE_ADDR']."' ") or die(mysql_error());
// download bestand
}else{
// download limiet bereikt
}
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door afg
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$now = new DateTime('now', new DateTimeZone('Europe/Amsterdam'));
$sql2 = mysql_query("SELECT * FROM downloads where ip='".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());
$sql1 = mysql_query("SELECT * FROM downloads where ip='".$_SERVER['REMOTE_ADDR']."' AND date >= NOW() - INTERVAL 1 DAY") or die(mysql_error());
if(mysql_num_rows($sql1) == "0"){
if(mysql_num_rows($sql2) == "0"){
mysql_query("INSERT INTO downloads SET ip = '".$_SERVER['REMOTE_ADDR']."',
date='".$now->format('Y-m-d H:i:s')."', downloads= '1' ") or die(mysql_error());
}else{
mysql_query("UPDATE downloads SET downloads= '1',
date='".$now->format('Y-m-d H:i:s')."' where ip = '".$_SERVER['REMOTE_ADDR']."' ")
or die(mysql_error());
}
// download bestand
}else{
while($data1 = mysql_fetch_object($sql1)) {
if($data1->downloads < "9"){
$down=$data1->downloads+1;
mysql_query("UPDATE downloads SET downloads= '".$down."',date='".$now->format('Y-m-d H:i:s')."' where ip = '".$_SERVER['REMOTE_ADDR']."' ") or die(mysql_error());
// download bestand
}else{
// download limiet bereikt
}
}
}
$sql2 = mysql_query("SELECT * FROM downloads where ip='".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());
$sql1 = mysql_query("SELECT * FROM downloads where ip='".$_SERVER['REMOTE_ADDR']."' AND date >= NOW() - INTERVAL 1 DAY") or die(mysql_error());
if(mysql_num_rows($sql1) == "0"){
if(mysql_num_rows($sql2) == "0"){
mysql_query("INSERT INTO downloads SET ip = '".$_SERVER['REMOTE_ADDR']."',
date='".$now->format('Y-m-d H:i:s')."', downloads= '1' ") or die(mysql_error());
}else{
mysql_query("UPDATE downloads SET downloads= '1',
date='".$now->format('Y-m-d H:i:s')."' where ip = '".$_SERVER['REMOTE_ADDR']."' ")
or die(mysql_error());
}
// download bestand
}else{
while($data1 = mysql_fetch_object($sql1)) {
if($data1->downloads < "9"){
$down=$data1->downloads+1;
mysql_query("UPDATE downloads SET downloads= '".$down."',date='".$now->format('Y-m-d H:i:s')."' where ip = '".$_SERVER['REMOTE_ADDR']."' ") or die(mysql_error());
// download bestand
}else{
// download limiet bereikt
}
}
}
Maar misschien kan het simpeler...
Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door afg
Uiteraard kun je die ook in INSERT, UPDATE en DELETE-queries gebruiken, net wat jij leuk/handig vindt. PHP komt daar niet aan te pas, nergens voor nodig.
Quote:
Offtopic: Waarom zo vreselijk moeilijk doen in PHP met de datumtijd wanneer je in SQL gewoon over de functie NOW() beschikt?
Als ik dat gebruik komt er een hele andere tijd..
Met php date is het ook zo..
Geen idee waarom
Gewijzigd op 01/01/1970 01:00:00 door afg
afg schreef op 30.01.2009 13:08:
Als ik dat gebruik komt er een hele andere tijd..
Met php date is het ook zo..
Geen idee waarom
Quote:
Offtopic: Waarom zo vreselijk moeilijk doen in PHP met de datumtijd wanneer je in SQL gewoon over de functie NOW() beschikt?
Als ik dat gebruik komt er een hele andere tijd..
Met php date is het ook zo..
Geen idee waarom
Je houd het bij in de db dus gebruik je maar mooi de db functie.