Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Porównanie rekordu z zmienną POST
Hikamare
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 6.10.2010
Skąd: Żory

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


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'];





Ten post edytował Hikamare 14.10.2010, 14:41:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A warunek WHERE w zapytaniu to gdzie się zgubił? (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Hikamare
post
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 6.10.2010
Skąd: Żory

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


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 ;(
Go to the top of the page
+Quote Post
uzi123
post
Post #4





Grupa: Zarejestrowani
Postów: 31
Pomógł: 5
Dołączył: 7.05.2010

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


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

Ten post edytował uzi123 14.10.2010, 15:10:20
Go to the top of the page
+Quote Post
Hikamare
post
Post #5





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 6.10.2010
Skąd: Żory

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


Um..Nie za bardzo rozumiem.. Mógłby ktoś dać mi gotowca, proszę (IMG:style_emoticons/default/winksmiley.jpg) ?
Go to the top of the page
+Quote Post
IceManSpy
post
Post #6





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


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 (IMG:style_emoticons/default/tongue.gif) <<, ale chodzi o coś w ten deseń (IMG:style_emoticons/default/tongue.gif) ):
  1. mysql_query("SELECT * FROM user WHERE login='{$_POST['login']} and haslo='{md5($_POST['haslo'])}'");


Ten post edytował IceManSpy 15.10.2010, 21:15:51
Go to the top of the page
+Quote Post
Hikamare
post
Post #7





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 6.10.2010
Skąd: Żory

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


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 ?
Go to the top of the page
+Quote Post
Ulysess
post
Post #8





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

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


  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>
Go to the top of the page
+Quote Post
Hikamare
post
Post #9





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 6.10.2010
Skąd: Żory

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


Super. Dzięki. Zapomniałem, że w PHP potrzebna logicznej kolejnoci wykonywania (IMG:style_emoticons/default/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



Ten post edytował Hikamare 19.10.2010, 16:26:39
Go to the top of the page
+Quote Post
mount
post
Post #10





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 18.07.2009

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


14 linię zamień na:

  1. $check = mysql_query('SELECT * FROM `user` WHERE `login`='$login' && `haslo`='$password'');
Go to the top of the page
+Quote Post
Hikamare
post
Post #11





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 6.10.2010
Skąd: Żory

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


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!

Ten post edytował Hikamare 23.10.2010, 10:15:07
Go to the top of the page
+Quote Post

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: 22.08.2025 - 17:25