Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: warning o o co chodzi
Forum PHP.pl > Forum > PHP
lalas
mam taki fragnent kodu sprawdzajacego czy user i haslo sie zgadza:

$sql = "SELECT * FROM konta WHERE useremail_id='$email' AND haslo='$cpass'";
$wynik = pg_query($sql);
$data = pg_fetch_array ($wynik, 0, PGSQL_ASSOC);

i dziala, ale w momencie kiedy naprzyklad haslo sie nie zgadza wywala blad:
Warning: pg_fetch_array() unable to jump to row 0 on PostgreSQL result index 3 in /var/www/html/.........itd


moze inaczej trzeba zapytanie skonstruowac?
bo caly skrypt dziala tylko ten warning sie wpieprza
Bakus
Cytat
unable to jump to row 0

nie mogę przejść do wiersza 0
lalas
hehe to tez wiem - tylko jak to obejsc smile.gif
mike
Zanim skaczesz do 0 wiersza , sprawdź czy zapytanie jakieś w ogóle zwróciło.
Funkcja pg_num_rows zwraca ilość wierszy zwróconych przez zapytanie.
tsharek
lalas: napisałeś 24 posty i nie wiesz jak się kożysta z bbcode tongue.gif
lalas
no pewnie ze pg_num_rows zwraca - caly skrypt dziala - tylko ten warning sie wpierd***

utnijcie mi leb - nadal nie wiem jak sformulowac zapytanie aby nie wywalilo tego bledu smile.gif
tsharek
[php:1:d9f32a6e63]<?php
$sql = "SELECT * FROM konta WHERE useremail_id='$email' AND haslo='$cpass'";
$wynik = @pg_query($sql);
$data = @pg_fetch_array ($wynik, 0, PGSQL_ASSOC);
?>[/php:1:d9f32a6e63]

jak tylko interesuje cię 0 row to możesz dodać LIMIT 1 do zapytania na końcu.
lalas
to oczywiscie tylko czesc kodu - ale moze ten limit pomoze
sprawdze to wieczorem i dam znac

dzieki


tak apropo to jak wy logujecie uzytkownikow do systemu?
czy to tajemnica? smile.gif
lalas
acha hasla szyfruje md5() - to chyba wystarczy zeby zachowac jakotakie bezpieczenstwo smile.gif
FiDO
lalas: nie pisz postow jeden pod drugim!! Od tego masz przycisk "Zmień"

mike_mech podal Ci odpowiedz.. jesli haslo sie nie zgadza to postgres nie zwraca zadnego wiersza, wiec nie mozna przejsc do pierwszego znalezionego rekordu.
Zatem wystarczy ze sprawdzisz za pomoca pg_num_rows czy zapytanie zwrocilo cos czy nie. Jesli dane beda niepoprawne (user/pass) to funkcja ta zwroci 0, w przeciwnym wypadku 1 (lub wiecej, jesli byloby dwoch userow z takim samym haslem, ale przed tym sie powinienes zabezpieczyc).
lalas
dobra wporzo - dzieki za rady, poprawie sie

narazie
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.