Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Rejestracja użytkownika
Misiuu
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 13.10.2009

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


Witajcie, mam taki kodzik rejestracji wszystko działało, a teraz gdy sie rejestruje po prostu strona sie odświeża.

  1.  
  2. <?php
  3.  
  4. session_start(); // rozpoczęcie sesji
  5.  
  6. if (!isset($_SESSION['login'])) { // dostęp dla niezalogowanego użytkownika
  7.  
  8. include 'db.php'; // połączenie się z bazą danych
  9. $tabela = 'uzytkownik'; // zdefiniowanie tabeli MySQL
  10.  
  11.  
  12. if ($_POST["wyslane"]) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  13.  
  14. // filtrowanie treści wprowadzonych przez użytkownika
  15. $login = htmlspecialchars(stripslashes(strip_tags(trim($_POST["login"]))), ENT_QUOTES);
  16. $haslo = $_POST["haslo"];
  17. $haslo2 = $_POST["haslo2"];
  18. $email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
  19. $email2 = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email2"]))), ENT_QUOTES);
  20. $imie = htmlspecialchars(addslashes(strip_tags(trim($_POST["imie"]))), ENT_QUOTES);
  21. $nazwisko = htmlspecialchars(addslashes(strip_tags(trim($_POST["nazwisko"]))), ENT_QUOTES);
  22.  
  23.  
  24. // system sprawdza czy prawidło zostały wprowadzone dane
  25. if (strlen($login) < 3 or strlen($login) > 30 or !eregi("^[a-zA-Z0-9_.]+$", $login)) {
  26. $blad++;
  27. echo '<p>Proszę poprawny wprowadzić login (od 3 do 30 znaków).</p>';
  28. } else {
  29. $wynik = mysql_query("SELECT * FROM $tabela WHERE login='$login'");
  30. if (mysql_num_rows($wynik) <> 0) {
  31. $blad++;
  32. echo '<p>Podana nazwa użytkownika została już zajęta.</p>';
  33. }
  34. }
  35. if (strlen($haslo) < 6 or strlen($haslo) > 30 ) {
  36. $blad++;
  37. echo '<p>Proszę poprawnie wpisać hasło (od 6 znaków do 30 znaków). </p>';
  38. }
  39. if ($haslo !== $haslo2) {
  40. $blad++;
  41. echo '<p> Podane hasła nie są ze sobą zgodne. </p>';
  42. }
  43. if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$", $email)) {
  44. $blad++;
  45. echo '<p> Proszę wprowadzić poprawnie adres email.</p>';
  46. } else {
  47. $wynik = mysql_query("SELECT * FROM $tabela WHERE email='$email'");
  48. if (mysql_num_rows($wynik) <> 0) {
  49. $blad++;
  50. echo '<p> Podany adres e-mail jest już zajęty.</p>';
  51. }
  52. }
  53. if ($email !== $email2) {
  54. $blad++;
  55. echo '<p> Podane adresy e-mail nie są ze sobą zgodne.</p>';
  56. }
  57.  
  58.  
  59. // jeżeli nie ma żadnego błedu, użytkownik zostaje zarejestronwany i wysłany do niego e-mail z linkiem aktywacyjnym
  60. if ($blad == 0) {
  61.  
  62. $haslo = md5($haslo); // zaszyfrowanie hasla
  63. $kod = uniqid(rand()); // tworzenie unikalnego kodu dla użytkownika
  64.  
  65. $wynik = mysql_query("INSERT INTO $tabela VALUES('', '$imie', '$nazwisko', '$login', '$haslo', '$email', '$kod', NOW(), '')");
  66. if ($wynik) {
  67. echo ' Zarejestrowałeś się ';
  68. mysql_close($polaczenie);
  69. }
  70. }
  71. mysql_close($polaczenie);
  72. }
  73.  
  74. // tworzenie formularza HTML
  75. echo '
  76.  
  77. <form action="index.php?page=rejestracja" method="post">
  78. <input type="hidden" name="wyslane" value="TRUE" />
  79.  
  80. <p>Imię: <input type="text" name="imie" /></p>
  81. <p>Nazwisko: <input type="text" name="nazwisko" /></p>
  82. <p>Login*: <input type="text" name="login" /></p>
  83. <p>Hasło*: <input type="password" name="haslo" /></p>
  84. <p>Powtórz hasło*: <input type="password" name="haslo2" /></p>
  85. <p>Adres e-mail*: <input type="text" name="email" /></p>
  86. <p>Powtórz adres e-mail*: <input type="text" name="email2" /></p>
  87. <p><input type="submit" value="wyślij" /></p></form>
  88.  
  89. ';
  90.  
  91. } else {
  92. header('Location: / '); // zalogowany użytkownik zostaje przekierowany na stronę główną
  93. }
  94.  
  95. ?>
  96.  


mółgby ktoś sprawdzić gdzie tu jest błąd ?

