0

我有 index.php 里面有登录链接的模态窗口。模态窗口是用 php 在 mysql 中检查用户名和密码。但是当我点击提交按钮 - 没有输入用户名或密码时,它没有显示 php 错误 - “您需要输入用户名”或“您需要输入密码”......何时刷新 index.php,我点击了登录链接正在显示...如何在第一次单击提交按钮时解决此问题正在检查 mysql php 错误?

          <div id="basic-modal-content">
            <div id="winsign">

          <form action="" method="post" onSubmit="validate();"> 


           <?php

       include 'core/init.php';


       if (empty($_POST) === false) {
           $username = $_POST['username'];
           $password = $_POST['password'];

       if (empty($username) === true || empty($password) === true) {
        $errors[]= 'You need to enter a username and password';
               } else if (user_exists($username) === false) {
        $errors[]= 'We cant\'t find username. Have you registered?';
        } else if (user_active($username) === false) {
        $errors[]= 'You haven\'t acticated your account!';  
            } else {
        $login = login($username, $password);
        if ($login === false) {
            $errors[] = 'That username/password combination is incorrect';      
            } else {
            $_SESSION['user_id'] = $login;  
            header('Location: sign_in.php');
            exit();
            }
        } 
            print_r($errors);
    }
       ?>


            <span id="tpos">Username:</span><br>
            <input type="text" name="username" class="sbutton" id="modalbox" placeholder="Username">
            <br><br><span id="tpos">Password:</span>
            <br><input type="password" name="password" class="sbutton" id="modalbox" placeholder="Password">
            <br><br><input type="checkbox" name="checkbox" class="cbutton"><span id="ttext">Remember me</span>
            <br><input type="submit" value="Sign In" name="signin" id="bsubmit">
            </input>
            </form>

那是在模态窗口中,当我单击提交按钮时,第一次单击时未检查 php 错误并重新加载 index.php 当我第二次单击时是否有错误,但在第一次单击时未显示错误并重新加载页面索引...

4

2 回答 2

0

您应该首先处理信息并使用empty()检查它是否为空。

所以像这样

    $error=0; $error_msg =''; 
    $username = $_POST['username'];  
    $password = $_POST['password'];

    if($_POST['submit'])
{
    if(empty($username)){ $error = 1; $error_msg .= //your error msg}
    if(empty($password)){ $error = 1; $error_msg .= //your error msg}
    if($error == 0){//do your login stuff}
}

希望这可以帮助

于 2013-01-07T18:02:04.450 回答
0

我认为您正在为您的表单寻找 onSubmit 。

尝试这样的事情:

<form name="formname" action="index.php" method="post" onSubmit="validate();">
</form>
于 2013-01-07T18:04:13.193 回答