Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z rejestracja (nie przesyła)
Forum PHP.pl > Forum > Przedszkole
kondziu9516
Witam otóż mam problem z rejestracją użytkowników.
Zrobiłem stronkę wcześniej wszystko OK działało.
Ale coś jest nie tak po wypełnieniu pól nic nie robi.
Odświeża tylko jakby stronę i nic !

Co może być przyczyną?

Oto kod:

  1. <?php
  2.  
  3. session_start(); // rozpoczęcie sesji
  4.  
  5. if (!isset($_SESSION['login'])) { // dostęp dla niezalogowanego użytkownika
  6.  
  7. include 'db.php'; // połączenie się z bazą danych
  8. $tabela = 'uzytkownik'; // zdefiniowanie tabeli MySQL
  9.  
  10.  
  11. if ($_POST["wyslane"]) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  12.  
  13. // filtrowanie treści wprowadzonych przez użytkownika
  14.  
  15. $imie = htmlspecialchars(addslashes(strip_tags(trim($_POST["imie"]))), ENT_QUOTES);
  16. $nazwisko = htmlspecialchars(addslashes(strip_tags(trim($_POST["nazwisko"]))), ENT_QUOTES);
  17. $nazwa = htmlspecialchars(addslashes(strip_tags(trim($_POST["nazwa"]))), ENT_QUOTES);
  18. $nip = htmlspecialchars(addslashes(strip_tags(trim($_POST["nip"]))), ENT_QUOTES);
  19. $tel = htmlspecialchars(addslashes(strip_tags(trim($_POST["tel"]))), ENT_QUOTES);
  20. $login = htmlspecialchars(stripslashes(strip_tags(trim($_POST["login"]))), ENT_QUOTES);
  21. $haslo = $_POST["haslo"];
  22. $haslo2 = $_POST["haslo2"];
  23. $email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
  24. $email2 = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email2"]))), ENT_QUOTES);
  25. $ocena = htmlspecialchars(stripslashes(strip_tags(trim(10))), ENT_QUOTES);
  26.  
  27.  
  28. // system sprawdza czy prawidłowo zostały wprowadzone dane
  29. if (strlen($imie) < 3 or strlen($imie) > 30 ) {
  30. $blad++;
  31. echo '<p><font color="red">Proszę poprawnie wpisać imie. </p></font>';
  32. }
  33. if (strlen($nazwisko) < 2 or strlen($nazwisko) > 30 ) {
  34. $blad++;
  35. echo '<p><font color="red">Proszę poprawnie wpisać nazwisko. </p></font>';
  36. }if (strlen($nazwa) < 1 or strlen($nazwa) > 90 ) {
  37. $blad++;
  38. echo '<p><font color="red">Proszę wpisać nazwę firmy. </p></font>';
  39. }
  40. if (strlen($nip) < 8 or strlen($nip) > 15 ) {
  41. $blad++;
  42. echo '<p><font color="red">Proszę poprawnie wpisać NIP firmy. </p></font>';
  43. }
  44.  
  45. if (strlen($login) < 3 or strlen($login) > 30 or !eregi("^[a-zA-Z0-9_.]+$", $login)) {
  46. $blad++;
  47. echo '<p><font color="red">Proszę wprowadzić poprawny login (od 3 do 30 znaków).</p></font>';
  48. } else {
  49. $wynik = mysql_query("SELECT * FROM $tabela WHERE login='$login'");
  50. if (mysql_num_rows($wynik) <> 0) {
  51. $blad++;
  52. echo '<p><font color="red">Podana nazwa użytkownika jest już zajęta.</p></font>';
  53. }
  54. }
  55. if (strlen($haslo) < 6 or strlen($haslo) > 30 ) {
  56. $blad++;
  57. echo '<p><font color="red">Proszę poprawnie wpisać hasło (od 6 znaków do 30 znaków). </p></font>';
  58. }
  59. if ($haslo !== $haslo2) {
  60. $blad++;
  61. echo '<p> <font color="red">Podane hasła muszą być identyczne. </p></font>';
  62. }
  63. if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$", $email)) {
  64. $blad++;
  65. echo '<p> <font color="red">Proszę wprowadzić poprawnie adres email.</p></font>';
  66. } else {
  67. $wynik = mysql_query("SELECT * FROM $tabela WHERE email='$email'");
  68. if (mysql_num_rows($wynik) <> 0) {
  69. $blad++;
  70. echo '<p> <font color="red">Podany adres e-mail jest już zajęty.</p></font>';
  71. }
  72. }
  73. if ($email !== $email2) {
  74. $blad++;
  75. echo '<p> <font color="red">Podane adresy e-mail nie sę ze sobą zgodne.</p></font>';
  76. }
  77.  
  78.  
  79. // jeżeli nie ma żadnego błedu, użytkownik zostaje zarejestronwany i wysłany do niego e-mail z linkiem aktywacyjnym
  80. if ($blad == 0) {
  81.  
  82. $haslo = md5($haslo); // zaszyfrowanie hasla
  83. $kod = uniqid(rand()); // tworzenie unikalnego kodu dla użytkownika
  84.  
  85. $wynik = mysql_query("INSERT INTO $tabela VALUES('', '$imie', '$nazwisko', '$nazwa', '$nip', '$tel', '$login' , '$haslo', '$email' , '$ocena', '$kod', NOW(), '')");
  86. if ($wynik) {
  87. $list = "Witaj $login !
  88.  
  89. Zostales zarejestrowany na stronie Stronye-net.pl
  90. Aby dokonczyc rejestracje nalezy aktywowac swoje konto w ciagu 48 godzin klikajac w ponizszy link:
  91. Jesli to nie ty rejestrowales sie w naszym serwisie zignoruj tego e-maila a w ciagu 48h konto zostanie usuniete.
  92.  
  93. ";
  94. mail($email, "Potwierdzenie rejestracji Stronye-net.pl", $list, "From: <rejestracja@konradokrzesik.ugu.pl>");
  95. echo '<p><font color="green"><br><br>Dziękujemy za rejestrację! W ciągu nabliższych 5 minut dostaniesz wiadomość e-mail z dalszymi wskazówkami rejestracji.<br>Pamiętaj o aktywacji konta do 48 godzin. Aktywacja następuje przez e-maila.</p></font>';
  96. mysql_close($polaczenie);
  97. exit;
  98. }
  99. }
  100. mysql_close($polaczenie);
  101. }
  102.  
  103. // tworzenie formularza HTML
  104. echo <<< KONIEC
  105. <div id="highlight"><h2 class="hight">Rejestracja</h2><br></p></div>
  106. <form action="index.php?s=rejestracja2" method="post">
  107. <input type="hidden" name="wyslane" value="TRUE" />
  108. <p><label class="kontakt2"><font size="4" color="green"><b><u>Dane Firmy:</u></b></font></p></label>
  109. <p><label class="kontakt">Imię: <input type="text" name="imie" /><font color="red">*</font></p></label>
  110. <p><label class="kontakt">Nazwisko: <input type="text" name="nazwisko" /><font color="red">*</font></p></label>
  111. <p><label class="kontakt">Nazwa firmy: <input type="text" name="nazwa" /><font color="red">*</font></p></label>
  112. <p><label class="kontakt">NIP firmy: <input type="text" name="nip" maxlength="15" /><font color="red">*</font></p></label>
  113. <p><label class="kontakt">Numer Telefonu: <input type="text" name="tel" /><font color="#D6D7A0">*</font></p></label>
  114. <p><br></p>
  115. <p><label class="kontakt2"><font size="4" color="red"><b><u>Dane do Logowania:</u></b></font></p></label>
  116. <p><label class="kontakt">Login: <input type="text" name="login" /><font color="red">*</font></p></label>
  117. <p><label class="kontakt">Hasło: <input type="password" name="haslo" /><font color="red">*</font></p></label>
  118. <p><label class="kontakt">Powtórz hasło: <input type="password" name="haslo2" /><font color="red">*</font></p></label>
  119. <p><label class="kontakt">Adres e-mail: <input type="text" name="email" /><font color="red">*</font></p></label>
  120. <p><label class="kontakt">Powtórz adres e-mail: <input type="text" name="email2" /><font color="red">*</font></p></label><br>
  121. KONIEC;
  122.  
  123.  
  124. echo <<< KONIEC
  125.  
  126.   <p><label class="kontakt"><input type="submit" value="Zarejestruj" /></p></label></form>
  127. <p><font size="2" color="red">Pola oznaczone * są wymagane</font></p><br>
  128. KONIEC;
  129.  
  130. } else {
  131. header('Location: index.php?s=reg '); // zalogowany użytkownik zostaje przekierowany na stronę główną
  132. }
  133.  
  134. ?>