Ten post edytował Misiuu 11.08.2012, 15:40:19
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Patras3
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.08.2012
Skąd: Ciechomin/Łuków/Siedlce

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


Cytat
if (!isset($_SESSION['login'])) { // dostęp dla niezalogowanego użytkownika
[....]
}else {
header('Location: / '); // zalogowany użytkownik zostaje przekierowany na stronę główną
}

Może masz coś w sesji jako login i dlatego?
Wklej to do jakiegoś testowego pliku np test.php otwórz w przeglądarce i sprawdź (IMG:style_emoticons/default/smile.gif)
  1. <?
  2. foreach($_SESSION as $sesja=>$wartosc) {
  3. echo "<p>".$sesja." = ".$wartosc."</p>";
  4. }
  5. ?>
Go to the top of the page
+Quote Post
Misiuu
post
Post #3





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 13.10.2009

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


nic nie ma, nic sie nie pojawia (IMG:style_emoticons/default/haha.gif)
a gdy sie zaloguje to login = admin

Ten post edytował Misiuu 11.08.2012, 16:25:37
Go to the top of the page
+Quote Post
markonix
post
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Strona się odświeża już w momencie wejścia na podstronę rejestracji czy w momencie rejestrowania użytkownika (wysłanie formularza)?
Go to the top of the page
+Quote Post
Misiuu
post
Post #5





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 13.10.2009

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


nie, nie, to jest tak że skrypt wgl sie nie wykonuje,
wpisuje wszystkie dane daje wyslij, i pola znów są czyste i nic sie nie dzieje.
Go to the top of the page
+Quote Post
maniana
post
Post #6





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


Pewnie sesja nadal istnieje i ciągle jesteś zalogowany...
Zamiast redira testowo wyświetl tam zawartość $_SESSION
Go to the top of the page
+Quote Post
markonix
post
Post #7





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


No dobrze czyli to drugie o czym mówiłem - nie działa formularz rejestracji.

Tak więc do dzieła - najpierw oceń do jakiego momentu formularz działa.
Kolejno 20, 60, 66 (linie kodu na forum).

maniana pytałem się przecież czy już po wejściu nie działa...
no chyba że strona główna to strona rejestracji.

Ten post edytował markonix 11.08.2012, 16:59:21
Go to the top of the page
+Quote Post
Misiuu
post
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 13.10.2009

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


sesja na bank nie istnieje, gdyż jak jestem zalogowany,
to sie wylogowuje jest funkcja
  1. if ($_GET["wylogowanie"] == "tak") {
  2. // niszczenie sesji uĹĽytkownika
  3. header('Location: / ');

czyli sesji nie bedzie, to działa, gdyż początek rejestracji jest !isstet czyli moge wejsc tylko bedac niezalogowanym, a do plików w tym samym czasie które nie miają "!" wejsc nie moge, znaczy ze sesja raczej działa.
Ten skryt działał mi wcześnie nie wiem co sie zrąbało że nie działa.
a co do tych linii to co mam dokładnie zrobić bo jakoś nie zrozumiałem? mam usuwać części skryptu i zobaczyć czy w koncu zadziała ?
Go to the top of the page
+Quote Post
Patras3
post
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.08.2012
Skąd: Ciechomin/Łuków/Siedlce

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


@Musiuu - Czy faktycznie rejestrację masz w pliku index.php ? Bo przecież tam wysyła formularz dane...
i sprawdź proszę wiadomości - bo chyba nie czytasz ;P

Ten post edytował Patras3 11.08.2012, 17:13:07
Go to the top of the page
+Quote Post
Misiuu
post
Post #10





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 13.10.2009

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


wysyła do rejestracji (IMG:style_emoticons/default/haha.gif) gdyż rejestarcja jest includowana za pomocą GET tam : >
czytam wiadomości nawet odpisuje
Go to the top of the page
+Quote Post
markonix
post
Post #11





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Cytat(Misiuu @ 11.08.2012, 18:05:08 ) *
a co do tych linii to co mam dokładnie zrobić bo jakoś nie zrozumiałem? mam usuwać części skryptu i zobaczyć czy w koncu zadziała ?

Masz "debugować" czyli sprawdzić gdzie skrypt "dochodzi" po wysłaniu formularza.
Podałem Ci kilka sugestii gdzie może leżeć problem.
Go to the top of the page
+Quote Post
Misiuu
post
Post #12





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 13.10.2009

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


to jak ja mam to debugować : >
Go to the top of the page
+Quote Post
markonix
post
Post #13





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


No ludzie!

Byle czym echo, die cokolwiek sprawdź gdzie skrypt kończy działanie.

No i ustal czy skrypt się wysypuje zawsze czy już na etapie dodawania do bazy (formularz wypełniony poprawnie).

Ten post edytował markonix 11.08.2012, 17:27:38
Go to the top of the page
+Quote Post
toaspzoo
post
Post #14





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

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


http://4programmers.net/PHP/Debugowanie_kodu_php
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: 8.10.2025 - 10:21