kret
27.07.2003, 13:45:53
Pytanie dotyczy tego fragmentu skryptu:
[php:1:d41d928d9b]<?php
$auth = false; // założenie o braku autoryzacji
// Odczyt pliku z nazwami użytkowników i ich hasłami
$filename = 'userzy.txt';
$fp = fopen( $filename, 'r' );
$plik = fread($fp, filesize($filename));
fclose($fp);
// Wstawienie każdej linii do tablicy
$linie = explode ( "n", $plik );
// sprawdzenie każdej pary UŻYTKOWNIK:HASŁO
foreach ($linie as $wiersz) {
list( $username, $password ) = explode( ':', $wiersz );
if(($username == $login) && ($password == $haslo)) {
$auth = true;
break;
}
}
?>[/php:1:d41d928d9b]
problem dotyczy instrukcji foreach, powinna ona sprawdzać w pętli każdy element tablicy , jeżeli szukana para użytkownik:hasło jest ostatnim elementem tablicy to jest ok, ale jeśli np. pierwszym to nie działa. Czy może ktoś wie dlaczego :?:
Jabol
27.07.2003, 14:52:03
spróbuj dac trimy na te wartosci i może jeszcze reset() na tablice?
KaMeLeOn
27.07.2003, 14:59:46
Cytat
[...] ale jeśli np. pierwszym to nie działa. Czy może ktoś wie dlaczego :?:
Nie widzę błędu w tym skrypcie... Skontroluj zmienna
$auth...
Co oznacza, że nie działa? Skąd pochodzi
$login i
$haslo?
kret
27.07.2003, 16:01:09
$login i $haslo pochodzą z formularza logowania, nie działa to znaczy po mimio podania prawidłowego hasła i loginu nie jest realizowany dalszy blok instrukcji w postaci wyświetlenia trześci strony tylko wyświetlony zostaje formularz logowania. Prwaidłowo chodzi tylko w przypadku loginu i hasła, które stanowią ostatni element tablicy. A ponieważ jestem zielony w tej materii, prosił bym o pomoc w postaci przystępnej dla nowicjuszy.
KaMeLeOn
27.07.2003, 16:07:43
Jeśli chodzi o $login i $haslo zapoznaj się z tablicą $_POST...
U mnie z kodem nie ma problemu, musi być więc błąd w dalszej części...
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.