kadlub
zjadłeś gdzieś cudzysłów w zmiennej $list
kondziu9516
nie no przecież jest
  1. if ($wynik) {
  2. $list = "Witaj $login !
  3.  
  4. Zostales zarejestrowany na stronie Stronye-net.pl
  5. Aby dokonczyc rejestracje nalezy aktywowac swoje konto w ciagu 48 godzin klikajac w ponizszy link:
  6. Jesli to nie ty rejestrowales sie w naszym serwisie zignoruj tego e-maila a w ciagu 48h konto zostanie usuniete.
  7.  
  8. ";
  9. mail($email, "Potwierdzenie rejestracji Stronye-net.pl", $list, "From: <rejestracja@strona.ugu.pl>");sik.ugu.pl>");
nie no przecież jestnie no przecież jest


Jest między linijką tekstu a tym mail($email,...............
nospor
"Podupcz kod" a dojdziesz gdzie się wykłada. Czyli poprostu echuj, var_dumpuj, printuj po każdej linii i będziesz widział gdzie kod dochodzi a gdzie nie.

Tu masz parę cennych wskazówek
Temat: Jak poprawnie zada pytanie
kondziu9516
Zrobiłem według wskazówek...
Wstawiłem to na początek aby pokazało błędy
  1. ini_set('display_errors','1');


A oto błąd jaki się wyświetla smile.gif


Notice: Undefined index: wyslane in /home/konrad95x/domains/mojastronaxxx.pl/public_html/user/rejestracja.php on line 13
Ruch Radzionków
a to jest pełny kod czy coś masz przed tym jeszcze
nospor
Po wysłaniu formularza też dostajesz ten błąd?
kondziu9516
Nie nie jest to pełny kod... To tylko kod PHP

Nie pow wysłaniu formularza przenosi tylko na stronę rejestracja2 i nic tam nie pokazuje...
Nawet ze nieuzupełnione pole czy coś....

A tutaj umieszczam plik index.php oraz rejestracja.php
Pliki spakowane w .rar

Pobierz
nospor
Cytat
Nie pow wysłaniu formularza przenosi tylko na stronę rejestracja2 i nic tam nie pokazuje...
No ale miałeś "podupczyć" a ty się jedynie ograniczyłeś do error_reporting.
Niktoś
A powiedz mi ,gdzie ustawiasz $_SESSION['login'],bo ja widze tutaj tylko sprawdzenie występowania ,a utworzenie sesji jakoś nie widze.
kondziu9516
YHYM....wink.gif)
A to jak to ustawić z tym?
session_start()

Sory ale w tym akurat troszkę zielony jestem smile.gif
Niktoś
Ten skrypt rejestracji słabiutki jest,gdyż nie sprawdzasz wogóle czy użytkownik się rejestrował przez co mimo że się rejestrował może to zrobić kolejny raz więc użytkownicy będą ci się dublować w bazie danych.Sprawdzasz istnienie sesji ,ale nigdzie jej nie utworzyłeś w rezultacie czego warunek if (!isset($_SESSION['login'])) { zawsze będzie spełniony a to co jest po else nigdy się nie wykona.Może usiądź na spokojnie i przeanalizuj ten skrypt linijka ,po linijce.
Najlepiej jakbyś sobie puścił debugera jakiegoś ,to ci fajnie wyświetli w czym znajduje się problem i jak zachowuje się skrypt.
Niestety nie znam żadnego,,ale może ktoś Ci poleci jakiegoś fajnego debugera PHP.
PS.Dam wskazówkę taką żebyś przypisał nailepiej ID lub login do sesji po prawidłowej rejestracji.
kondziu9516
Ale jako ciekawostkę dodam że tą stronę miałem wcześniej jako testową na hostingu ugu.pl
I było bez problemów....

Wszystko działało.
A przeniosłem teraz na inny hosting i nie działa...;(
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.