Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Rejestracja - obługa błędów
lol99
post 2.09.2010, 18:26:06
Post #1





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 25.12.2008

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


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 ---
Go to the top of the page
+Quote Post
bastard13
post 2.09.2010, 18:42:49
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


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>


--------------------
Go to the top of the page
+Quote Post
Ulysess
post 2.09.2010, 18:46:07
Post #3





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


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
Go to the top of the page
+Quote Post
lol99
post 2.09.2010, 19:32:41
Post #4





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 25.12.2008

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


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>

Go to the top of the page
+Quote Post
bastard13
post 2.09.2010, 19:57:38
Post #5





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:59