PHP: логин не перенаправляет - PullRequest
0 голосов
/ 30 августа 2011

Хорошо, в общем, я пытался это в течение часа или 2 сейчас. Когда пользователь входит на мою веб-страницу, он не перенаправляется на user.php. Они видят только маленькую пустую коробку и все еще находятся на index.php.

Моя форма действия такова:

 <form id="login" method="POST" autocomplete="off" action="<?php echo $_SERVER['PHP_SELF'];?>">

И затем есть код, который будет выполнен, когда пользователь успешно войдет в систему:

if ($username == $dbusername && md5($password) == $dbpassword)
{                  
  //You're in!
  $_SESSION['username'] = $username;

  header("Location:user.php");      
}
else die blablabla

И все же пользователи, кажется, не перенаправлены.

Что бы я сделал?

Ответы [ 4 ]

1 голос
/ 30 августа 2011

Прежде всего, $_SERVER["PHP_SELF"] чувствителен к XSS, поэтому, пожалуйста, избегайте его.

Поставьте оператор die () после оператора заголовка (который должен использовать только абсолютные URI, а не относительные, как вы).

0 голосов
/ 30 августа 2011

Вы пробовали разные браузеры?Я слышал, что Chrome нужен заголовок ("Status: 200");

Избегайте использования $ _SERVER ['PHP_SELF'] (угроза безопасности) и используйте SHA256 вместо MD5 (также посмотрите на соли).

Вы пытались проверить, действительно ли выполнено условие "если"?Также попробуйте использовать полный URL-адрес в заголовке и посмотрите, имеет ли это какое-либо значение.

0 голосов
/ 30 августа 2011

Если тег заголовка не работает для вас, возможно, вы можете попробовать мета-альтернативу html (http://www.w3schools.com/html/html_meta.asp) с нулевым временем ожидания. И если вы используете этот метод, не забудьте разместить ссылку на страницу, которую вы перенаправляете, если перенаправление не происходит.

0 голосов
/ 30 августа 2011

попробуйте перейти на это ...

if ($username == $dbusername && md5($password) == $dbpassword)
{                  
   //You're in!
    $_SESSION['username'] = $username;

     header('Location:/user.php');   
     exit();
 }
  else die blablabla

Также всегда используйте exit ();после перенаправления заголовка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...