Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z rejestracją
Forum PHP.pl > Forum > Przedszkole
kezman
Cześć, mam problem, otóż piszę skrypt rejestracji. Wszystko jest w porządku poza jedną rzeczą . Jeśli wystąpi błąd podczas rejestracji, to mail zostaje wysłany (mimo, że nie powinien), a ma zostać wysłany po UDANEJ rejestracji. W bazie nie dodaje się nowe konto, lecz mail i tak dochodzi. Możecie mi powiedzieć w czym tkwi błąd ?

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Rejestracja</title>
  6. </head>
  7. <body>
  8.  
  9. <!-- Formularz Rejestracji -->
  10.  
  11. <table cellspacing="10">
  12.  
  13.  
  14. <form action="reg.php" method="post">
  15.  
  16. <tr><td>Login :</td> <td><input type="text" name="login" /></td></tr>
  17.  
  18. <tr><td> Hasło :</td><td><input type="password" name="haslo" /></td></tr>
  19.  
  20. <tr><td>Powtórz hasło :</td><td><input type="password" name="haslo2" /></td></tr>
  21.  
  22. <tr><td> E-mail</td><td><input type="text" name="email" /></td></tr><br />
  23. <tr><td><input type="submit" name="wyslij" value="Rejestruj"/>
  24. <input type="reset" name="wyczysc" value="Wyczyść"/></td></tr>
  25. </form></td>    
  26.  
  27. </table>
  28.  
  29. <!-- Koniec Formularza Rejestracji -->
  30.  
  31. <?
  32. /* Połączenie z bazą danych */
  33.  
  34. require_once('config.php');
  35.  
  36. /* Na wypadek wyłączonego parametru Register_globals */
  37.  
  38. $login=$_POST['login'];
  39. $haslo=md5($_POST['haslo']);
  40. $haslo2=md5($_POST['haslo2']);
  41. $email=$_POST['email'];
  42.  
  43. /* Zmienne */
  44.  
  45. $min = '4'; // minimalna liczba znaków
  46. $maks = '16'; // maksymalna liczba znaków
  47. $temat = 'Dziękujemy za rejestrację na www.mailer.linuxpl.eu !'; // temat wiadomości e-mail po rejestracji
  48. $tresc = 'Dziękujemy za rejestrację ! Zapraszamy do aktywnego uczestniczenia w życiu strony ! Pozdrawiamy, administracja'; // treść wiadomości e-mail po rejestracji
  49. $od = 'mailer.linuxpl.eu'; // nadawca wiadomości e-mail
  50.  
  51. /* Zapytania do bazy danych */
  52.  
  53. $reg = "INSERT INTO `uzytkownicy` (`id`, `login`, `haslo`, `email`) VALUES ('', '$login', '$haslo', '$email')"; // utworzenie konta
  54.  
  55. /* Wysłanie mail`a po rejestracji */
  56.  
  57. $mail = mail("$email" , "$temat" , "$tresc" , "From: $od");
  58.  
  59. /* Sprawdzanie poprawności wypełnienia formularza */
  60.  
  61. if (isset($_POST['wyslij'])) {
  62. if (empty ($login) || empty ($haslo) || empty ($haslo2) || empty ($email))
  63. {
  64. die ('<font color="red"><b>Wszystkie pola muszą być wypełnione !</font></b>'); // sprawdzanie czy wszystkie pola zostały wypełnione
  65. }
  66. elseif ($haslo !=$haslo2) {
  67. die ('<font color="red"><b>Wpisane hasła nie pasują do siebie !</font></b>'); // sprawdzanie czy podane hasła są takie same
  68. }
  69. elseif (!ereg("[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+.[a-zA-Z]" , $email)) {
  70.    die ('<font color="red"><b>Adres e-mail jest nie prawidłowy !</font></b>'); // sprawdzanie poprawności adres e-mail
  71. }
  72. elseif (strlen ($login) < $min) {
  73.    die ('<font color="red"><b>Podany login jest zbyt krótki !</font></b>'); // sprawdzanie czy login nie jest za krótki
  74. }
  75. elseif (strlen ($haslo) < $min) {
  76.    die ('<font color="red"><b>Podane hasło jest zbyt krótkie !</font></b>'); // sprawdzanie czy hasło nie jest za krótkie
  77. }
  78. elseif (strlen ($login) > $maks) {
  79.    die ('<font color="red"><b>Podany login jest za długi!</font></b>'); // sprawdzanie czy login nie jest za długi
  80. }
  81. else {
  82.  
  83. (@mysql_query ($reg));
  84. $mail;
  85. echo ('<font color="green"><b>Twoje konto zostało założone ! <br />
  86. Możesz teraz się zalogować .</font></b>');
  87.  
  88. }
  89.  
  90. }
  91.  
  92.  
  93.  
  94. ?>
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106. </body>
  107. </html>
Strarus
  1. <?
  2. /* Połączenie z bazą danych */
  3.  
  4. require_once('config.php');
  5.  
  6. /* Na wypadek wyłączonego parametru Register_globals */
  7.  
  8. $login=$_POST['login'];
  9. $haslo=md5($_POST['haslo']);
  10. $haslo2=md5($_POST['haslo2']);
  11. $email=$_POST['email'];
  12.  
  13. /* Zmienne */
  14.  
  15. $min = '4'; // minimalna liczba znaków
  16. $maks = '16'; // maksymalna liczba znaków
  17. $temat = 'Dziękujemy za rejestrację na www.mailer.linuxpl.eu !'; // temat wiadomości e-mail po rejestracji
  18. $tresc = 'Dziękujemy za rejestrację ! Zapraszamy do aktywnego uczestniczenia w życiu strony ! Pozdrawiamy, administracja'; // treść wiadomości e-mail po rejestracji
  19. $od = 'mailer.linuxpl.eu'; // nadawca wiadomości e-mail
  20.  
  21. /* Zapytania do bazy danych */
  22.  
  23. $reg = "INSERT INTO `uzytkownicy` (`id`, `login`, `haslo`, `email`) VALUES ('', '$login', '$haslo', '$email')"; // utworzenie konta
  24.  
  25. /* Sprawdzanie poprawności wypełnienia formularza */
  26.  
  27. if (isset($_POST['wyslij'])) {
  28. if (empty ($login) || empty ($haslo) || empty ($haslo2) || empty ($email))
  29. {
  30. die ('<font color="red"><b>Wszystkie pola muszą być wypełnione !</font></b>'); // sprawdzanie czy wszystkie pola zostały wypełnione
  31. }
  32. elseif ($haslo !=$haslo2) {
  33. die ('<font color="red"><b>Wpisane hasła nie pasują do siebie !</font></b>'); // sprawdzanie czy podane hasła są takie same
  34. }
  35. elseif (!ereg("[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+.[a-zA-Z]" , $email)) {
  36.    die ('<font color="red"><b>Adres e-mail jest nie prawidłowy !</font></b>'); // sprawdzanie poprawności adres e-mail
  37. }
  38. elseif (strlen ($login) < $min) {
  39.    die ('<font color="red"><b>Podany login jest zbyt krótki !</font></b>'); // sprawdzanie czy login nie jest za krótki
  40. }
  41. elseif (strlen ($haslo) < $min) {
  42.    die ('<font color="red"><b>Podane hasło jest zbyt krótkie !</font></b>'); // sprawdzanie czy hasło nie jest za krótkie
  43. }
  44. elseif (strlen ($login) > $maks) {
  45.    die ('<font color="red"><b>Podany login jest za długi!</font></b>'); // sprawdzanie czy login nie jest za długi
  46. }
  47. else {
  48.  
  49. (@mysql_query ($reg));
  50. mail("$email" , "$temat" , "$tresc" , "From: $od");
  51. echo ('<font color="green"><b>Twoje konto zostało założone ! <br />
  52. Możesz teraz się zalogować .</font></b>');
  53.  
  54. }
  55.  
  56. }
  57.  
  58.  
  59.  
  60. ?>


Może teraz? smile.gif
EarthCitizen
Wysyłasz maila przed wysłaniem zapytania, czyli jeszcze nie znasz rezultatu zapytania...
Kod
// tutaj już wysyłasz, a rezultat funkcji mail przypisujesz zmiennej $mail
$mail = mail("$email" , "$temat" , "$tresc" , "From: $od");

// tak NIE wywołujesz funkcji!
$mail

// zamiast powyższego daj:
if (mysql_query ($reg)) {
    mail("$email" , "$temat" , "$tresc" , "From: $od");
}
kezman
EarthCitizen nie za bardzo rozumiem Twoją wypowiedź, czy mógłbyś mi to umieścić w kodzie, który dałem w pierwszym poście ? Wtedy będzie mi łatwiej zrozumiec. Pozdrawiam

edit : już sobie poradziłem dziękuję Panowie, punkty pomógl dla Was
Strarus
EarthCitizen pokazał Ci to samo co ja smile.gif Po prostu Ty zmiennej $mail nie nadajesz wysyłania maila, tylko to czy owa czynność się powiodła smile.gif Możesz tylko z tym zrobić if($mail) { echo 'Wysłąno maila!'' } else { echo 'Nie wysłano haha.gif'; } smile.gif
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.