У меня проблема с PHP и сеансами. Это мой код для словаря.php.PHP Session Issue
<?php
if(!isset($_SESSION['auth'])){
$_SESSION['auth'] = 0;
}
if($_SESSION['auth'] == 0){
header("Location: index.php");
}
?>
Итак, есть index.php, который должен установить сеанс «авторизацию» 0 или 1:
<?php
$msg = "";
//Password handler
if(!isset($_POST['password'])){
$password = "";
}else{
$password = $_POST['password'];
}
if(!isset($_SESSION['auth'])){
$_SESSION['auth'] = 0;
}
//Username handler
if(!isset($_POST['username'])){
$username = "";
}else{
$username = $_POST['username'];
if($username == "potato" && $password == "poteto"){
$_SESSION['auth'] = 1;
header("Location: dictionary.php");
}else{
$msg = "<br />
<font color=\"#FF0000\">Invalid username or password!</font><br />";
}
}
if($_SESSION['auth'] == 0){
header("Location: dictionary.php");
}
?>
(Выше может быть плохой практикой или что-то, но я просто делаю это для школьного проекта, и я не хочу, чтобы кто-то, чтобы посмотреть файл dictionary.php.)
index.php использует форму с помощью метода POST для отправки $username
и $password
, только в случае, если у вас нет» t заметил еще.
Когда я ввожу данные для входа в систему, «картофель» и «poteto», он перенаправляет меня на dictionary.php, но затем сразу же бросает меня обратно в index.php. Я пробовал настроить этот код, но не повезло.
Если кому-то понадобится, чтобы показать это им, тогда я могу указать URL-адрес.
Спасибо.
Я не вижу 'session_start()' в любом месте. Исправьте это в первую очередь. Читайте: http://php.net/manual/en/session.examples.basic.php –
«Ошибка 310 (net :: ERR_TOO_MANY_REDIRECTS): было слишком много перенаправлений». – Raymonf
@RBLXDev: Вы создали цикл перенаправления. Это менее тривиально для устранения неполадок, но что это помогает, вам не нужно снимать его сейчас. – hakre