Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: directadmin dotpay
Forum PHP.pl > Forum > PHP
de_gie
Witam serdecznie mam taki kod jak niżej. Tworzenie kont jest płatne przez dotpay i otrzymuje się kod który jest 1 raz ważny na końcu jest warunek że jak error=0 to brak błędów i jest super ale w przypadku gdy będzie np login i będzie error=1 to konto się nie utworzy i po drugiej probie kod wykupiony jest już nie aktywny nieprawidłowy jak można było by to obejść?


  1. $handle = fopen("http://dotpay.pl/check_code.php?&check=".$check."&id=".$id1."&code=".$code1."&type=".$type."&del=1".$del, 'r');
  2. $status = fgets($handle, 8);
  3. $czas_zycia = fgets($handle, 24);
  4. fclose($handle);
  5. $czas_zycia = rtrim($czas_zycia);
  6.  
  7. $handle2 = fopen("http://dotpay.pl/check_code.php?&check=".$check."&id=".$id2."&code=".$code2."&type=".$type."&del=1".$del, 'r');
  8. $status2 = fgets($handle2, 8);
  9. $czas_zycia2 = fgets($handle2, 24);
  10. fclose($handle2);
  11. $czas_zycia2 = rtrim($czas_zycia2);
  12.  
  13.  
  14.  
  15. if ($status == 0 AND $status2 == 0) {print "".$blad."Niepoprawny kod. <a href='java script:history.back()'>Spróbuj ponownie</a>".$bladend."";
  16. echo($POST_['telefon']);
  17.  
  18. exit;} # gdy kod niepoprawny
  19. else
  20. { # gdy kod poprawny:
  21.  
  22.  
  23.  
  24. if (!isset($_COOKIE['ActiveCode']))
  25. {
  26.  
  27. @setcookie('ActiveCode',1, time()+$czas_zycia);
  28. @setcookie('ActiveCode',2, time()+$czas_zycia2, "/");
  29.  
  30. }
  31. else
  32. {
  33.  
  34. @setcookie('ActiveCode',0, time()+2, "/");
  35. @setcookie('ActiveCode',1, time()+$czas_zycia, "/");
  36. @setcookie('ActiveCode',2, time()+$czas_zycia2, "/");
  37.  
  38. }
  39.  
  40.  
  41.  
  42. include 'includes/httpsocket.php';
  43.  
  44. $sock = new HTTPSocket;
  45.  
  46. $sock->connect($dahost,2222);
  47. $sock->set_login($dausername,$dapass);
  48.  
  49.  
  50. $sock->query('/CMD_API_ACCOUNT_USER',
  51. 'action' => 'create',
  52. 'domain' => $domain.".".$dahost,
  53. 'username' => $login,
  54. 'add' => 'Submit',
  55. 'email' => $email,
  56. 'passwd' => $pass,
  57. 'passwd2' => $pass,
  58. 'notify' => 'no',
  59. 'create' => 'Create',
  60. 'ip' => $daip,
  61. 'package' => $pakiet
  62. ));
  63. $result = $sock->fetch_parsed_body();
  64.  
  65.  
  66.  
  67. if ($result['error'] != "0")
  68. {
  69.  
  70. echo"<table width=\"99%\" border=\"0\" >
  71. <tr>
  72.  
  73. <td width=\"94%\"><br /><b><p style=\"background-color:red; color:white; font-size:14px; \">Błąd sporadyczny <br />Login lub domena już istnieją w naszej bazie. <br /> W razie problemów prosimy o kontakt.</p></b></td>
  74. </tr>
  75. </table>";
  76.  
  77.  
  78.  
  79. echo $result['details']."<br></b>\n";
  80. }
  81.  
  82.  
  83.  
  84. else
  85. {
  86.  
  87.  
  88.  
  89. mysql_query($insert);
  90. $headers = 'From: '.$adminemail . "\r\n" .
  91. 'Reply-To: '.$adminemail . "\r\n" .
  92. 'X-Mailer: PHP/' . phpversion();
  93. mail($email,"Nowe konto $login",$template,$headers);
  94.  
  95. echo"<META HTTP-EQUIV=\"Refresh\" CONTENT=\"2;URL=index.php?name=rejestracja&status=ok\"><br>";
  96. echo $ok;
  97.  
  98.  
  99.  
  100. }
  101.  
markonix
Gorsze ale prostsze - sprawdzasz najpierw wszystkie warunki, a na końcu prawidłowość kodu.
Wtedy jedyne co się może stać to coś się sypnąć przy dodawaniu - no ale po to są te wszystkie warunki aby do tego nie doszło.

No ale przyjmując, że jednak tak się stanie (np. zmiana struktury bazy) to wtedy warto zapisywać kody osobno z flagą użyty bądź nie.
Gdy kod jest nieprawidłowy sprawdzasz czy przypadkiem go nie ma w bazie w flagą used = 0.
Dopiero jak tu i tu nie ma wyświetlasz zły kod.

Takie archiwum kodów nie zaszkodzi, a też może dodać funkcjonalność np. możesz wygenerować ręcznie kod i go wrzucić do bazy i przekazać go zainteresowanemu.
de_gie
No chyba to najlepszy pomysł by w bazie odpytywać kody tylko nie bardzo wiem gdy użytkownik wyśle kod jak pobieram go do zmiennej i do bazy i jak mam zrobić by wykorzystany kod znaczyć jako zużyty?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.