사이트에 로그인하려고합니다. 등록 양식을 텍스트 파일에 저장 한 다음 login.php 페이지에서 PHP 코드를 사용하여 파일을 열고 각 행을 폭발시킨 다음 입력 한 사용자를 확인합니다. 로그인 할 때 이메일과 비밀번호가 일치해야합니다. 내 문제 나는 그것이 맞지만 "정의되지 않은 색인 : 이메일"이라고 쓰여진 다음 사용자 이름이나 비밀번호가 틀렸다는 표시로 끝나는 것입니까? 문제를 해결하기 위해 변수를 선언하거나 사용하는 것이 필요합니까? 아니면 코드에 문제가 있습니까?양식에 로그인 할 수 없습니까?
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 및 디버그] (http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) 오류 메시지를 알아야합니다. 문제를 해결하는 데 필요한 모든 것이 오류 메시지에있었습니다. $ _POST [ 'email']이 (가) 설정되지 않았습니다 – Anigel
양식 입력란이 제대로 작성되지 않은 것으로 의심됩니다. 로그인 양식 마크 – Dale