Forum forum.webPC.pl Strona Główna  
  forum.webPC.pl
FAQ  FAQ   Szukaj  Szukaj   Użytkownicy  Użytkownicy   Grupy  Grupy
 
Rejestracja  ::  Zaloguj Zaloguj się, by sprawdzić wiadomości
 
Forum forum.webPC.pl Strona Główna --> PHP, MySQL oraz inne bazy danych --> [php+mysql]logowanie

Napisz nowy temat  Odpowiedz do tematu
 [php+mysql]logowanie Zobacz poprzedni temat :: Zobacz następny temat --> 
Autor Wiadomość
jarmiar
PostWysłany: Pon Sty 01, 2007 5:14 pm    Temat postu: [php+mysql]logowanie Odpowiedz z cytatem

Pomocnik

Dołączył: 28 Sie 2006
Posty: 317

mam problem dot. logowania.

kiedy wpiszę byle co to pojawia mi się komunikat: Zalogowany, chociarz nie powinno tak być

proszę o pomoc!

Kod:
<?
//poczatek
include('funkcje_bazy.php');
##############################
//zamiana zmiennych
$login = $_POST['login'];
$haslo = $_POST['haslo'];

polacz();



if (!"mysql_query(SELECT * FROM uzytkownicy WHERE login = '$login' AND haslo = '$haslo')") {
    echo('Złe hasło lub login');
}
else {
    echo('Zalogowany');
}
?>
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
ghosti
PostWysłany: Pon Sty 01, 2007 8:25 pm    Temat postu: Odpowiedz z cytatem

Operator

Dołączył: 26 Lis 2006
Posty: 538

usun "" na starcie
_________________
bankier fotka forum nastolatek ciechocinek toruń noclegi
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
jarmiar
PostWysłany: Pon Sty 01, 2007 9:00 pm    Temat postu: Odpowiedz z cytatem

Pomocnik

Dołączył: 28 Sie 2006
Posty: 317

ghosti napisał:
usun "" na starcie


jak to bym usunąl to parser mi błąd wywali

ja już tak próbowałem

chodzi mi o to że mysql nie widzi wartości false
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
ghosti
PostWysłany: Pon Sty 01, 2007 9:18 pm    Temat postu: Odpowiedz z cytatem

Operator

Dołączył: 26 Lis 2006
Posty: 538

Kod:
<?

include('funkcje_bazy.php');
##############################
//zamiana zmiennych
$login = $_POST['login'];
$haslo = $_POST['haslo'];

polacz();

$res=mysql_query(SELECT * FROM uzytkownicy WHERE login = '$login' AND haslo = '$haslo');

if (mysql_num_rows($res)>0)
// jesli bedziesz korzystal jeszcze z pol z tabeli uzytkownicy to zamiast powyzszego daj
// if ($rec = mysql_fetch_array($res))
 echo('Zle haslo lub login');
else
 echo('Zalogowany');
?>


poczytaj kiedy mysql_query() zwraca wartosc FALSE...
_________________
bankier fotka forum nastolatek ciechocinek toruń noclegi
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
powerphp
PostWysłany: Wto Sty 16, 2007 11:16 pm    Temat postu: Odpowiedz z cytatem

Nowy

Dołączył: 16 Sty 2007
Posty: 1

Ale jak w apostrofy obejmiesz tylko zapytanie a nie funkcję to już parser nie wywali błędu.

W tym momencie wywaliłeś warunek jeżeli "ciąg znaków" no to jak najbardziej został spełniony i wyświetla Ci że zalogowany.

To jedna rzecz, druga jest taka że mysql_query nie mówi nic o liczbie przetworzonych wierszy i powinieneś rozwiązać to tak jak napisał ghosti.

Zapomniał tylko o tym że zapytanie sql powinno być w apostrofach bo dla skryptu to zwyczajny string. Tym też powinien być argument tej funkcji.

Wydaje mi się też, że warunek jest źle napisany

Cytat:

if (mysql_num_rows($res)>0)
// jesli bedziesz korzystal jeszcze z pol z tabeli uzytkownicy to zamiast powyzszego daj
// if ($rec = mysql_fetch_array($res))
echo('Zle haslo lub login');
else
echo('Zalogowany');


moim zdaniem odwrotnie jeżeli mysql_num_rows zwróci więcej niż zero to znaczy że zalogowano a nie błędne id lub hasło.

Dodałbym jeszcze od siebie że na końcu zapytania dodał LIMIT 1, chociaż to żeby identyfikator był unikalny powinno być już obsłużone z poziomu bazy danych, jednak...

I zabezpiecz jakoś to zapytanie, a Ty walisz do zapytania to co dostałeś od użytkownika. Słyszałeś coś o atakach typu SQL Injection? Poczytaj bo warto!
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
ghosti
PostWysłany: Pią Sty 19, 2007 10:48 am    Temat postu: Odpowiedz z cytatem

Operator

Dołączył: 26 Lis 2006
Posty: 538

Kod:
if (!"mysql_query(SELECT * FROM uzytkownicy WHERE login = '$login' AND haslo = '$haslo')")


stad "" out mi chodzilo.. nawiasy powinny myc ale w ten sposob

Kod:
if (!mysql_query("SELECT * FROM uzytkownicy WHERE login = '$login' AND haslo = '$haslo'"))


odwrotnie masz racje, nie zwracalem na to uwagi, chodzilo bardziej o ukazanie samej idei..
_________________
bankier fotka forum nastolatek ciechocinek toruń noclegi
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
prz3kus
PostWysłany: Wto Lut 20, 2007 12:08 pm    Temat postu: Odpowiedz z cytatem

Ziomek

Dołączył: 29 Gru 2006
Posty: 124
Skąd: Ze wsi, a co? :>

Za bardzo już nie mam czasu się wgłębiać ale proponował bym zmienić
Kod:
if (!"mysql_query(SELECT * FROM uzytkownicy WHERE login = '$login' AND haslo = '$haslo')")


na

Kod:
if (!"mysql_query(SELECT * FROM uzytkownicy WHERE login == '$login' AND haslo == '$haslo')")


I powinno być ok
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
matheus
PostWysłany: Czw Lut 22, 2007 10:51 pm    Temat postu: Odpowiedz z cytatem

Moderator

Dołączył: 22 Lis 2006
Posty: 487
Skąd: 3 Miasto

no troche temat stary odswierzyles... ale chyba wszystko juz jest ok
dizeki za zainteresowanie
_________________
A biada milczącym o Tobie, że mając mowę, stali się niemymi.

| Sopot | | Lębork
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Wyświetl posty z ostatnich:   
Napisz nowy temat  Odpowiedz do tematu Strona 1 z 1

Forum forum.webPC.pl Strona Główna --> PHP, MySQL oraz inne bazy danych --> [php+mysql]logowanie
Skocz do:  



Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


gabloty aluminiowe, wiaty kroll, aquai
Powered by phpBB © 2001, 2005 phpBB Group.