2014-02-02 2 views
-1

Я написал этот скрипт:Php запрашивает имя пользователя и пароль дважды

<? 
session_start(); 

if(isset($_GET["logout"])) { 
unset($_SESSION["user"]); 
unset($_SESSION["user_token"]); 
echo "successful logout"; 
die; 
} 

if(!isset($_SESSION["user_token"])){ 
$GETusername = $_SERVER["PHP_AUTH_USER"]; 
$GETpassword = $_SERVER["PHP_AUTH_PW"]; 
$users = array(
    'user' => 'pass', 
    'user2' => 'pass2', 
    'user3' => 'pass3' 
); 
$user = isset($GETusername) ? strtolower($GETusername) : ''; 
$pass = isset($GETpassword) ? $GETpassword : ''; 
$config["admin_username"] = $user; 
$config["admin_passowrd"] = $pass; 
header("WWW-Authenticate: Basic realm=\"Login\""); 
if (!isset($users[$user]) or $users[$user] != $pass) { 
    ?> 
    wrong username or password! 
    <? 
    die; 
} 
$_SESSION["user"] = $config["admin_username"]; 
$_SESSION["user_token"] = 
"auth-".md5($config["admin_username"]).md5($config["admin_passowrd"]); 
die; 
} 
echo "username: ".$_SESSION["user"]."<br /><a href='?logout'>logout</a>"; 
?> 

Когда я пытаюсь войти в первого времени я должен ввести свое имя пользователя и пароль дважды (как если бы Я набрал неверный пароль или имя пользователя)! Но когда я выхожу из системы и снова пытаюсь войти в систему, все нормально! В чем проблема?

ответ

0

добавить session_start выше вашего сценария

session_start(); 
+0

Спасибо! По некоторым причинам первые две строки в моем коде не были видны в этом вопросе. Я чиню это. Но проблема все еще существует. – Zoran

0

Проблема решена! Я действительно не знаю, как это сделать, но теперь это работает!

Смежные вопросы