Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] nie wysyła emaila
Forum PHP.pl > Forum > PHP
plej
  1. <?php
  2. $tytul = "Rejestracja";
  3. include('naglowek.php');
  4. include('panel-logowania.php');
  5. include('menu-gora.php');
  6. include('menu-lewe.php');
  7. ?>
  8. <div id="srodek">
  9. <div id="srodekt"></div>
  10. <div id="srodeks">
  11. <br/>
  12. <?php
  13. if (!isset($_SESSION['login'])) { // dostęp dla zalogowanego użytkownika
  14.  
  15. include 'db.php'; // połączenie się z bazą danych
  16. $tabela = 'uzytkownik'; // zdefiniowanie tabeli MySQL
  17.  
  18.  
  19. if ($_POST["wyslane"]) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  20.  
  21. // filtrowanie treści wprowadzonych przez użytkownika
  22. $login = htmlspecialchars(stripslashes(strip_tags(trim($_POST["login"]))), ENT_QUOTES);
  23. $haslo = $_POST["haslo"];
  24. $haslo2 = $_POST["haslo2"];
  25. $email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
  26. $email2 = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email2"]))), ENT_QUOTES);
  27.  
  28. // system sprawdza czy prawidło zostały wprowadzone dane
  29. if (strlen($login) < 3 or strlen($login) > 30 or !eregi("^[a-zA-Z0-9_.]+$", $login)) {
  30. $blad++;
  31. echo '<p>Proszę poprawny wprowadzić login (od 3 do 30 znaków).</p>';
  32. } else {
  33. $wynik = mysql_query("SELECT * FROM $tabela WHERE login='$login'");
  34. if (mysql_num_rows($wynik) <> 0) {
  35. $blad++;
  36. echo '<p>Podana nazwa użytkownika została już zajęta.</p>';
  37. }
  38. }
  39. if (strlen($haslo) < 6 or strlen($haslo) > 30 ) {
  40. $blad++;
  41. echo '<p>Proszę poprawnie wpisać hasło (od 6 znaków do 30 znaków). </p>';
  42. }
  43. if ($haslo !== $haslo2) {
  44. $blad++;
  45. echo '<p> Podane hasła nie są ze sobą zgodne. </p>';
  46. }
  47. if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$", $email)) {
  48. $blad++;
  49. echo '<p> Proszę wprowadzić poprawnie adres email.</p>';
  50. } else {
  51. $wynik = mysql_query("SELECT * FROM $tabela WHERE email='$email'");
  52. if (mysql_num_rows($wynik) <> 0) {
  53. $blad++;
  54. echo '<p> Podany adres e-mail jest już zajęty.</p>';
  55. }
  56. }
  57. if ($email !== $email2) {
  58. $blad++;
  59. echo '<p> Podane adresy e-mail nie są ze sobą zgodne.</p>';
  60. }
  61.  
  62.  
  63. // jeżeli nie ma żadnego błedu, użytkownik zostaje zarejestronwany i wysłany do niego e-mail z linkiem aktywacyjnym
  64. if ($blad == 0) {
  65.  
  66. $haslo = md5($haslo); // zaszyfrowanie hasla
  67. $kod = uniqid(rand()); // tworzenie unikalnego kodu dla użytkownika
  68.  
  69. $wynik = mysql_query("INSERT INTO $tabela VALUES('', '$login', '$haslo', '$email', '$kod', NOW(), '')");
  70. if ($wynik) {
  71. $list = "Witaj $login !
  72. Kliknij w poniższy link, aby aktywować swoje konto. <a href="http://www.fctorpedo.e-putana.pl/weryfikacja.php?weryfikacja=potwierdz&kod=$kod&quot;;" target="_blank">http://www.fctorpedo.e-putana.pl/weryfikac...#036;kod";</a>
  73. mail($email, "Rejestracja użytkownika", $list, "From: <kontobn@gmail.com.pl>");
  74. echo '<p>Dziękujemy za rejestrację! W ciągu nabliższych 5 minut dostaniesz wiadomość e-mail z dalszymi wskazówkami rejestracji.</p>';
  75. mysql_close($polaczenie);
  76. }
  77. }
  78. mysql_close($polaczenie);
  79. }
  80.  
  81. // tworzenie formularza HTML
  82. echo <<< KONIEC
  83.  
  84.   <form action="rejestracja.php" method="post">
  85.   <input type="hidden" name="wyslane" value="TRUE" />
  86.  
  87.   <p>Login*: <input type="text" name="login" /></p>
  88.   <p>Hasło*: <input type="password" name="haslo" /></p>
  89.   <p>Powtórz hasło*: <input type="password" name="haslo2" /></p>
  90.   <p>Adres e-mail*: <input type="text" name="email" /></p>
  91.   <p>Powtórz adres e-mail*: <input type="text" name="email2" /></p>
  92.  
  93.  
  94.   <p><input type="submit" value="wyślij" /></p></form>
  95. KONIEC;
  96.  
  97. } else {
  98. header('Location: / '); // zalogowany użytkownik zostaje przekierowany na stronę główną
  99. }
  100. ?>
  101. <br />
  102. </div>
  103. <div id="srodekb"></div>
  104. </div>
  105. <?php
  106. include('prawa-strona.php');
  107. include('stopka.php');
  108. ?>


