Referall (uitgebreider)

Door EdwinG , 17 jaar geleden, 2.393x bekeken

Dit referall systeem is te gebruiken bij een online-spel, waar de deelnemers punten moeten verzamelen door referalls naar de site te verwijzen, zoals bij "Kings Of Chaos" en "Criminals".

Verwacht wordt dat in de database een tabel staat met de gebruikers, en dat de credits ook in die tabel staan. Verder moeten de gebruikers een ID hebben (kolomnaam 'id'), dat numeriek en uniek is.

De naam van de 'credits' kolom kan worden aangegeven in het script.

Naast de bestaande tabel komt een controle tabel (naam zelf te kiezen), die per IP-adres bijhoud wanneer het laatste bezoek was. (om eenvoudige 'F5' acties te voorkomen.

Voorbeeld niet beschikbaar.

Gesponsorde koppelingen

PHP script bestanden

  1. referall-uitgebreider

 

Er zijn 16 reacties op 'Referall uitgebreider'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


17 jaar geleden
 
0 +1 -0 -1
Ik zou wat meer enkele quotes gebruiken. Voor de rest ziet het er goed uit, want je houd de variabelen netjes buiten de quotes of in de accolades.
Jelle -
Jelle -
17 jaar geleden
 
0 +1 -0 -1
Het ziet er goed uit.
Offtopic:

ik heb alleen wel iets op te merken over je manier van schrijven in mysql.

we nemen onderstaand voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
// jij doet dit
$sql = "SELECT tijd FROM {$controle_tabel} WHERE adres = '{$ip_adres}';";

// maar volgens mij hoord het zo
$sql = "SELECT tijd FROM ".$controle_tabel." WHERE adres = '".$ip_adres."';";

?>


jouw manier werkt ook maar volgens mij hoord het niet zo.
je ziet bij de manier dat ik voordeed ook meteen waar je variabelen staan ;)

edit:
teminste als je script programma's met kleuren verschil gebruikt zoals dreamweaver :P
EdwinG
EdwinG
17 jaar geleden
 
0 +1 -0 -1
Ik gebruik VIM of Gedit (linux programma's) voor php, die bieden ook syntax highlighting. Beide geven variabelen die binnen { } staan aan in een aparte kleur. Met { } worden variabelen overigens goed gescheiden, en het is 1 van de manieren die op php.net worden aangegeven.
Jelle -
Jelle -
17 jaar geleden
 
0 +1 -0 -1
okeej wist ik niet.
dan heb ik niets gezecht.
Davy Jansen
Davy Jansen
17 jaar geleden
 
0 +1 -0 -1
offtopic: @jordy
Nederlands: "gezecht" -> gezegd ;)


17 jaar geleden
 
0 +1 -0 -1
En Gehoort ipv Gehoord


17 jaar geleden
 
0 +1 -0 -1
Damn slecht Nederlands zeg. Zeker veel te lang achter MSN gezeten?
EdwinG
EdwinG
17 jaar geleden
 
0 +1 -0 -1
Gehoord is wel met een D (r zit niet in het overbekende kofschip/fokschaap/uitschuifpik)
Jelle -
Jelle -
17 jaar geleden
 
0 +1 -0 -1
Respect voor mijn nerderlands.
Ik zit inderdaad vaak achter msn. Ben niet zo goed (lees: zeer slecht) in taal. En ben dyslecties. En ik weet niet zeker of ik dat woord goed geschreven heb.
Voorderest vind ik dit Referall script goed :)
Jelle -
Jelle -
17 jaar geleden
 
0 +1 -0 -1
dan moet je nog 4 uur wachten. want bij die foutmelding wordt de database niet aangepast.
EdwinG
EdwinG
17 jaar geleden
 
0 +1 -0 -1
Zoals jordy al zei: Je moet dan nog 4 uur wachten, omdat de database niet wordt aangepast. Wil je de gebruiker straffen door de timout weer naar het maximum te gooien, dan moet je de volgende aanpassing maken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
    if ( $verschil < $minimaal_verschil )
    {

        // Niet lang genoeg gewacht
        die('U bent kort geleden nog hier geweest, uw bezoek wordt niet geteld');
    }

    else
    {
        // Voer huidige tijd in in de database
        $sql = "UPDATE {$controle_tabel} SET tijd = '{$huidige_tijd}' WHERE adres = '{$ip_adres}';";
        mysql_query($sql) or die ("Fout met de database (update)");
    }

?>


Vervangen door

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
    // Voer huidige tijd in in de database
    $sql = "UPDATE {$controle_tabel} SET tijd = '{$huidige_tijd}' WHERE adres = '{$ip_adres}';";
    mysql_query($sql) or die ("Fout met de database (update)");
    if ( $verschil < $minimaal_verschil )
    {

        // Niet lang genoeg gewacht
        die('U bent kort geleden nog hier geweest, uw bezoek wordt niet geteld');
    }

?>
Jeroen
Jeroen
17 jaar geleden
 
0 +1 -0 -1
Ik krijg Ongeldige ID, bewerking gestopt
Ik heb gekeken in het script maar snap niet waarom ik die melding krijg.
Peter Wessels
Peter Wessels
17 jaar geleden
 
0 +1 -0 -1
Ik wil graag weten als je bijv. 100 credits hebt dat je dan een site kunt bezoeken en dat er dan weer credits vanaf gaan kun je daare een code voor maken??
Geert-Jan
Geert-Jan
15 jaar geleden
 
0 +1 -0 -1
Hoi peter ik heb pas geleden nog zon script gemaakt
hier is ie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
include("config.php");
include("safe.php");
  
   mysql_query("UPDATE gebruikers SET credits = credits-1 WHERE id = '".$_SESSION['user_id']."'");
  
   echo 'Er is 1 credit afgeschreven';

?>
Max
Max
15 jaar geleden
 
0 +1 -0 -1
Ik krijg Ongeldige ID, bewerking gestopt
Ik heb gekeken in het script maar snap niet waarom ik die melding krijg.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Orhan T
Orhan T
15 jaar geleden
 
0 +1 -0 -1
Ik keur de tabel betreft tijd BGINT af. Hiervoor heb je de type TIME. Dit zou moeten worden gewijzigd door een mod ofzo

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. referall-uitgebreider

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.