Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestracja php/mysql problem
Forum PHP.pl > Forum > PHP
iraq
Witam kiedys tworzylem stronke, ktorej tworzenie porzucilem
2 dni temu powrocilem do kodowania i postanowilem ja ukonczyc
Wczoraj stworzylem przypominanie hasla, a dzisiaj chcialem zrobic kod aktywacyjny
Stworzylem 2 nowe tabele w mysql
  1. kod_aktywacyjny varchar (40) NOT NULL,
  2. aktywny varchar (40) NOT NULL,

a w kodzie dopisalem niezbedne linijki oraz funkcje mail();

Moj kod wyglada tak:
  1. <?php
  2. require('bazadanych.php');
  3. if (isset($_POST['rkonto']) and isset($_POST['rpassword']) and isset($_POST['password2']) and isset($_POST['plec']) and isset($_POST['email']) and isset($_POST['imie']))
  4. {
  5. if ($_POST['rpassword']==$_POST['password2'])
  6. {
  7. $rkonto = mysql_real_escape_string (trim($_POST['rkonto']));
  8. $rpassword = $_POST['rpassword'];
  9. $plec = $_POST['plec'];
  10. $email = $_POST['email'];
  11. $imie = $_POST['imie'];
  12. $kod_aktywacyjny = 10000 + random(1, 29999) + random(1, 29999);
  13. $ile = mysql_query("SELECT * FROM `user` WHERE login = '$rkonto'");
  14. $ile = mysql_num_rows($ile);
  15. if( isset( $_POST['secure'] ) )
  16. {
  17. if($_POST['secure'] == $_SESSION['security_number'])
  18. {
  19. if ($ile==0) {
  20. $zapytanie="INSERT INTO user (login,password,plec,email,imie,serwer1,serwer2,serwer3,kasa,kod_aktywacyjny
    ,aktywny) VALUES ('$rkonto','$rpassword','$plec','$email','$imie', '0', '0', '0', '0', '$kod_aktywacyjny', '0')"
    ;
  21. mysql_query($zapytanie) or die("Wystąpił błąd" );
  22. echo('Konto '.$rkonto.' zostalo utworzone. Sprawdz swoja poczte w celu sprawdzenia kodu aktywacyjnego.');
  23. $email_temat = "Aktywacja konta uzytkownika ".$gracz;
  24. $email_wiadomosc = "Twoj kod aktywacyjny to: '$kod_aktywacyjny'";
  25. mail($email, $email_temat, $email_wiadomosc);
  26. }
  27. } else {
  28. echo('Wynik z obrazka sie nie zgadza');
  29. }
  30. }
  31. else
  32. {
  33. echo("Taki uzytkownik juz istnieje. Kliknij wstecz aby zarejestrowac sie ponownie");
  34. }
  35. }
  36. else echo ("Podane hasla nie zgadzaja sie");
  37. }
  38. else{
  39. ?>
  40. <html>
  41. <body>
  42. <script language="javascript" type="text/javascript">
  43. function reloadCaptcha()
  44. {
  45. document.getElementById('captcha').src = document.getElementById('captcha').src+ '?' +new Date();
  46. }
  47. </script>
  48. <h1>Dodaj nowego uzytkownika</h1>
  49. <form action="rejestracja.php" method="post">
  50. <strong>Nazwa konta:</strong><input name="rkonto" type="text" value="" /><br>
  51. <strong>Haslo:</strong><input name="rpassword" type="password" value="" /><br>
  52. <strong>Powtorz haslo:</strong><input name="password2" type="password" value="" /><br>
  53. <strong>Płeć: <select name="plec">
  54. <option value="M">Mezczyzna</option>
  55. <option value="K">Kobieta</option>
  56. </select><br />
  57. <strong>E-mail:</strong><input name="email" type="text" value="" /><br>
  58. <strong>Imie:</strong><input name="imie" type="text" value="" /><br>
  59. <form method="post" action="">
  60. <strong>Wynik z obrazka:<input type="text" name="secure" value="Tu wpisz wynik" onclick="this.value=''" /><br>
  61. <img src="image.php" alt="Kliknij, aby przeladowac obrazek" title="Kliknij, aby przeladowac obrazek" id="captcha" onclick="java script:reloadCaptcha()" />
  62. </form>
  63. <input type="submit" value="Zarejestruj" />
  64. </form>
  65. </body>
  66. </html>
  67. <?php
  68. }
  69. ?>

Kod, ktory dodalem zaznaczylem kursywą

Zapytanie wogole sie nie wykonuje i zwraca mi pusta strone, bez zadnego bledu itd.

Co jest nie tak w tym kodzie? Prosze o pomoc
potreb
Słyszałeś o takim czymś jak mysql_errorquestionmark.gif
dantes
5 spraw:
1. nie widzę, który fragment kodu jest kursywą. Albo nie zaznaczyłeś, albo w [code] go nie widać, albo jestem niedowidomy winksmiley.jpg
2.
  1. aktywny varchar (40) NOT NULL

Jeśli "aktywny" będzie booleanowską wartością, to po co rezerwować 40 razy więcej miejsca niż potrzeba? winksmiley.jpg
3. ściągnę z poprzednika: mysql_error()
4. wstawiłeś chyba 2 nowe pola, a nie 2 nowe tabele winksmiley.jpg
5. W linii 22. masz wywołanie echo z jakiś tam info. Skoro się nie wyświetla, jak mówisz jest pusta strona, to znaczy że albo $ile jest różne od zera, albo nr secure się nie zgadza lub nie jest ustawiony albo któryś z wcześniejszych if'ów. Wystarczyłoby, dla lepszej diagnozy na początek, dorzucić:
  1. var_dump($_POST);
  2. var_dump($_SESSION);

i sprawdził, czy wartości z formularza prawidłowo się przesyłają.
Poza tym, jak pisał potreb, dorzuć mysql_error() po każdym zapytaniu.
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.