Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Sprawdzanie czy rekord jest już w bazie
StadiPL
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 11.05.2013

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


Witam po raz kolejny ;]
Postanowiłem dodać sobie możliwość sprawdzenia czy użykownik jaki chce się zarejestrować nie istnieje już w bazie oraz czy jego email nie został już użyty.
  1. //Oczywiście łączę się z bazą danych ;p
  2. $nickname_q = mysql_query("SELECT * FROM users WHERE nickname = '$nickname'") or die(mysql_error());
  3. $nickname_check = mysql_num_rows($nickname_q);
  4. $email_q = mysql_query("SELECT * FROM users WHERE email= '$email'") or die(mysql_error());
  5. $email_check = mysql_num_rows($email_q);
  6.  
  7. //Nieistotna część kodu
  8. else if ($nickname_check=1) {echo $existing_nickname;}
  9. else if ($email_check=1) {echo $extisting_email;}
  10. {
  11. echo 'Wykonanie skryptu ';
  12.  
  13. //na razie wartość id zmieniam ręcznie, ale dodam wkrótce dodam żeby automatycznie sczytywał największą wartość i dodawał o 1 wyższą
  14. $id="1";
  15.  
  16. $ins = @mysql_query("INSERT INTO users SET id='$id', nickname='$nickname', password='$password', email='$email' ");
  17. if ($ins) echo "OK"; else echo "LIPA";

Czemu nie działa poprawnie?

Ten post edytował StadiPL 12.05.2013, 04:28:25
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
StadiPL
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 11.05.2013

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


Może zapodam po prostu najnowszą wersję całości, bo przykładowo ten problem już rozwiązałem (ktoś na forum mi podpowiedział):
  1. <?php
  2. //zamiana zmiennych POST na zwykłe zmienne
  3. $nickname=$_POST['nickname'];
  4. $password=$_POST['password'];
  5. $password_r=$_POST['password_r'];
  6. $email=$_POST['email'];
  7. $email_r=$_POST['email_r'];
  8.  
  9. //Wyświetlane teksty
  10. $no_nickname="Podanie nazwy uzytkownika jest wymagane";
  11. $no_password="Podanie hasla i jego powtorzenie jest wymagane";
  12. $different_password="Podane hasla roznia sie'";
  13. $no_email="Podanie e-maila i jego powtorzenie jest wymagane";
  14. $different_email="Podane e-maile roznia sie";
  15. $bad_nickname="Niedozwolona nazwa uzytkownika";
  16. $bad_password="Niedozwolone haslo";
  17. $bad_email="Nieprawidłowy adres email";
  18. $existing_nickname="Istnieje już użytkownik '$nickname' w bazie. Wybierz inna nazwę uzytkownika!";
  19. $existing_email="Adres email '$email' już istnieje w bazie";
  20.  
  21. //Dodać łączenie się z bazą danych. Najlepiej z osobnego zabezpieczonego pliku
  22. $connection = @mysql_connect('127.0.0.1', 'root', '')
  23. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  24. $db = @mysql_select_db('jink', $connection)
  25. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  26.  
  27. //Zapytania o występowanie podanych danych oraz zapisanie wyniku tej operacji w postaci 0 lub 1
  28. /*$nickname_check=count($nickname);
  29. $email_check=count($email);*/
  30. $q1 = '("SELECT COUNT(*) FROM `users` WHERE `nickname` = '".$nickname."'")';
  31. $r1 = mysql_query($q1);
  32. $q2 = '("SELECT COUNT(*) FROM `users` WHERE `email` = '".$email."'")';
  33. $r2 = mysql_query($q2);
  34.  
  35. //Sprawdzenie warunków czy można dokonać rejestracji
  36. if(empty($nickname)) {echo $no_nickname;}
  37. else if(empty($password) || empty($password_r)){echo $no_password;}
  38. else if($password != $password_r){echo $different_password;}
  39. else if(empty($email) || empty($email_r)){echo $no_email;}
  40. else if($email != $email_r){echo $different_email;}
  41. else if(strlen($nickname) < 3 || !preg_match('/^[A-Za-z0-9]+$/', $nickname)) {echo $bad_nickname;}
  42. else if(strlen($password) < 3 || !preg_match('/^[A-Za-z0-9]+$/', $password)) {echo $bad_password;}
  43. else if(!filter_var($email,FILTER_VALIDATE_EMAIL)){echo $bad_email;}
  44. else if($r1==1) {echo $existing_nickname;}
  45. else if($r2==1) {echo $existing_email;}
  46. else
  47.  
  48.  
  49. /*if($nickname_check==1) {echo $existing_nickname;}
  50. else if($email_check==1) {echo $extisting_email;}
  51. else*/ {
  52. echo 'Zarejestrowano ';
  53.  
  54. //Generowanie tokenu
  55. $token_znaki = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
  56. $token = '';
  57. for ($i=0; $i<18; $i++) { $token .= $token_znaki[rand()%(strlen($token_znaki))]; } // 18 to długość ciągu
  58.  
  59. $ins = @mysql_query("INSERT INTO users SET nickname='$nickname', password='$password', email='$email', token='$token' ");
  60. if ($ins) echo "pomyślnie"; else echo "niepomyślnie";
  61.  
  62. mysql_close($connection);
  63. }
  64. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- StadiPL   [MySQL][PHP]Sprawdzanie czy rekord jest już w bazie   12.05.2013, 04:27:58
- - Sobak   [PHP] pobierz, plaintext $nickname_check=1[PHP] po...   12.05.2013, 07:06:21
- - StadiPL   No więc teraz ta część mojego kodu wygląda tak: [P...   12.05.2013, 07:56:45
- - session   [PHP] pobierz, plaintext ("SELECT COUNT...   12.05.2013, 10:37:25
- - StadiPL   Próbowałem już tym sposobem. Problem musi leżeć w ...   12.05.2013, 10:45:36
- - session   Tak problem jest w tym, że funkcją count() zliczas...   12.05.2013, 10:48:27
- - StadiPL   Parse error: syntax error, unexpected 'SELECT...   12.05.2013, 11:01:19
- - session   [PHP] pobierz, plaintext $nickname_q = mysql_query...   12.05.2013, 11:07:00
- - StadiPL   Może zapodam po prostu najnowszą wersję całości, b...   12.05.2013, 11:16:11
- - session   Dlaczego nie zmienisz na to jak Ci napisałem ? Tw...   12.05.2013, 11:27:56
- - StadiPL   To nie zmieniłem na to co mi napisałeś? ;D Jak to ...   12.05.2013, 11:32:18
- - session   Zamień: [PHP] pobierz, plaintext $q1 = '(...   12.05.2013, 11:35:58
- - StadiPL   A więc pozmieniałem tak jak mówisz.. Gdy podaje da...   12.05.2013, 11:44:32
- - session   No nie bardzo jest to możliwe, albo istnieje już k...   12.05.2013, 11:59:04
- - StadiPL   YEEEAHH! ;] To byla zwykla !@#!@#...   12.05.2013, 12:17:09
- - session   "$extisting_email" ?   12.05.2013, 12:22:05
- - StadiPL   A tak jeszcze wracając na chwilkę, to lepsze będzi...   12.05.2013, 12:25:44
- - session   W jakim znaczeniu lepsze ? COUNT(*) jako komenda M...   12.05.2013, 12:33:35


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 Aktualny czas: 15.10.2025 - 16:35