0

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

$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"到登录页面吗?

我不想使用会话。get 不是这里的选项

4

5 回答 5

1

你可以这样做

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

并在另一页上做

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

编辑:还要注意 SQL 注入

于 2013-05-17T16:48:50.973 回答
1

您可以将获取参数添加到位置标头或在会话中保存消息标志。像这样:

 $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']);
 }
于 2013-05-17T16:51:46.297 回答
1

为了简单地发送消息,您可以将其添加到 URL。

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

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

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

我知道您不会对您的查询提出反馈。无需担心,除非您对 SQL 注入的含义一无所知。

最良好的问候

佐尔特

于 2013-05-17T16:53:33.213 回答
1

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

if(!$driver){
$message = "Sorry, username isnot correct";
} 
else {
$message = "Whatever";
}
include('login.php');

$message 将在 login.php 脚本中为您提供。

于 2013-05-17T17:00:56.500 回答
-3

将查询更改为:

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

注意反引号和单引号

于 2013-05-17T16:53:38.130 回答