0

这个问题耽误了太久。我有一个 index.php 包括表单和 login.php 处理它。

如何在 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 auto 所以左右变化)

感谢您提供的任何帮助

4

2 回答 2

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>
...
于 2012-08-24T16:08:29.693 回答
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
}
?>

由于看起来您希望在发生实际错误时包含该文件,因此您可以在调用insideindex.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; } ?>
于 2012-08-24T16:10:55.587 回答