Toon posts:

[php] Waarde aan random ID hangen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey!
Misschien dat somige van jullie het wel kennen: clickbank.com. Het gaat erom om dingen (in mjin geval smsjes) te verkopen via creditcard aan je users. Om te zien of er succesvol is betaald, kan je in de url een 'seed' meegeven die vervolgens met behulp van een personal key gecodeerd word, waarna je de seed weer terug krijgt samen met de gecodeerde. Dan kan je dus zelf weer met een script checken of er succesvol is betaald. Helemaal bulletproof dus ;)
Nu d8 ik dus het volgende: omdat ik 6 verschillende hoeveelheden smsjes verkoop, genereer ik 6 verschillende seeds. Deze seed sla ik samen met de bijbehorende hoeveelheid smsjes op in een db. Als er dan dus succesvol is betaald, lees ik uit hoeveel smsjes bij de seed horen en voeg deze toe aan de user. Dan verwijder ik natuurlijk de seed uit de db om refreshen te voorkomen..

Lang verhaal, maar het komt er op neer dat er laatst iets mis is gegaan en ik denk dat het komt door de db. Er was nl nix toegevoegd aan de account. Er zaten zo'n 900 oude ongebruikte seeds in de db, dus misschien een dubbele??
Anyway, ik vroeg me dus af of jullie een verbetering weten voor mijn systeem???



BTW. Dat clickbank is wel een aanrader denk voor kleine ondernemingen ;) Je betaalt 1 keer $50 en daarna alleen 10% op elke aankoop. http://www.clickbank.com/

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Tja heb je rekening gehouden met transacties? Oftewel, stel je MySQL, PHP of server crasht halverwege het script, al wel verzonden, maar nog niet afgeschreven. Heb je een vangnet voor deze gevallen?

Verwijderd

Topicstarter
Op donderdag 09 mei 2002 20:58 schreef Orphix het volgende:
Tja heb je rekening gehouden met transacties? Oftewel, stel je MySQL, PHP of server crasht halverwege het script, al wel verzonden, maar nog niet afgeschreven. Heb je een vangnet voor deze gevallen?
Ehm, nee niet echt.. Ja manual, ik krijg wel email-afschiften zegmaar, die controleer ik wel in de db, zeker omdat ik nu net ben begonnen, maar voor op de lange termijn is het wel handy als alles gewoon werkt!

Ik zit nu trouwens ook met het probleem van een vol lopende db, want ongebruikte seeds blijven gewoon staan! zou niet weten hoe ik die weg haal?! Verantwoord!!

Verwijderd

Topicstarter
Ja shit! Weer iemand waarbj het mis is gegaan! Damn!
Is er echt niemand die een beter id heeft??

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 07-09 10:24

Altaphista

1. check manual, 2. ask

Dus er is iets misgegaan tijdens het toevoegen in de db? Of met make_seed()?

Je gaat het pas zien als je het doorhebt.


Verwijderd

Topicstarter
Op vrijdag 10 mei 2002 12:17 schreef Altaphista het volgende:
Dus er is iets misgegaan tijdens het toevoegen in de db? Of met make_seed()?
Ja wist ik dat maar!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Wat verwacht je van ons? :?

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
nou goed, hier wat stukjes code die ik gebruik:

voor betaling:
PHP:
1
<?function Generate_Pass ($pass_len) {   $nps = "";   mt_srand ((double) microtime() * 1000000);   while (strlen($nps)<$pass_len) {     $c = chr(mt_rand (0,255));     if (eregi("^[A-Z0-9]$", $c)) $nps = $nps.$c;   }  $nps = strtoupper ($nps);  return ($nps); }$pass50=Generate_Pass (8); mysql_query("INSERT INTO `temp` (`seed`, `credits`) VALUES ('$pass50', '50')");$pass100=Generate_Pass (8); mysql_query("INSERT INTO `temp` (`seed`, `credits`) VALUES ('$pass100', '100')");$pass250=Generate_Pass (8); mysql_query("INSERT INTO `temp` (`seed`, `credits`) VALUES ('$pass250', '250')");$pass500=Generate_Pass (8); mysql_query("INSERT INTO `temp` (`seed`, `credits`) VALUES ('$pass500', '500')");$pass1000=Generate_Pass (8); mysql_query("INSERT INTO `temp` (`seed`, `credits`) VALUES ('$pass1000', '1000')");$pass4000=Generate_Pass (8); mysql_query("INSERT INTO `temp` (`seed`, `credits`) VALUES ('$pass4000', '4000')");?>

Na betaling:
PHP:
1
<?function valid($b, $c, $a) { // clickbank validation script  return `./crypto.cgi $a $b $c`;}$payment = valid("$seed","$cbpop","$SECRET_KEY");if($payment == 1){//Check how much credits$result = mysql_query("SELECT * FROM temp WHERE seed='$seed'");$row = mysql_fetch_array($result);if(!$row){echo "<b>ERROR</b><p>There's something wrong!<br>Contact <a href=\"mailto:service@4sms.biz\">service@4sms.biz</a> for more information!";include("foot.inc.php");exit;}$a_credits = $row['credits'];//add those creditsmysql_query("UPDATE users SET credits=credits+$a_credits WHERE login='$username'");//delete seedmysql_query("DELETE FROM `temp` WHERE `seed` = '$seed'");//save new credits-session$result = mysql_query("SELECT * FROM users WHERE login='$username'");$row = mysql_fetch_array($result);$fcredits = $row['credits'];session_register("fcredits"); ?>

Misschien dat jullie hier meer mee kunnen??

Verwijderd

Topicstarter
hmmz, misschien dat het is dat die $username uit de session verlopen is, maar dat gebeurt pas na 24 minuten.
Is het anders slim om de username ook ik de tabel erbij te saven?? En dan daarna weer uitlezen bij de seed.. Slim??

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Wat garandeert dat seed unique is?

[edit]
btw. Inspringen is wel handig hoor....

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
Op vrijdag 10 mei 2002 14:01 schreef LuCarD het volgende:
Wat garandeert dat seed unique is?

[edit]
btw. Inspringen is wel handig hoor....
Ja nix eigenlijk.. daarvoor schakel ik jullie hulp in ;)
Pagina: 1