Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Problem z where clause
aga323
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.01.2007
Skąd: Oborniki

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


Witam. Otóż mam problem. Mam zrobione logowanie i gdy wpisze dobre haslo i login to mnie normalnie loguje, a kiedy wpiszę złe zamiast wyświetlić sie po prostu "Zły login" wyświetla się:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/g/2/g2test/dziennik/log.php on line 18
Unknown column 'jakistamlogin' in 'where clause'

Może podam kawałek kodu, gdzie wywala błąd
  1. <?php
  2. $query = "SELECT * FROM user WHERE user = $login_f";
  3. $result = mysql_query ($query);
  4. //-------------------------
  5. //Sprawdzenie czy baza zwróciła przynajmniej 1 rekord.
  6. $ilosc = mysql_num_rows($result) or die (mysql_error()); // to jest ta nieszczęsna linia 18 
  7. if($ilosc==0)
  8. {
  9. echo 'Zly login';
  10. }
  11. else
  12. { // tu tam dalszy ciąg ale już nie istotny
  13. ?>

Proszę o pomoc
Go to the top of the page
+Quote Post
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Zastosuj odpowiednie apostrofy:
  1. SELECT * FROM `user` WHERE `user` = '$login_f'
Go to the top of the page
+Quote Post
aga323
post
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.01.2007
Skąd: Oborniki

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


Dzięki, pomogło. Ale teraz się z kolei nic nie wyświetla (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) A powinno sie wyświetlać "Zły login"
Go to the top of the page
+Quote Post
Darti
post
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Sprawdź co robi die" title="Zobacz w manualu PHP" target="_manual lub exit" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
aga323
post
Post #5





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.01.2007
Skąd: Oborniki

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


Hmmm... sprawdziłam ale cos mi nie wychodzi, zapewne robie coś źle. Próbuję tak:
  1. <?php
  2. $query = "SELECT * FROM `user` WHERE `user` = '$login_f' ";
  3. $result = mysql_query ($query);
  4. //-------------------------
  5. //Sprawdzenie czy baza zwróciła przynajmniej 1 rekord.
  6. $ilosc = mysql_num_rows($result) or die (mysql_error());
  7. if($ilosc==0)
  8. {
  9. exit ( "Zly login");
  10.  
  11. }
  12. else
  13. {
  14. //Baza zwróciła jakieś pozycje, tak więc dzielimy je na tablice.
  15. $wynik=mysql_fetch_array($result);
  16. // itd.....
  17. ?>
Go to the top of the page
+Quote Post
MiFlo
post
Post #6





Grupa: Zarejestrowani
Postów: 92
Pomógł: 4
Dołączył: 12.09.2006
Skąd: 127.0.0.1

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


a nie lepiej tak ?
  1. <?php
  2. $q = mysql_query("SELECT * FROM users WHERE name='".$name."' AND pass='".$pass."';");
  3. $r = @mysql_fetch_array($q);
  4. if(!empty($r['name']))
  5. {
  6. //logowanie
  7. }
  8. else
  9. {
  10. //zly login
  11. }
  12. ?>

Może być jakiś błąd bo nie sprawdzałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
aga323
post
Post #7





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.01.2007
Skąd: Oborniki

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


MiFlo Twój pomysl pomógł, ale tylko w pewnym stopniu... Bo teraz coś reszta nie chce działac (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Wyskkuje błąd:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/g/2/g2test/dziennik/log.php on line 23
podam kod:
  1. <?php
  2. //Nadajemy zmiennej $login_f wartość jaką użytkownik wpisał w pole Login
  3. $login_f = $_POST['user'];
  4. //Nadajemy zmiennej $pass_f wartość jaką użytkownik wpisał w pole Haslo
  5. $pass_f = $_POST['pass'];
  6. //Laczenie z baza
  7. include ("connect.php");
  8. //-------------------------
  9. //  Zapytanie
  10. //-------------------------
  11. //pobieramy użytkownika o takim loginie z bazy.
  12. $query = mysql_query("SELECT * FROM `users` WHERE 'login'='".$login_f."' AND 'haslo'='".$pass_f."';");
  13. $result = mysql_fetch_array($query);
  14. if(!empty($result['login']))
  15. {
  16.  echo "Zły login";
  17. }
  18. else
  19. {
  20. //Baza zwróciła jakieś pozycje, tak więc dzielimy je na tablice.
  21. $wynik=mysql_fetch_array($result); //tu pokazuje błąd
  22. $login_b = $wynik['login'];
  23. $pass_b = $wynik['haslo'];
  24. if($login_f==$login_b && $pass_f==$pass_b)
  25. { //tu tam dalszy ciąg
  26. ?>

W czym tkwi problem?
Go to the top of the page
+Quote Post
Kicok
post
Post #8





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Nazw kolumn nie umieszcza się w apostrofach

Ten post edytował Kicok 19.05.2007, 14:07:04
Go to the top of the page
+Quote Post
Darti
post
Post #9





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


@aga323 przyjrzyj się w którym miejscu @MiFlo dał logowanie a w którym miejscu złe hasło - masz na odwrót zdaje mi się ...
Go to the top of the page
+Quote Post
Noddi
post
Post #10





Grupa: Zarejestrowani
Postów: 45
Pomógł: 7
Dołączył: 25.12.2004
Skąd: Kraków

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


Przyjrzyj się także lini 13 i 21, po co w lini 21 znowu dzielisz tablicę wyników na kolejną tablice?
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #11





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Funkcja mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual spodziewa się argumentu, będącego odwołaniem do wykonanego zapytania MySQL, a nie do wyniku działania funkcji mysql_fetch_array.
  1. <?php
  2. $result = mysql_fetch_array($query);
  3. if(!empty($result['login'])) {
  4.  echo "Zły login";
  5. } else {
  6. $login_b = $result['login']; // już masz te dane w tablicy
  7. $pass_b = $result['haslo'];
  8. // ...
  9. }
  10. ?>
Go to the top of the page
+Quote Post
aga323
post
Post #12





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.01.2007
Skąd: Oborniki

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


Dziękuję wszystkim za trafne odpowiedzi jdnak teraz znowu jest problem... Po zalogowaniu pojawia się białe tło i nic... pustka. Podaję kod:
  1. <?
  2. //Nadajemy zmiennej $login_f wartość jaką użytkownik wpisał w pole Login
  3. $login_f = $_POST['user'];
  4. //Nadajemy zmiennej $pass_f wartość jaką użytkownik wpisał w pole Haslo
  5. $pass_f = $_POST['pass'];
  6. //Laczenie z baza
  7. include ("connect.php");
  8. //-------------------------
  9. //  Zapytanie
  10. //-------------------------
  11. //pobieramy użytkownika o takim loginie z bazy.
  12. $query = mysql_query("SELECT * FROM `users` WHERE login='".$login_f."' AND haslo='".$pass_f."';");
  13. $result = @mysql_fetch_array($query);
  14. if(!empty($result['login'])){
  15.  
  16.  $login_b = $wynik['login'];
  17.  $pass_b = $wynik['haslo'];
  18. if($login_f==$login_b && $pass_f==$pass_b)
  19. {
  20. //Tworzymy zmienną sesji $_SESSION['Login'] i nadajemy jej
  21. //wartość jaka jest w bazie danych odpowiadająca zalogowanemu użytkownikowi.
  22. $_SESSION['User']= $login_b;
  23. $_SESSION['User_id']= $wynik['id'];
  24. $_SESSION['lewel']= $wynik['lewel'];
  25. //Zalogowanego użytkownika przenosimy na strone index.php
  26. header( 'Location: ses.php' );
  27. }
  28. }
  29.  
  30.  
  31.  
  32. else
  33. {
  34. echo "Zły login";  
  35.  
  36. }
  37. ?>
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #13





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


No tak, ale nazwy tablic masz różne:
  1. <?php
  2. $result = @mysql_fetch_array($query); // tutaj nazwa: $result
  3. if(!empty($result['login'])){ 
  4.  $login_b = $wynik['login']; // a tutaj nazwa: $wynik, a powinno być $result
  5.  $pass_b = $wynik['haslo']; // jw
  6. ?>

Kolejna sprawa, nie do końca rozumiem tę linijkę:
  1. <?php
  2. if($login_f==$login_b && $pass_f==$pass_b)
  3. ?>
Przecież w zapytaniu SQL wybierasz wiersz, który ma pole login równe odpowiedniej wartości (to samo dotyczy pola hasło), więc owe if jest zbyteczne.
Go to the top of the page
+Quote Post
aga323
post
Post #14





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.01.2007
Skąd: Oborniki

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


Racja, sorki mój błąd. Poprawiłam, ale nie wiem czemu całe czas jets tak samo (chociaz teraz wyświetla cały czas "Zły login" nawt przy podaniu dobrych danych... Podaję kod
  1. <?
  2. //Nadajemy zmiennej $luogin_f wartość jaką użytkownik wpisał w pole Login
  3. $login_f = $_POST['user'];
  4. //Nadajemy zmiennej $pass_f wartość jaką użytkownik wpisał w pole Haslo
  5. $pass_f = $_POST['pass'];
  6. //Laczenie z baza
  7. include ("connect.php");
  8. //-------------------------
  9. //  Zapytanie
  10. //-------------------------
  11. //pobieramy użytkownika o takim loginie z bazy.
  12. $query = mysql_query("SELECT * FROM `users` WHERE 'login'='".$login_f."' AND 'haslo'='".$pass_f."';");
  13. $result = @mysql_fetch_array($query);
  14. if(!empty($result['login'])){
  15.  
  16.  $login_b = $result['login'];
  17.  $pass_b = $result['haslo'];
  18.  
  19. //Tworzymy zmienną sesji $_SESSION['Login'] i nadajemy jej
  20. //wartość jaka jest w bazie danych odpowiadająca zalogowanemu użytkownikowi.
  21. $_SESSION['User']= $login_b;
  22. $_SESSION['User_id']= $result['id'];
  23. $_SESSION['lewel']= $result['lewel'];
  24. //Zalogowanego użytkownika przenosimy na strone index.php
  25. header( 'Location: ses.php' );
  26.  
  27. }
  28.  
  29.  
  30.  
  31. else
  32. {
  33. echo "Zły login";  
  34.  
  35. }
  36. ?>


[+] edit
Poprawiam BB Code : )
---
~strife
Go to the top of the page
+Quote Post
strife
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


1. Usuń @ z 15 linijki.
2. Zobacz co zwraca mysql_error" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
aga323
post
Post #16





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.01.2007
Skąd: Oborniki

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


@ usunięta a mysql_error nic nie zwraca.... :| i Nadal "Zły login"

Ten post edytował aga323 20.05.2007, 11:47:40
Go to the top of the page
+Quote Post
mike
post
Post #17





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Usuń apostrofy z nazw kolumn. Może to zadziała.
Czyli z:
  1. <?php
  2. // ...
  3. $query = mysql_query("SELECT * FROM `users` WHERE 'login'='".$login_f."' AND 'haslo'='".$pass_f."';");
  4. // ...
  5. ?>
... na:
  1. <?php
  2. // ...
  3. $query = mysql_query("SELECT * FROM `users` WHERE login='".$login_f."' AND haslo='".$pass_f."';");
  4. // ...
  5. ?>
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #18





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(aga323 @ 20.05.2007, 10:47:10 ) *
mysql_error nic nie zwraca
A wstawiłaś gdzieś tę funkcję?

Wyświetl zapytanie, skopiuj je do np. phpMyAdmina i tam wykonaj:
  1. <?php
  2. // ...
  3. $query = "SELECT * FROM `users` WHERE 'login'='".$login_f."' AND 'haslo'='".$pass_f."';";
  4. echo $query;
  5. $query = mysql_query($query) or die(mysql_error());
  6. // ...
  7. ?>

I pokaż rezultat wykonanego skryptu.

Ten post edytował JaRoPHP 20.05.2007, 12:01:55
Go to the top of the page
+Quote Post
aga323
post
Post #19





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.01.2007
Skąd: Oborniki

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


Lol Mike masz racje, podziałało (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Dziabeł tkwi w szczegółach... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Teraz mi sie zalogowało i wyskoczył błąd w innym pliku, coś podobnego rodzaju jak ten poprzedni, ale myślę, że dam rade. Teraz sie tylko zastanawiam nad strukturą dziennika tak aby danemu wychowawcy pokazywali się tylko jego podopieczni
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: 23.08.2025 - 17:54