Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z rejestracją, Wysyłanie mail`a
kezman
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 1.12.2008

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Strarus
post
Post #2





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


  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? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
EarthCitizen
post
Post #3





Grupa: Zarejestrowani
Postów: 286
Pomógł: 70
Dołączył: 13.01.2009

Ostrzeżenie: (0%)
-----


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");
}
Go to the top of the page
+Quote Post
kezman
post
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 1.12.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował kezman 25.01.2009, 11:47:25
Go to the top of the page
+Quote Post
Strarus
post
Post #5





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


EarthCitizen pokazał Ci to samo co ja (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Po prostu Ty zmiennej $mail nie nadajesz wysyłania maila, tylko to czy owa czynność się powiodła (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Możesz tylko z tym zrobić if($mail) { echo 'Wysłąno maila!'' } else { echo 'Nie wysłano (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) '; } (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:32