Я пытаюсь войти на сайт, я сделал регистрационную форму, которая сохраняет данные в текстовом файле, тогда у меня есть PHP-код на моей странице login.php, чтобы открыть файл, разбить каждую строку, а затем проверить введенный пользователь соответствующий адрес электронной почты и пароль при входе в систему. Моя проблема. Я получаю сообщение с сообщением «undefined index: email», после чего оно неверно указывает имя пользователя или пароль, даже если они верны. Должен ли я объявлять переменную или использовать isset как-то для решения проблемы или что-то не так с моим кодом?Не можете войти в форму?
login.php:
<?php
if (isset($_POST['submitBtn'])){
$file = explode("PHP_EOL", file_get_contents("users.txt"));
foreach($file as $line) {
list($fname, $lname, $email, $userpass) = explode("||", $line);
if($_POST['email'] == $email && $_POST['userpass'] == $userpass) {
// User authenticated correctly
echo "You've successfully logged in!";
echo "<br>";
echo '<a href="home.php">Member\'s Only Site!</a>';
} else {
// User did not authenticate
echo "Invalid Username or Password";
}
}
}
?>
Regform.php
else {
$userpass = md5($pass1);
$fp = fopen("Text_Database\users.txt", "a");
$savestring = $fname . "||" . $lname . "||" . $email . "||" . $userpass . "||" .PHP_EOL;
fwrite($fp, $savestring);
fclose($fp);
echo 'You have successfully registered!';
}
}
?>
Войти Форма:
<form action="" method="post" name="loginform">
<table width="100%">
<tr><td>Username:</td><td> <input class="text" name="username" type="text" /></td></tr>
<tr><td>Password:</td><td> <input class="text" name="password" type="password" /></td></tr>
<tr><td colspan="2" align="center"><input class="text" type="submit" name="submitBtn" value="Login" /></td></tr>
</table>
</form>
Вам необходимо узнать, как [READ and debug] (http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) сообщения об ошибках. Все, что вам нужно для решения проблемы, было в сообщении об ошибке. $ _POST ['email'] не настроен ни на что – Anigel
Я подозреваю, что поля ваших полей формы не были созданы должным образом, покажите нам разметку формы входа – Dale