Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Sprawdzenie czy 2 wartości istnieją w bazie
Turson
post
Post #1





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Piszę skrypt rejestracji i ma sprawdzić, czy w bazie danych istnieje już login jaki podał użytkownik oraz czy jest już tam taki e-mail.

  1. if(mysql_query("SELECT login FROM users WHERE login=$login") OR mysql_query("SELECT mail FROM users WHERE mail=$mail"))
  2. {
  3. echo 'Konto z takim loginem lub adresem e-mail już istnieje.';
  4. }
  5. else
  6. {
  7. /* OK */
  8. }

Ale działa to źle. Podam:
istniejący już login + nowy mail = info o błędzie
nowy login + istniejący mail = bez błędu
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Sprawdzałem wszystkie kombinacje i działa prawidłowo...

Oto cały kod:
  1. <?PHP
  2.  
  3.  
  4.  
  5. if(isset($_POST['submit']))
  6. {
  7. $login = mysql_real_escape_string(htmlspecialchars($_POST["login"]));
  8. $mail = mysql_real_escape_string(htmlspecialchars($_POST["mail"]));
  9. $password = md5($_POST["password"]);
  10. $password2 = md5($_POST["password2"]);
  11. $kod = $_POST["kod"];
  12. $wylosowany = $_POST["wylosowany"];
  13.  
  14. if(!empty($login) && !empty($mail) && !empty($password) && !empty($password2) && !empty($kod))
  15. {
  16. if(($password)==($password2))
  17. {
  18. if(strlen($login)>2 && strlen($password)>4)
  19. {
  20. if(($wylosowany)==($kod))
  21. {
  22. if(mysql_query("SELECT login FROM users WHERE login=$login")==FALSE)
  23. {
  24. if(mysql_query("SELECT mail FROM users WHERE mail=$mail")==FALSE)
  25. {
  26. echo 'Konto z takim adresem e-mail już istnieje.<br><a href="index.php?page=rejestracja">-Powrót-</a>';
  27. }
  28. else
  29. {
  30. mysql_query("INSERT INTO users VALUES (null, '$login', '$mail', '$password', 0, 0)") or die(mysql_error());
  31. $lh = $login . $password;
  32. $md5 = md5($lh);
  33. mysql_query("INSERT INTO kod_aktywacyjny VALUES ('$login', '$md5')") or die(mysql_error());
  34. echo "Konto zostało założone.";
  35. }
  36.  
  37. }
  38. else{echo 'Konto z takim loginem już istnieje.<br><a href="index.php?page=rejestracja">-Powrót-</a>';}
  39. }
  40. else
  41. {
  42. echo 'Błędnie przepisany kod z obrazka<br><a href="index.php?page=rejestracja">-Powrót-</a>';
  43. }
  44. }
  45. else
  46. {
  47. echo 'Login lub hasło są za krótkie<br><a href="index.php?page=rejestracja">-Powrót-</a>';
  48. }
  49. }
  50. else
  51. {
  52. echo 'Hasła nie są takie same<br><a href="index.php?page=rejestracja">-Powrót-</a>';
  53. }
  54. }
  55. else
  56. {
  57. echo 'Nie zostały uzupełnione wszystkie pola formularza.<br><a href="index.php?page=rejestracja">-Powrót-</a>';
  58. }
  59. }
  60. else
  61. {
  62. /* Kod z obrazka */
  63. $l1 = rand(1,9);
  64. $l2 = rand(1,9);
  65. $l3 = rand(1,9);
  66. $l4 = rand(1,9);
  67. $l5 = rand(1,9);
  68. $losuj_kod = $l1 . $l2 . $l3 . $l4 . $l5;
  69. echo "
  70. <form action='index.php?page=rejestracja' method='post'>
  71. <table style='width:400px;margin:0;padding:0;background:none;border-spacing:0px;'>
  72. <tr style='margin:0;padding:0;background:none;'><td class='rej_td'>Login</td><td><input type='text' name='login' class='logowanie_form' maxlength=20></td><td class='rej_info'>(min. 3 znaki)</td></tr>
  73. <tr style='margin:0;padding:0;background:none'><td class='rej_td'>Adres e-mail</td><td><input type='text' name='mail' class='logowanie_form' maxlength=40></td></tr>
  74. <tr style='margin:0;padding:0;background:none'><td class='rej_td'>Hasło</td><td><input type='password' name='password' class='logowanie_form' maxlength=20></td><td class='rej_info'>(min. 5 znaków)</td></tr>
  75. <tr style='margin:0;padding:0;background:none'><td class='rej_td'>Powtórz hasło</td><td><input type='password' name='password2' class='logowanie_form' maxlength=20></td></tr>
  76. <tr style='margin:0;padding:0;background:none'><td></td><td><div class='obrazek'>";
  77. $img=ImageCreateFromJPEG('images/kod_bg.jpg');
  78. $kolor_bialy = ImageColorAllocate($img, 234, 0, 11);
  79. $nazwa = "nazwa.jpg";
  80. ImageFill($img, 0, 0, 0);
  81. ImageString($img, 5, 60, 15, $losuj_kod, $kolor_bialy);
  82. imagepng($img, $nazwa);
  83. ImageDestroy($img);
  84. echo "<img src=\"$nazwa\" alt=\"Wygenerowany obrazek\" />";
  85. echo "
  86. </div></td></tr>
  87. <tr style='margin:0;padding:0;background:none'><td class='rej_td'>Kod z obrazka</td><td><input type='text' name='kod' class='logowanie_form' maxlength=5></td></tr>
  88. </table>
  89. <input type='hidden' value=$losuj_kod name='wylosowany'>
  90. <input type='submit' value='Załóż konto' class='logowanie_submit' name='submit'>";
  91. }
  92. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- TursoN   [MySQL][PHP]Sprawdzenie czy 2 wartości istnieją w bazie   21.07.2013, 22:38:16
