返回错误消息PHP

时间:2015-08-16 10:18:22

标签: php

那么,

我有表格登录 index.php login.php 我检查是否有错误。

我想将消息返回到Index.php并按$error_txt

显示消息

以下是我的代码:

的index.php:

<form action="login.php" method="post">
<input type="text" name="username" placeholder="Username" id="user-input" /><br />
<input type="password" name="password" placeholder="Password" id="user-input" /><br />
<input type="submit" name="login" value="Login" id="user-submit" class="btn btn-primary" style="color:white;"/><br />
<a href="register.php">Register</a>
<?php echo $error_txt; ?> <!-- --------- Here I Want show the error message -->
</form>

的login.php:

<?php    
if(isset($_POST['login']))
    {
        $username = mysql_escape_string($_POST['username']);
        $password = mysql_escape_string($_POST['password']);
        $errors = 0;
            try
            {
                if(strlen($username) == 0)
                {
                    throw new Exception ("The username is empty");
                }
                if(strlen($password) == 0)
                {
                    throw new Exception ("The password is empty");
                }
                include ("web/config.php");
                $usernameTrueQuery = mysql_query("SELECT * FROM `users` WHERE `Username` = '$username' AND `Password` = '$password' LIMIT 1;");
                $usernameTrue = mysql_num_rows($usernameTrueQuery);
                if($usernameTrue == 0)
                {
                    throw new Exception ("The username or password is incorrect");
                }
            } catch (Exception $loginError) {
                echo "<div class='alert alert-warning'>
              <strong>Error:</strong> ".$loginError->getMessage()."</div> \n";
              $errors = 1;
              $error_txt = $loginError->getMessage();
            }
            if($errors == 0)
            {
                echo "<div class='alert alert-success'>
              <strong>Success</strong> Welcome {$username}!</div> \n";
            }
    }
    return $error_txt;
    header("Location: /index.php");
?>

谢谢.. :))

1 个答案:

答案 0 :(得分:0)

您可以将错误消息存储在cookie中。但是,这也有点难看。

略好一点:存储它in the session。 PHP已经可以维护会话(并且会话ID依次存储在cookie中)。通过使用会话,消息永远不需要离开服务器。但是,这仍然可能会导致副作用,尤其是如果访问者有多个选项卡打开了您网站的不同页面。他们可能会在某个时间看到他们没有尝试登录的页面上的错误。

对于没有记住&#39;的解决方案在某个地方的文字,你根本不应该使用重定向。只需包含显示表单所需的其他页面或其中的一部分。如果您可以包含登录表单(或者如果您需要整个索引页面),则可以呈现包含错误消息的页面,而无需重定向回index.php。

您也可以通过不发布到login.php来回复该原则,而是发布到索引页面本身。该页面可以检查发布的数据,只有在登录成功时才会重定向到成功页面。