У меня есть панель заголовка, включая форму входа в каждой странице моего сайта:перенаправлять пользователя на той же странице после авторизации
<header>
<form action="login.php" method="post">
<input id="username" name="username" placeholder="Benutzername" type="text">
<input id="password" name="password" placeholder="Passwort" type="password">
<input class="submit-button" type="submit" value="Login">
</form>
</header>
При нажатии отправить скрипт в отдельном login.php
выполняется. login.php
также является дополнительной страницей, где пользователь может повторить попытку после входа в систему.
login.php
выглядит следующим образом:
$ousername = '';
//We check if the form has been sent
if(isset($_POST['username'], $_POST['password']))
{
//We remove slashes depending on the configuration
if(get_magic_quotes_gpc())
{
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
}
else
{
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
//We get the password of the user
$req = mysql_query('select password,id from users where username="'.$username.'"');
$dn = mysql_fetch_array($req);
//We compare the submited password and the real one, and we check if the user exists
if($dn['password']==$password and mysql_num_rows($req)>0)
{
//If the password is right
header('Location: index.php');
здесь, где начинается проблема. Как вы можете видеть, пользователь перенаправляется на index.php
, когда форма отправляется, и логин завершается успешно. То, что я хотел бы сделать, - перенаправить пользователя на любую страницу, на которой они сейчас находятся, при отправке формы (например, когда пользователь в настоящее время находится на странице, на которой отображаются мои рекомендации и журналы в Интернете, я хочу, чтобы он был перенаправлен на тот же . принципы-страницы, когда Войти преуспевает)
Я пытался что-то вроде этого:
if($dn['password']==$password and mysql_num_rows($req)>0)
{
if(($_SERVER['REQUEST_URl'] == login.php)){
header('Location: index.php');
} else {
header('Location: '.$_SERVER['REQUEST_URl']);
}
Это последняя часть login.php:
//We save the user name in the session username and the user Id in the session userid
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
lots html following...
Я надеюсь, что это понятно. Спасибо!
Знаете ли вы, что при запуске запроса у вас нет '$ dn ['password']'? Вы не выбираете поле 'password', вы выбираете' Passwort1_3' – vaso123
Я знаю, я просто быстро изменил это для этого сообщения :-P. Спасибо хоть! Все остальное работает так, как должно было – Frank
Хорошо, пожалуйста, не делайте этого в futere, всегда показывайте фактический код (кроме имени пользователя/пароля). Если вы это сделаете, мы подумаем, что ошибка есть. – vaso123