Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Skrypt rejestracji i problem z "nieprawidłowe przekierowanie"
Forum PHP.pl > Forum > Przedszkole
Th0e
Witam. Oto mój skrypt rejestracji:

  1. <?php
  2. require("connect.php");
  3.  
  4. if(!empty($_POST['nick']) && !empty($_POST['pseudo']) && !empty($_POST['haslo']) && !empty($_POST['haslo2']))
  5. {
  6. $nick = mysqli_real_escape_string($_POST['nick']);
  7. $pseudo = mysqli_real_escape_string($_POST['pseudo']);
  8. $haslo = mysqli_real_escape_string($_POST['haslo']);
  9. $haslo2 = mysqli_real_escape_string($_POST['haslo2']);
  10.  
  11. if(strlen($nick)>6 && strlen($pseudo)>6 && strlen($haslo)>6)
  12. {
  13. if($haslo == $haslo2)
  14. {
  15. $check = mysqli_fetch_array(mysqli_query($connect, "SELECT * FROM `gracze` WHERE '$nick'=`nick` OR '$pseudo'=`pseudo`"));
  16. if(empty($check['id']))
  17. {
  18. mysqli_query($connect, "INSERT INTO `gracze` (nick, pseudo, haslo, sila, zrecznosc, witalnosc, lvl, exp, weapon, armor) VALUES ('$nick', '$pseudo', '$haslo', '1', '1', '0', '1', '0', '0', '0')");
  19. header("Location: ?show=rejestracja&regdone");
  20. }
  21. else
  22. {
  23. header("Location: ?show=rejestracja&regerror=4"); //Ktoś już posiada dany nick lub pseudonim
  24. }
  25. }
  26. else
  27. {
  28. header("Location: ?show=rejestracja&regerror=3"); //podane hasła są od siebie różne
  29. }
  30. }
  31. else
  32. {
  33. header("Location: ?show=rejestracja&regerror=2"); //nick, pseudonim i hasło musi mieć powyżej 6 znakow
  34. }
  35. }
  36. else
  37. {
  38. header("Location: ?show=rejestracja&regerror=1"); //jakieś pole w formularzu jest puste
  39. }
  40. ?>


Formularz:
  1. echo'<center><br /><br /><form method="POST" action="rejestracja.php"><input type="text" placeholder="Nick" size="32" name="nick"><br /><br /><input type="text" placeholder="Pseudonim w grze" size="32" name="pseudo"><br /><br /><input type="password" placeholder="Hasło" size="32" name="haslo"><br /><br /><input type="password" placeholder="Powtórz hasło" size="32" name="haslo2"><br /><br /><input type="submit" value="" id="zarejestruj"></form></center>';?>


Problem polega na tym że nie da się zarejestrować, a mianowicie zawsze łączy nas z "?show=rejestracja&regerror=1" i wyskakuje komunikat:

"Nieprawidłowe przekierowanie

Firefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.

Problem ten może się pojawić w wyniku zablokowania lub odrzucenia ciasteczek."

Na operze wyskakuje biała strona, a adres jest taki sam jak powyżej. Próbowałem bez filtrowania danych (mysqli_real_escape_string), ale to w niczym nie pomogło. Jeśli chodzi o połączenie z bazą danych to jest sprawne.

Pozdrawiam i dziękuję za zainteresowanie smile.gif
nospor
Problemy:
jak masz jakis blad to robisz przekierowanie z errorem. No i niestety, przekierowanie z errorem generuje kolejne przekierowania, bo dales durnego ELSE na robienie przekierowania dla tego
if(!empty($_POST['nick']) && !empty($_POST['pseudo']) && !empty($_POST['haslo']) && !empty($_POST['haslo2']))
a robiac przekierowanie rzecz jasna, ze to nie jest wypelnione wiec wchodzi w ELSE i robi przekierowanie i tak w kołko. NIc wiec dziwnego ze ci sie zapetla.

A teraz pytanie czemu w ogole ci wchodzi za pierwszym razem w error. No musisz po kolei sprawdzic co nie jest spelnione. Sprawdzenie dwoch zmiennych na skrzyz to naprawde taki problem ze trzeba leciec na forum questionmark.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.