referall-uitgebreider
--- SQL voor controle tabel ---
CREATE TABLE `controle_tabel` (
`adres` VARCHAR( 16 ) NOT NULL ,
`tijd` BIGINT UNSIGNED NOT NULL ,
INDEX ( `adres` )
) TYPE = MYISAM ;
--- Referall.php ---
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
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
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
<?php
/* Bedoeling van dit bestand is een referall systeem zoals bij 'Kings of Chaos' of 'Criminals'. */
// Vul hier de database gegevens in:
$db_server = 'localhost';
$db_gebruiker = 'gebruiker';
$db_wachtwoord = 'wachtwoord';
$db_naam = 'naam';
// Andere instelbare variabelen:
// Tabellen (gebruikers tabel, controle tabel)
$gebruikers_tabel = 'gebruikers';
$controle_tabel = 'controle';
// Aantal credits van 1 bezoek: (heel getal)
$credits = '1';
// Kolomnaam voor credits: (alleen letters)
$credits_kolom = 'credits';
// Per hoeveel uur mag 1 ip_adres gebruikt worden:
$timeout = '24';
//
// Hieronder niets meer aanpassen:
//
$ip_adres = $_SERVER['REMOTE_ADDR'];
if ( isset($_GET['id']) && is_numeric($_GET['id']) )
{
$gebruikers_id = $_GET['id'];
}
else
{
die('Ongeldige ID, bewerking gestopt');
}
$server = @mysql_connect($db_server,$db_gebruiker,$db_wachtwoord);
@mysql_select_db($db_naam,$server) or die('Verbinding met de database mislukt');
unset($db_server,$db_gebruiker,$db_wachtwoord,$db_naam);
// Is dit ip_adres lang genoeg niet gebruikt?
$sql = "SELECT tijd FROM {$controle_tabel} WHERE adres = '{$ip_adres}';";
$tmp = mysql_query($sql) or die("Fout met de database (lezen)");
if ( mysql_num_rows($tmp) == 1 )
{
// Bezoeker is eerder langs geweest, vergelijk de tijden
$tmp = mysql_fetch_array($tmp);
$laatste_bezoek = $tmp['tijd'];
$huidige_tijd = mktime();
$minimaal_verschil = $timeout * 3600;
$verschil = $huidige_tijd - $laatste_bezoek;
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)");
}
}
else
{
// Bezoeker is hier voor het eerst
$sql = "INSERT INTO {$controle_tabel} (adres, tijd) VALUES ('{$ip_adres}', '{$huidige_tijd}');";
mysql_query($sql) or die ("Fout met de database (invoegen)");
}
// Als we hier zijn aangekomen, mogen de credits worden toegekend
$sql = "UPDATE {$gebruikers_tabel} SET {$credits_kolom} = {$credits_kolom} + {$credits} WHERE id = '{$gebruikers_id}';";
mysql_query($sql) or die('Fout met de database (update)');
echo "Uw bezoek is geregistreerd, en de gebruiker heeft zijn/haar credits hiervoor ontvangen.";
?>
/* Bedoeling van dit bestand is een referall systeem zoals bij 'Kings of Chaos' of 'Criminals'. */
// Vul hier de database gegevens in:
$db_server = 'localhost';
$db_gebruiker = 'gebruiker';
$db_wachtwoord = 'wachtwoord';
$db_naam = 'naam';
// Andere instelbare variabelen:
// Tabellen (gebruikers tabel, controle tabel)
$gebruikers_tabel = 'gebruikers';
$controle_tabel = 'controle';
// Aantal credits van 1 bezoek: (heel getal)
$credits = '1';
// Kolomnaam voor credits: (alleen letters)
$credits_kolom = 'credits';
// Per hoeveel uur mag 1 ip_adres gebruikt worden:
$timeout = '24';
//
// Hieronder niets meer aanpassen:
//
$ip_adres = $_SERVER['REMOTE_ADDR'];
if ( isset($_GET['id']) && is_numeric($_GET['id']) )
{
$gebruikers_id = $_GET['id'];
}
else
{
die('Ongeldige ID, bewerking gestopt');
}
$server = @mysql_connect($db_server,$db_gebruiker,$db_wachtwoord);
@mysql_select_db($db_naam,$server) or die('Verbinding met de database mislukt');
unset($db_server,$db_gebruiker,$db_wachtwoord,$db_naam);
// Is dit ip_adres lang genoeg niet gebruikt?
$sql = "SELECT tijd FROM {$controle_tabel} WHERE adres = '{$ip_adres}';";
$tmp = mysql_query($sql) or die("Fout met de database (lezen)");
if ( mysql_num_rows($tmp) == 1 )
{
// Bezoeker is eerder langs geweest, vergelijk de tijden
$tmp = mysql_fetch_array($tmp);
$laatste_bezoek = $tmp['tijd'];
$huidige_tijd = mktime();
$minimaal_verschil = $timeout * 3600;
$verschil = $huidige_tijd - $laatste_bezoek;
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)");
}
}
else
{
// Bezoeker is hier voor het eerst
$sql = "INSERT INTO {$controle_tabel} (adres, tijd) VALUES ('{$ip_adres}', '{$huidige_tijd}');";
mysql_query($sql) or die ("Fout met de database (invoegen)");
}
// Als we hier zijn aangekomen, mogen de credits worden toegekend
$sql = "UPDATE {$gebruikers_tabel} SET {$credits_kolom} = {$credits_kolom} + {$credits} WHERE id = '{$gebruikers_id}';";
mysql_query($sql) or die('Fout met de database (update)');
echo "Uw bezoek is geregistreerd, en de gebruiker heeft zijn/haar credits hiervoor ontvangen.";
?>