WItam:) górny skrypt nie wysyła emaila na pcozte z kodem aktywacji konta:/ ale wcześniej działał... wie ktoś może co jest nie tak?? z góy dziękuje
juri500
http://wklej.org/id/534287/
Poprawiłem cudzysłowy, powinno pomóc.
Napisz jaki błąd Ci wyskakuje.
Zwróć uwagę na to: (chodzi o action)
  1. <form action="rejestracja.php" method="post">


Upewnij się, że to dobra ścieżka.
plej
Wiesz fajnie by było jak by jakiś błąd wyskakiwałsmile.gif ale tak nie jest wszystko działa okey formularz jest też okey tylko nie wysyła emaila z kodem aktywacji:/ i nie wiem czemu bo wszytsko jest okey wcześniej tez działał a teraz nie chce działąć:/
CuteOne
włącz wyświetlanie błędów(w pliku php.ini "display_error=1") i dodaj na początku tego skryptu


dodaj na końcach zapytań "or die(mysql_error());"

np. tak :
  1. $wynik = mysql_query("INSERT INTO $tabela VALUES('', '$login', '$haslo', '$email', '$kod', NOW(), '')") or die(mysql_error());
plej
Myślę że to nie jest potrzebne teżsmile.gif wierz że raportowania już próbowałem:) porostu nie chce emaila wysłać i się zastanawiam nad tym już parę godzin co jest? nie mogę tego ogarnąć heh

próbowałem nawet zmienne dac w cudzysłowowa i tez nei działa:| i to jest bardzo dziwne:) w osobnym pliku nawet dałem skrypt i też nie działa:/




---------------------------- Ciąg dalszy haha.gif ----------------------------------------------

Oks już naprawiłem:) nie wiem jak to zrobiłem ale działa:)

I tak dziękuje osobą które chciały mi pomóc smile.gif
Rid

$login = htmlspecialchars(stripslashes(strip_tags(trim($_POST["login"]))), ENT_QUOTES);
$haslo = $_POST["haslo"];
$haslo2 = $_POST["haslo2"];
$email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
$email2 = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email2"]))), ENT_QUOTES);

Nie rozumiem,dlaczego wszędzie htmlspecialchars(stripslashes(strip_tags
,a $haslo tak sobie samo siedzi,przecież to taki sam input jak w $login czy w $email.
plej
heh no to już mam zmienione:)

Może przy okazji znacie jakieś funkcje lepsze do zabezpieczania skryptów? przyda mi sięsmile.gif jeśli to oczywiście nie problem wam napisac:)
CuteOne
a po ką cholerke te "htmlspecialchars(stripslashes(strip_tags(" questionmark.gif wystarczy PDO lub mysql_real_escape_string() gdy zapisujesz dane do bazy a "htmlspecialchars(stripslashes(strip_tags(" używasz podczas wyświetlania danych na stronie.

ps. nie używaj eregi
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.