Witam, mam do napisania system rejestracji oraz logowania, gdzie po rejestracji dane użytkownika zapisywane są do pliku. Ja zapisuję te dane w jednej linijce pliku i są one oddzielone spacją (tzn. każdy użytkownik to osobna linijka danych). Moim planem na system logowania było odczytanie z formularzu maila oraz hasła, otwarcie pliku, sczytywanie każdej kolejnej linijki funkcją fgets, później zamianę przechwyconej linijki na array i porównanie wpisanych danych z formularza logowania to odpowiednich elementów array'a. Problem w tym, że po próbie zalogowania wyświetla mi błąd:
Undefined array key 2 in C:\Users\kawcz\PhpstormProjects\Zadania\Zad4.7.2\LoginZad4.7.2.php on line 14
czyli jakby klucze tej tabeli nie były zdefiniowane podczas porównania, pomimo tego, że gdy używam vardump'a, aby wyświetlić zawartość array'ów, to wszystkie dane ładnie się wyświetlają. Czy ktoś byłby w stanie pomóc mi z tym problemem? Z góry dziękuję. Kod pliku odpowiadającego za logowanie:
<?php
session_start();
if(isset($_POST['mail']) && isset($_POST['pass'])){
if (!$fd = fopen('dane.txt', 'r')){
echo "Nie można otworzyć pliku dane.txt";
}
else{
while(!feof($fd)){
$str = fgets($fd);
$data = explode(" ", $str);
var_dump($data);
if($data[2] == $_POST['mail'] && $data[3] == $_POST['pass']) {
$_SESSION['poprawne_dane'] = $data[0];
header('Location: LogowanieZad4.7.2.php');
}
}
fclose($fd);
echo "<h3 style='color: red'>Błędne dane!</h3>";
echo "<a href='LogoutZad4.7.2.php'>Powrót do logowania</a>";
}
}