Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Porównanie rekordu z zmienną POST
Forum PHP.pl > Forum > Przedszkole
Hikamare
Czy istnieje komenda, która będzie sprawdzać mi zgodność tego co wpisałem w formularzu post z tym co znajduje się w bazie danych ? Chcę to zastosować w procesie logowania.. Próbowałem :
  1. if($_POST['login']== $logincheck && $_POST['pass']=$passcheck)



  1. $take = mysql_query('SELECT * FROM user');
  2. $txt = mysql_fetch_assoc($take);
  3. $logincheck = $txt['login'];
  4. $passcheck = $txt['password'];



thek
A warunek WHERE w zapytaniu to gdzie się zgubił? winksmiley.jpg
Hikamare
Ale jaki warunek miałby tam być ? Zajrzałem teraz tutaj, bo wcześniej nie słyszałem o tym warunku, ale nie za bardzo rozumiem ;(
uzi123
Obejrzyj przykład 1 http://pl2.php.net/mysql_fetch_assoc mysql_fetch_assoc zwraca w tablicy aktualny wiersz. Być może jak jest dokładnie jeden rekord to może i tak zadziała, ale ...


A tak swoją drogą to hasła się szyfruje w bazie, ale to może dopiszesz w następnym kroku
Hikamare
Um..Nie za bardzo rozumiem.. Mógłby ktoś dać mi gotowca, proszę winksmiley.jpg ?
IceManSpy
Masz podpowiedź:
  1. mysql_query("SELECT * FROM user WHERE login='{$_POST['login']} and haslo='{$_POST['haslo']}'");

Z gotowcem będzie ciężko, bo jeszcze musisz dodać szyfrowanie/hashowanie hasła np md5. Wtedy musisz w bazie trzymać hasła w takiej postaci (jak MD5 to będą 32 znaki). I wtedy zrób sobie tak (nie jestem pewien co do mojego syntaxa >>błą skłądni tongue.gif <<, ale chodzi o coś w ten deseń tongue.gif):
  1. mysql_query("SELECT * FROM user WHERE login='{$_POST['login']} and haslo='{md5($_POST['haslo'])}'");
Hikamare
Um.. Dalej niestety nie działa ;(
Napisałem prosty skrypt do sprawdzenia, ale wyskakuje błąd :

  1. <?php
  2. //Database connection//
  3. $connection = @mysql_connect('localhost', 'root', '')
  4. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  5. $db = @mysql_select_db('user', $connection)
  6. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  7. $login = $_POST['login'];
  8. $password = $_POST['password'];
  9. ?>
  10. <html>
  11. <form method="post">
  12. <input type="text" name="login">
  13. <input type="password" name="password">
  14. <input type='submit' value='Check'>
  15. </form>
  16. </html>
  17. <?php
  18. $check = mysql_query('SELECT * FROM user WHERE login={$login} && haslo={$password}');
  19. $txt = mysql_fetch_assoc($check);
  20. echo($txt['login']);


A oto błąd :

[qoute]Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files (x86)\WebServ\httpd\lcheck.php on line 20[/qoute]

A to dziwne, ponieważ stosowałem już ten rodzaj składni w fetch_assocu i nie było problemów z argumentami...

Halo ? Czy ktoś może mi pomóc ?
Ulysess
  1. $check = mysql_query('SELECT * FROM `user` WHERE `login`='.$login.' && `haslo`='.$password.'');


co do samego skryptu bez sensu jest 0 logiki..
łączysz się z bazą następnie przypisujesz wartości które niby zostałe wysłane przez formularz następnie wyświetlasz formularz a na końcu dajesz zapytanie O.o..

zrób tak

  1. <?php
  2. //Database connection//
  3. $connection = @mysql_connect('localhost', 'root', '')
  4. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  5. $db = @mysql_select_db('user', $connection)
  6. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  7.  
  8. if(isset($_POST['login']) && isset($_POST['password']))
  9. {
  10.  
  11. $login = $_POST['login'];
  12. $password = $_POST['password'];
  13.  
  14. $check = mysql_query('SELECT * FROM `user` WHERE `login`='.$login.' && `haslo`='.$password.'');
  15. $txt = mysql_fetch_assoc($check);
  16. echo($txt['login']);
  17.  
  18. }
  19. ?>
  20. <html>
  21. <form method="post">
  22. <input type="text" name="login">
  23. <input type="password" name="password">
  24. <input type='submit' value='Check'>
  25. </form>
  26. </html>
Hikamare
Super. Dzięki. Zapomniałem, że w PHP potrzebna logicznej kolejnoci wykonywania winksmiley.jpg


[qoute]Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files (x86)\WebServ\httpd\lcheck.php on line 24 [/qoute]

Eh.. Nie rozumiem w ogóle tego błędu. Mógłby mi ktoś wyjaśnić ? Używam tego co podpowiedział mi Ulysess

mount
14 linię zamień na:

  1. $check = mysql_query('SELECT * FROM `user` WHERE `login`='$login' && `haslo`='$password'');
Hikamare
Cytat
Parse error: syntax error, unexpected T_VARIABLE in C:\Program Files (x86)\WebServ\httpd\lcheck.php on line 14

Niestety. To w niczym nie pomaga, a ja sam jestem w martwym punkcie..



Odświezam!
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.