Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[php] [sql] Aanpassen database na klikken op advertentie

Pagina: 1
Acties:
  • 182 views

  • kwanten
  • Registratie: Oktober 2000
  • Laatst online: 12-07 19:08

kwanten

Is goed bezig!!

Topicstarter
Ik ben een website gestart waar bezoekers prijzen kunnen winnen. De werking is simpel, een gebruiker wordt opgeslagen in een database aan de hand van zijn/haar ip-adres. Wanneer de bezoeker de pagina vernieuwd wordt het ip-adres vergeleken aan de hand van zijn/haar timestamp met de currenttime. Als er meer dan 3600 seconden tussen zit telt de bezoeker weer als nieuwe bezoeker. Dit zodat gebruikers niet continue F5-en om prijzen te winnen.

Ik wil nu graag bezoekers die op banners klikken belonen, wanneer een bezoeker op een google advertentie klikt wil ik dat de bezoeker direct weer telt als 'nieuwe' bezoeker. Hoe kan ik er voor zorgen dat na een klik op een google advertentie de database wordt aangepast? De code die ik nu heb staat hieronder:


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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
    $link = mysql_connect($host, $username, $password)
            or die("kan niet met database verbinden");
    mysql_select_db($dbase)
        or die("kan database niet selecteren"); 


    $queryLOCK = "LOCK TABLES teller WRITE, ipadressen WRITE, prizes WRITE";
    $resultLOCK = mysql_query($queryLOCK)   
                or die("Can't lock tables");

    $queryTELLER = "SELECT * FROM teller";
    $resultTELLER = mysql_query($queryTELLER)   
                or die("Can't retrieve count");

    $aantal = mysql_result($resultTELLER,0,'teller');
        
    $visitorip = trim($_SERVER['REMOTE_ADDR']);
    $currenttime = time();
    
    $queryCHECKIP = "SELECT * FROM ipadressen WHERE ipadres='$visitorip'";
    $resultCHECKIP = mysql_query($queryCHECKIP)     
                or die("Can't check");  
    
    if (mysql_num_rows($resultCHECKIP) == 0) {
        $aantal++;

        $queryINSERTIP = "INSERT INTO ipadressen(ipadres,timestamp,lastvisitorcount,totalvisitcount) VALUES('$visitorip',$currenttime,$aantal,1)";
        $resultINSERTIP = mysql_query($queryINSERTIP)   
                    or die("Can't insert"); 
    
        $queryINCREASETELLER = "UPDATE teller SET teller = teller + 1";
        $resultINCREASETELLER = mysql_query($queryINCREASETELLER)   
                    or die("Can't increase");
        $lastvisitorcount = $aantal;
        $totalvisitcount = 1;
        $usertext = "";
    }
    else {
    
        $timestamp = mysql_result($resultCHECKIP,0,'timestamp');
        $totalvisitcount = mysql_result($resultCHECKIP,0,'totalvisitcount');
        $lastvisitorcount = mysql_result($resultCHECKIP,0,'lastvisitorcount');
        
        
        if (($currenttime - $timestamp) > 3600) {
                
            $queryINCREASETELLER = "UPDATE teller SET teller = teller + 1";
            $resultINCREASETELLER = mysql_query($queryINCREASETELLER)   
                        or die("Can't update 1");
            $aantal++;  
            
            $queryUPDATEIP = "UPDATE ipadressen SET timestamp = $currenttime, lastvisitorcount = $aantal, totalvisitcount=totalvisitcount+1 WHERE ipadres = '$visitorip'";
            $resultUPDATEIP = mysql_query($queryUPDATEIP)   
                        or die("Can't update 2");
            
            $lastvisitorcount = $aantal;    
            $totalvisitcount++;     
            $usertext = "";     
        }
        else {
            $usertext = "Je bent al geweest bla bla bla";
        }
    }   
    
    $queryCHECKPRIZE = "SELECT * FROM prizes WHERE id=$lastvisitorcount";
    $resultCHECKPRIZE = mysql_query($queryCHECKPRIZE)   
                or die("Can't check 2");
    
    if (mysql_num_rows($resultCHECKPRIZE) == 1) {
        // JOEPIE JE HEBT EEN PRIJS GEWONNEN
        
        $prizename = mysql_result($resultCHECKPRIZE,0,'prizename');
        $ipadres = mysql_result($resultCHECKPRIZE,0,'ipadres');
        $timestamp = mysql_result($resultCHECKPRIZE,0,'timestamp');
        
        if (is_null($ipadres)) {
            // WINNAAR EERSTE KEER DAT IE HET ZIET
            
            ?><meta http-equiv="refresh" content="0; URL=wonprize.php?id=<? echo $lastvisitorcount; ?>"><?
                    
            $queryUPDATEPRIZE = "UPDATE prizes SET ipadres='$visitorip', timestamp=$currenttime WHERE id=$aantal";
            $resultUPDATEPRIZE = mysql_query($queryUPDATEPRIZE)     
                        or die("Can't update 3");           
        }
        else {
            // WINNAAR REFRESH
            
        }
        
    }                       
    
                
    if ($aantal == 100000000000000000) {
        
        
 
    }
    else {
    }
    
    $queryUNLOCK = "UNLOCK TABLES";
    $resultUNLOCK = mysql_query($queryUNLOCK)   
                or die("Can't unlock tables");  
                
?>

© kwanten 2001


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Om te beginnen wil Google helemaal niet dat je mensen gaat belonen om op advertenties te klikken en als je erop betrapt wordt suspenden ze je account. Daarnaast heeft je PHP-code niks te maken met het afvangen van een click-event, dat doe je bijvoorbeeld met Javascript. Bovendien kan ik je topic op deze manier alleen maar lezen als "Kan iemand even...?" en dat soort topics willen we hier niet zien. Ik mis elke vorm van eigen inzet. Zie ook De Quickstart.

Aangezien je tegen de voorwaarden van Google in gaat en we je daar sowieso niet mee gaan helpen en aangezien ik hier geen eigen inzet terugzie gaat dit topic op slot.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Dit topic is gesloten.