重定向时将POST变量转换到另一个页面 - php

时间:2013-05-17 16:45:29

标签: php

如果登录输入不正确,我会将用户重定向回登录页面。

$sql = "select * from Driver where username=$username and pwd=$pwd";
$driver = mysql_query($sql);

if(!$driver){
  header("Location: http://domain.de/login.php");
  exit();
}

我还可以将"sorry, username isnot correct"之类的邮件传递给登录页面吗?

我不想使用会话。得到不是这里的选择

5 个答案:

答案 0 :(得分:1)

你可以这样做

header("Location: http://domain.de/login.php?error=username");

并在另一页上进行

if ($_GET['error'] == 'username') {
    echo 'Sorry, username is not correct!';
}

编辑: 注意SQL注入

答案 1 :(得分:1)

您可以将get参数添加到位置标题或在会话中保存消息标记。像这样:

 $sql = "select * from Driver where username=$username and pwd=$pwd";
 $driver = mysql_query($sql);

 if(!$driver){
     header("Location: http://domain.de/login.php?wasredirect=1");
     exit();
 }

 //////// In login.php

 if (isset($_GET['wasredirect'])) {
     echo "sorry, username isnot correct";
 }

或者这个:

     $sql = "select * from Driver where username=$username and pwd=$pwd";
 $driver = mysql_query($sql);

 if(!$driver){
     header("Location: http://domain.de/login.php");
     if (!isset($_SESSION)) {
         session_start();
     }
     $_SESSION['redirect'] = true;
     exit();
 }

 //////// In login.php

 if (!isset($_SESSION)) {
     session_start();
 }
 $_SESSION['redirect'] = true;
 if (isset($_SESSION['redirect']) &&$_SESSION['redirect'] ) {
     echo "sorry, username isnot correct";
     unset($_SESSION['redirect']);
 }

答案 2 :(得分:1)

只需赠送一条消息,即可将其添加到网址中。

header("Location: http://domain.de/login.php?e=1234");

我建议使用错误代码而不是完整长度的消息,以获得更好的灵活性。

注意,然而,正确执行将需要实现MVC模式,然后在内部加载错误页面的路由。但对于一个小脚本来说,这可能太多了。

我知道你没有反馈你的查询。不用担心,除非你对SQL注入的含义一无所知。

最好的关注

泽索特

答案 3 :(得分:1)

我认为最好的解决方案是将login.php页面作为当前脚本(控制器)的一部分(视图)加载,并使用消息的值设置变量。类似的东西:

if(!$driver){
$message = "Sorry, username isnot correct";
} 
else {
$message = "Whatever";
}
include('login.php');
在login.php脚本中可以使用

$ message。

答案 4 :(得分:-3)

将查询更改为:

$sql = "select * from `Driver` where `username`='$username' and `pwd`='$pwd'";

注意反引号和单引号