lalas
26.05.2004, 02:20:36
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
26.05.2004, 02:32:33
Cytat
unable to jump to row 0
nie mogę przejść do wiersza 0
lalas
26.05.2004, 07:56:50
hehe to tez wiem - tylko jak to obejsc
mike
26.05.2004, 08:19:59
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
26.05.2004, 11:19:22
lalas: napisałeś 24 posty i nie wiesz jak się kożysta z bbcode
lalas
26.05.2004, 15:41:14
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
tsharek
26.05.2004, 15:48:45
[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
26.05.2004, 15:55:23
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?
lalas
26.05.2004, 15:56:34
acha hasla szyfruje md5() - to chyba wystarczy zeby zachowac jakotakie bezpieczenstwo
FiDO
26.05.2004, 16:40:05
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
26.05.2004, 18:06:44
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.