Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Rejestracja - obługa błędów
Forum PHP.pl > Forum > Przedszkole
lol99
witam
proszę o podpowiedź w wykonaniu rejestracji;
np: rejestracja znajduje się moja-strona.pl/rejestracja.php
chce żeby ewentualne błędy wyświetlały się nad formularzem

przykład jeśli user już istnieje to nad formularzem wyświetli sie (oczywiście nie chodzi mi o walidacje bez przeładowania)

taki user już istnieje

---formularz ---
bastard13
Na przykład:
  1. <?php
  2. if($_POST)
  3. {
  4. $error=false;
  5. if(/*walidacja*/)
  6. { //post zaliczył walidację
  7. if(/*czy istnieje*/)
  8. { //taki user nie istnieje
  9. //dodawanie usera
  10. }
  11. else
  12. { //taki user istnieje
  13. $error='istnieje';
  14. }
  15. }
  16. else
  17. { //nie przeszło walidacji
  18. $error='walidacja';
  19. }
  20.  
  21. if($error!==false)
  22. {
  23. //wyświetlanie błędu w zależności od tego, jaki wystąpił
  24. }
  25. }
  26.  
  27. ?>
  28. <form>
  29. <!-- formularz rejestracji -->
  30. </form>
Ulysess
oczywiście musisz zapytaniem sprawdzić czy user istnieje a dokładniej dajesz selecta where login = $_POST['login']
następnie robisz
  1. $zmienna = mysql_num_rows($wykonano_zapytanie['spr']);


if $zmienna == 0
{
nie ma usera
}
else
{
user o takim loginie juz istnieje
lol99
jak na razie mam coś takiego
  1. <?php
  2. define('DB_HOST','localhost');
  3. define('DB_USER','root');
  4. define('DB_PASS','');
  5. define('DB_DB','test');
  6. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  7. or die('Nie udało połączyc się z bazą danych. '.mysql_error());
  8.  
  9. mysql_select_db(DB_DB,$connect);
  10. if($_POST)
  11. {
  12. $error=false;
  13. if(/*walidacja*/)
  14. { //post zaliczył walidację
  15.  
  16. $ile =mysql_query("SELECT * FROM `users` WHERE nick= '$nick'");
  17. $ile = mysql_num_rows($ile);
  18.  
  19. if ($ile==0)
  20.  
  21. { $zapytanie="INSERT INTO users (nick,password) VALUES('$nick','$password')";
  22. }
  23.  
  24. else
  25. { //taki user istnieje
  26. $error='istnieje';
  27. }
  28. }
  29. else
  30. { //nie przeszło walidacji
  31. $error='walidacja';
  32. }
  33.  
  34. if($error!==false)
  35. {
  36. //wyświetlanie błędu w zależności od tego, jaki wystąpił
  37. echo $error;
  38. }
  39. }
  40. ?>
  41.  
  42. <from>
  43. <strong>Nazwa konta:</strong><input name="nick" type="text" value="" /><br>
  44.  
  45. <strong>Haslo:</strong><input name="password" type="password" value="" /><br>
  46.  
  47. <strong>Powtorz haslo:</strong><input name="password2" type="password" value="" /><br>
  48. </from>

bastard13
No to masz wszystko:) Teraz tylko ubierz to w ładne wyświetlania, a opis błędów dla użytkownika w jakąś bardziej opisową formę, zrób walidację posta i po sprawie.
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.