У меня вопрос о сеансах в php. Я сделал страницу входа в систему, и всякий раз, когда я ее пробовал, он просто дал мне ошибку переадресации. Поэтому я ответил на вопрос this.PHP Session lost/login not working
Итак, вместо того, чтобы получать ошибку переадресации, всякий раз, когда я нажимаю кнопку входа, ничего не происходит, форма опорожняется, и это все. Что я делаю не так? Это в настоящее время, как выглядит код, который дает мне проблемы.
index.php:
<?phpsession_start();
if (isset($_SESSION['valid_user'])) {
Header("Location: index.php");
exit();
}
if (isset($_POST['submit'])) {
$name = $_POST['name'];
$password = $_POST['password'];
$file = file_get_contents("data.txt");
if (strstr($file, "$name||$password")) {
$_SESSION["valid_user"] = $_POST["name"];
$_SESSION["valid_time"] = time();
Header("Location: welcome.php");
} elseif (empty($name) && empty($password)) {
echo "Both fields are empty. Please fill them.";
} elseif (empty($name)) {
echo "No name was entered.";
} elseif (empty($password)) {
echo "No password was entered";
} else {
echo "Wrong credentials, please try again.";
}
}
Чтобы быть более конкретным код, который я думаю, что проблема эта часть:
<?phpsession_start();
if (isset($_SESSION['valid_user'])) {
Header("Location: index.php");
exit();
}
Но всякий раз, когда я пытаюсь это я либо получаю ошибку переадресации:
- Мой браузер дает мне "ERR_TOO_MANY_REDIRECTS", когда я пытаюсь войти на страницу.
или на странице просто опустошается форма, и ничего больше не происходит. И сообщения об ошибках, которые должны отображаться, когда я не набираю ничего в форме, также не отображаются. Это давало мне головные боли целый день сегодня, поэтому, если бы кто-нибудь мог просто указать мне в правильном направлении, это было бы здорово.
Также форма HTML я использую в index.php:
<body>
<form method="post" action="index.php" >
<p>Enter name:</p>
<input type="text" name="name" />
<br/>
<br/>
<p>Enter password:</p>
<input type="password" name="password" />
<br/>
<br/>
<input type="submit" value="Login" name="submit"/>
</form>
</body>
Целесообразно использовать @session_start() –
Ваш код действительно нравится? ' phpsession_start();' без пробела? если это так, это синтаксическая ошибка и вне темы. –
Да, это действительно ' Phpsession_start();' Изменение на самом деле не делает его лучше. – Redbird27