- - Greg0   A co z kombinacjami istniejący już login + istnie...   21.07.2013, 22:41:48
- - widmo_91   [PHP] pobierz, plaintext $wp = mysql_query(...   21.07.2013, 22:46:37
- - TursoN   @widmo_91 Istniejący login + istniejący mail PRZEC...   21.07.2013, 22:50:16
- - widmo_91   Jeżeli OK jest jak: nie ma loginu i nie ma email a...   21.07.2013, 22:55:12
- - TursoN   Nie, nie o to chodzi. Ma być: Istniejący login + n...   21.07.2013, 22:56:50
- - Greg0   1. Cytatistniejący już login + nowy mail = info o ...   21.07.2013, 23:01:31
- - TursoN   Pomyliłem się. Ma przejść tylko w jednym przypadk...   21.07.2013, 23:06:10
- - widmo_91   No to masz odpowiedź w pierwszym moim poście w tym...   21.07.2013, 23:07:02
- - TursoN   Nie do końca. Jeśli sprawdzę login i nie ma takieg...   21.07.2013, 23:10:28
- - widmo_91   Rezygnuję z dalszych wyjaśnień, zagadnienie mnie p...   21.07.2013, 23:15:24
- - TursoN   Wymyśliłem dziwną alternatywę... [PHP] pobierz, pl...   21.07.2013, 23:24:10
- - widmo_91   Wcale nie ma to racji bytu. Gratuluje udziwnienia ...   21.07.2013, 23:37:59
- - TursoN   Nie założyłem, że mysql_query zwraca liczbę wynikó...   21.07.2013, 23:50:12
- - widmo_91   wiem o co chodziło ale mysql_query dla selecta zaw...   22.07.2013, 00:00:59
- - TursoN   Rozwiązanie było jednak banalne... [PHP] pobierz,...   22.07.2013, 00:02:03
- - r4xz   @TursoN: nadal nie rozumiesz... CytatReturn Values...   22.07.2013, 06:07:26
- - TursoN   [PHP] pobierz, plaintext if(mysql_query(...   22.07.2013, 11:11:45
- - widmo_91   Ty sprawdzasz czy zapytanie jest poprawne a nie cz...   22.07.2013, 11:27:18
- - TursoN   Sprawdzałem wszystkie kombinacje i działa prawidło...   22.07.2013, 11:38:46
- - Greg0   Ludzie ci pisza jak to zrobić poprawnie a ty dalej...   22.07.2013, 12:37:26
- - TursoN   [PHP] pobierz, plaintext $wp = mysql_query(...   22.07.2013, 13:25:13
- - Greg0   Twoje zapytanie zwraca błąd. Zobacz jaki [PHP] po...   22.07.2013, 13:31:57
- - nospor   Tyle postow w tej parodii tematu ze mogliscie juz ...   22.07.2013, 13:38:29


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: 27.12.2025 - 22:21