max 10 downloads per dag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Afg

afg

29/01/2009 21:05:00
Quote Anchor link
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?

Alvast bedankt
Gewijzigd op 01/01/1970 01:00:00 door Afg
 
PHP hulp

PHP hulp

05/11/2024 12:27:54
 
Frank -

Frank -

29/01/2009 21:07:00
Quote Anchor link
Het gebruik van een database ligt voor de hand, cookies kan iemand zelf weggooien.

Wat weet je van databases en welke database heb je tot je beschikking?
 
Jurgen assaasas

Jurgen assaasas

29/01/2009 22:04:00
Quote Anchor link
Tel het aantal downloads bij de dag, is dit 10 of hoger geef een melding dat het limiet van de dag is bereikt, klaar.
 
Afg

afg

30/01/2009 11:18:00
Quote Anchor link
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..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
            }
        }
    }

?>
Gewijzigd op 01/01/1970 01:00:00 door afg
 
Afg

afg

30/01/2009 11:31:00
Quote Anchor link
ik heb het al..:D
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
            }
        }
    }

Maar misschien kan het simpeler...

Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door afg
 
Frank -

Frank -

30/01/2009 11:37:00
Quote Anchor link
Offtopic: Waarom zo vreselijk moeilijk doen in PHP met de datumtijd wanneer je in SQL gewoon over de functie NOW() beschikt?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT NOW();


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.
 
Afg

afg

30/01/2009 13:08:00
Quote Anchor link
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
 

30/01/2009 13:48:00
Quote Anchor link
afg schreef op 30.01.2009 13:08:
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.