在不同页面,特定div中回显登录错误

时间:2012-08-24 16:03:28

标签: php html5 css3

此问题延迟太久了。我有一个index.php,包括form和login.php handeling it。

如何在index.php中的特定div中发布错误? 这是Index.php容器,idnex.php中还没有php代码。

    <div id="container">
    <section>
        <h1>ברוכים הבאים לאתר קופונים</h1>
        <h2>המקום בו תוכלו למצוא קופונים בסביבתכם</h2>
        <hr>
    </section>

    <section id="mainpage">
            <p class="welcome">
                אנא התחבר בכדי ליצור ולראות קופונים בקרבתך</br>
                <a href="php/register.php">הירשם לאתר</a> 
            </p>

            <form action="php/login.php" method="post" class="form">
                <p class="email">
                    <input type="text" name="email" /> :דואר אלקטרוני</br>
                </p>
                <p class="password">
                    <input type="password" name="password" /> :סיסמא</br>
                </p>
                <p class="submit">  
                    <input type="submit" value="היכנס" />  
                </p>  
            </form>
    </section>
</div>

这是login.php错误报告部分

            //check matching input
        if($email == $dbemail && $password = $dbpassword){
            $_SESSION['email'] = $dbemail;
            include('../index.php');
            header('members.php');

        }
        else{
            include('../index.php');
            echo "Incorrect Password<style text-align:center;/>";
        }
    }

} else
    include('../index.php');
    die('<p class="error">User does not exist</p>');
} else
    include('../index.php');
    die('Please enter a Email and password');

尝试了这个

include('../index.php');
    die('<p class="error">User does not exist</p>');

无法在“提交”按钮下专门定位(使用保证金:0自动左右更改)

感谢您给予的任何帮助

2 个答案:

答案 0 :(得分:2)

更改您的login.php文件:

} else {
   // error happened
   $error = '<p class="error">User does not exist</p>'
   include('../index.php');
   exit;
...

和你的index.php文件:

<form action="php/login.php" method="post" class="form">
<?php
if(isset($error)) echo $error;
?>
<p class="email">
   <input type="text" name="email" /> :דואר אלקטרוני</br>
...

答案 1 :(得分:2)

问题是,您的login.php文件直接echo是错误信息。一个更好的方法是将消息保存到变量中 - 即使会话变量就足够了(因为看起来你没有使用OOP,通过示例代码)。

尝试将错误消息更新为不使用echo,而是:

$_SESSION['error_message'] = "Incorrect Password<style text-align:center;/>";

然后,在index.php中,您希望它显示的位置添加:

     <p class="submit">  
          <input type="submit" value="היכנס" />  
     </p>  
</form>
<?php
if (isset($_SESSION['error_message'])) {
    echo $_SESSION['error_message'];
    unset($_SESSION['error_message']); // clear the message to prevent duplicate displays
}
?>

由于您希望在发生实际错误时包含index.php文件,您可以在include('../index.php');内调用login.php之前设置一个局部变量,如下所示:

} else {
    $errMsg = "Incorrect Password<style text-align:center;/>";
    include('../index.php');
}

与上面修改的index.php示例一样,您可以在此处执行相同操作:

    </p>
</form>
<?php if ($errMsg) { echo $errMsg; } ?>