Hiya,
Ik gebruik zelf dit script van Targetpay:
Na de betaling kom je uit op de url website.nl/betaald.php met alleen bovenstaande script. Echter, als je deze pagina blijft refreshen (f5en) blijft ie dus je muntjes verdubbelen. Hoe kan ik dit precies voorkomen? Via Targetpay verloopt de betaling namelijk pas na 10 min en verlagen kan niet voor zover ik weet.
Mysqli is inderdaad beter, I know, maar daar gaat het nu even niet over, negeer dat pl0x.
Alvast bedankt!
Ik gebruik zelf dit script van Targetpay:
[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/session_start"]session_start[/URL][COLOR= #007700]();[/COLOR]
[URL="http://www.php.net/mysql_connect"]mysql_connect[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"localhost"[/COLOR] [COLOR= #007700],[/COLOR] [COLOR= #DD0000]"naam"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"ww"[/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_error"]mysql_error[/URL][COLOR= #007700]());[/COLOR]
[URL="http://www.php.net/mysql_select_db"]mysql_select_db[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"db"[/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_error"]mysql_error[/URL][COLOR= #007700]());[/COLOR]
[COLOR= #FF8000]// Buitenlandse servers moeten met dezelfde time zone rekenen [/COLOR]
[URL="http://www.php.net/ini_set"]ini_set[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"date.timezone"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"Europe/Amsterdam"[/COLOR][COLOR= #007700]);
function[/COLOR] access[COLOR= #007700]()
{[/COLOR]
[COLOR= #FF8000]//Parameters welke vanuit TargetPay worden meegestuurd [/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700](![/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]"accesscode"[/COLOR][COLOR= #007700]]) || ![/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]"time"[/COLOR][COLOR= #007700]]) || ![/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]"ip"[/COLOR][COLOR= #007700]])) {[/COLOR]
[URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Ongeldige url"[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #0000BB]$accesscode[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]"accesscode"[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$time[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]"time"[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$ip[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]"ip"[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #FF8000]// Tijd moet groter zijn dan de targetpay Epoch tijd [/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]() <[/COLOR] [COLOR= #0000BB]$time[/COLOR] [COLOR= #007700])
{[/COLOR]
[URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Lokale tijd is "[/COLOR][COLOR= #007700]. ([/COLOR][URL="http://www.php.net/time"]time[/URL][COLOR= #007700]()-[/COLOR][COLOR= #0000BB]$time[/COLOR][COLOR= #007700]) .[/COLOR][COLOR= #DD0000]"sec. vroeger dan op Targetpay.com"[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]// Remote address moet gelijk zijn als in het betaalscherm
// Note: Sommige Proxy servers veranderen het IP adres.
// Mocht u hier problemen mee ondervinden, schakel dan het die() statement uit. [/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR] [COLOR= #0000BB]$ip[/COLOR] [COLOR= #007700]<>[/COLOR] [COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]"HTTP_CF_CONNECTING_IP"[/COLOR][COLOR= #007700]] )
{
}[/COLOR]
[COLOR= #FF8000]// Betalings URL is c*10 minuten geldig [/COLOR]
[URL="http://www.php.net/for"]for[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700]<=[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700]++)
{[/COLOR]
[COLOR= #0000BB]$t[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strftime"]strftime[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"%Y%m%d%H%M"[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]()-([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700]*[/COLOR][COLOR= #0000BB]600[/COLOR][COLOR= #007700])),[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]11[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$hash[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/md5"]md5[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$ip[/COLOR][COLOR= #007700].[/COLOR] [COLOR= #DD0000]"33a633c779"[/COLOR][COLOR= #007700].[/COLOR] [COLOR= #0000BB]$t[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR] [COLOR= #0000BB]$hash[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]$accesscode[/COLOR] [COLOR= #007700])[/COLOR] [URL="http://www.php.net/return"]return[/URL] true[COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] false[COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](![/COLOR]access[COLOR= #007700]())
{[/COLOR]
[URL="http://www.php.net/die"]die[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]"U heeft niet betaald of de betaling is verlopen. "[/COLOR][COLOR= #007700]);
}[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Je hebt betaald!"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"UPDATE leden SET muntjes = muntjes+ 50 WHERE id = "[/COLOR][COLOR= #007700].[/COLOR][URL="http://www.php.net/mysql_real_escape_string"]mysql_real_escape_string[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]user[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]]).[/COLOR][COLOR= #DD0000]""[/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_error"]mysql_error[/URL][COLOR= #007700]());[/COLOR]
?> Na de betaling kom je uit op de url website.nl/betaald.php met alleen bovenstaande script. Echter, als je deze pagina blijft refreshen (f5en) blijft ie dus je muntjes verdubbelen. Hoe kan ik dit precies voorkomen? Via Targetpay verloopt de betaling namelijk pas na 10 min en verlagen kan niet voor zover ik weet.
Mysqli is inderdaad beter, I know, maar daar gaat het nu even niet over, negeer dat pl0x.
Alvast bedankt!