2013-10-06 4 views
3

Привет, я просмотрел другие сообщения об этом, но им 2 или более лет, поэтому я подумал, что лучше начать новый.PHP-логин из текстового файла

Как следует из названия, я пытаюсь сделать страницу входа с php. Пользователи должны иметь возможность входа на страницу только для специального участника. Имена пользователей и пароли хранятся в текстовом файле (обратите внимание, что это назначение, иначе я бы использовал SQL). Мой код ниже

?php 

    echo "Username: <input type=\"text\" name=\user-name\"><br>"; 
echo "Password: <input type=\"text\" name=\pass-word\"><br>"; 
echo "<input type=\"submit\" value=\"login\" name=\"login\"><br>"; 

$userN = $_POST['user-name']; 
$passW = $_POST['pass-word']; 
$userlist = file ('users.txt'); 
$checkUser =$userlist[0]; 

if (isset($_POST['login'])) 
{ 
if ($userN == $userlist) 
{ 
    echo "<br> Hi $user you have been logged in. <br>"; 
} 
else 
{ 
echo "<br> You have entered the wrong username or password. Please try again. <br>"; 
} 
} 
?> 
<form action="login.php" method="post"> 
Username: <input type="text" name="username"> 
<br /> 
Password: <input type="password" nme="pass" 
<br /> 
<input type="submit" name="submitlogin" value="Login"> 

Я знаю, что нужно использовать функцию взрывается, и мне нужно, чтобы определить, как текстовый файл будет выставлен. в идеале имя пользователя | пароль. в файле с именем users.txt Файл пользователя также должен содержать информацию, такую ​​как адрес электронной почты (может заменить имя пользователя), имя клиента, название компании (клиента) и специальные цены для участников.

ответ

1

Допустим, ваш текстовый файл выглядит примерно так:

pete|petepass|[email protected]|Pete Enterprizes 
john|johnpass|[email protected]|John Corporation 

Ваш код может читать что-то вроде этого:

$userN = $_POST['user-name']; 
$passW = $_POST['pass-word']; 
$userlist = file ('users.txt'); 

$email = ""; 
$company = ""; 

$success = false; 
foreach ($userlist as $user) { 
    $user_details = explode('|', $user); 
    if ($user_details[0] == $userN && $user_details[1] == $passW) { 
     $success = true; 
     $email = $user_details[2]; 
     $company = $user_details[3]; 
     break; 
    } 
} 

if ($success) { 
    echo "<br> Hi $userN you have been logged in. <br>"; 
} else { 
    echo "<br> You have entered the wrong username or password. Please try again. <br>"; 
} 
Смежные вопросы