Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP | array] Logowanie
Forum PHP.pl > Forum > PHP
harek
A więc mam taki oto kod :
[php:1:6ac5d08396]<?php
<?
$file=file("baza.txt");
$ile = count($file);
for($i=0; $i<=$ile; $i++) {
$zawartosc=explode("::", $file[$i]);
If($login==$zawartosc[0]){
If($haslo==$zawartosc[1]){

header('location: $adres');

}
}
}

?>
?>[/php:1:6ac5d08396]
Opis plików :
1.Index.php podaje hasło i login i przekazuje do pliku logowanie.php .
2.Logowanie.php tutaj sprawdzam login i hasło podane wcześniej a kod tego pliku wyżej.
3.Baza.txt tu są zapisane hasła i loginy w postaci takiej :
xxx::aaa
xxx1::aaa1
xxx2::aaa2
...

Problem :
Gdy w pliku index podam hasło :"xxx", a login :"aaa" to niestety się nie zaloguje tak samo gdy podam możliwość 2 czyli xxx1 i aaa1. Ale gdy podam hasło xxx2 a login aaa2 to się zaloguje. Dlaczego moge zalogować się tylko gdy podaje ostatnią możliwość ? Chcę aby skrypt logował mnie gdy podam też pozostałe dane!
adwol
Cytat
Problem :
Gdy w pliku index podam hasło :"xxx", a login :"aaa" to niestety się nie zaloguje tak samo gdy podam możliwość 2 czyli xxx1 i aaa1. Ale gdy podam hasło xxx2 a login aaa2 to się zaloguje. Dlaczego moge zalogować się tylko gdy podaje ostatnią możliwość ? Chcę aby skrypt logował mnie gdy podam też pozostałe dane!

Bo rozbijając na poszczególne linie plik dostajesz również tam znaki końca wiersza, które Twój kod przypisuje jako część hasła.
Poza tym ta pętla wykonuje się o jedną iterację za dużo (ma być warunek < a nie <=).
Poprawiony kod:
[php:1:d3026ca73a]<?php
$file=file("baza.txt");
$ile = count($file);
for($i=0; $i<$ile; $i++) {
$file[$i] = chop($file[$i]);
$zawartosc=explode("::", $file[$i]);
If($login==$zawartosc[0]){
If($haslo==$zawartosc[1]){

header('location: $adres');

}
}
}

?>[/php:1:d3026ca73a]
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.