Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [problem] błąd w skrypcie
Forum PHP.pl > Forum > Przedszkole
Mistrig
Witam. No więc mam problem z takim skryptem:
Kod
$uzytkownicy=file("dane.php");
$ile=count($uzytkownicy);
for ($a=0; $a==$ile; $a+=3) {
    $b=$a++;
    if (sha1($_POST['login'])==$uzytkownicy[$a] and sha1($_POST['haslo'])==$uzytkownicy[$b]) {
        echo 'Logowanie zakończyło się sukcesem';
        break;
    }
}

Ten skrypt ma za zadanie uwierzytelnić użytkownika. W pliku dane.php dane są zapisane w trzech kolejnych wierszach (login, hasło, email) pierwsze dwa są zakodowane za pomocą funkcji sha1. Problem w tym, że skrypt mi nie działa. Mam nadzieje, że ktoś powie mi gdzie wystąpił błąd.
Pigula
ja widze to tak:

  1. <?php
  2. $uzytkownicy=file("dane.php");
  3. $ile=count($uzytkownicy);
  4. for ($a=0; $a<$ile; $a+=2) {
  5.    $b=$a++;
  6.    if (sha1($_POST['login'])==$uzytkownicy[$a] && sha1($_POST['haslo'])==$uzytkownicy[$b]) {
  7.        echo 'Logowanie zakończyło się sukcesem';
  8.        break;
  9.    }
  10. }
  11. ?>
Mistrig
Eeee a gdzie jest błąd?
Po za tym musi być +=3 ponieważ jest jeszcze email (który nie jest sprawdzany).
A dlaczego musi być < , a nie ==?
Pigula
bo petla sie wykonuje dopoki warunek jest spelniony gdy == to nie bedzie spelnione i sie nie wykona a $a+=2 dlatego ze potem wydaje mi sie ze jak masz $b=$a++ to i a sie zwiekszy najlepiej zrob echo obu wartosci to bedziesz wiedziec jak ja mam racje to musisz jeszcze $uzytkownicy[$a] zmienic na $uzytkownicy[$a-1] a jak sie myle to przepraszam ale w warunku petli napewno ma byc <
Mistrig
Wykazało że $a = 1 ,a $b = 0 sad.gif
Mistrig
Ale czekaj napisałem $b=$a+1 i już jest w porządku.
Mistrig
Ale i tak nie działa.....
Sorry, że pisze trzy tematy pod rząd, ale jako niezarejestrowany nie mogę zmieniać postów.
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.