0

例如,如果我在运行 PHP 时密码/用户名不匹配,我想回到我的主登录页面,该页面全是 HTML/JS。我希望能够访问我的主登录 html 页面并使包含错误消息的 div 可见。

这是帮助示例的代码片段。一切正常,我只是不喜欢它我所能做的就是加载索引页面而不告诉我的用户出了什么问题。我一直在做一些谷歌搜索,但我没有设法让它正确。

<?php //this is in a separate file "checklogin.php"
. 
. 
.

    if ($count == 1) {
            session_start();
            $_SESSION['loggedin'] = true;
            header('Location: loggedin.php');
        }
         else {
            header('Location: index.php');
        }   
.
.
.
?>



<html> //separate file "index.php"
    <body>
    .
    .
    .

       <div id = "nomatch" name = "nomatch" style = "display:none">
         <p>
           username and password don't match
         </p>
       </div>
    .
    .
    .
    </body>
 </html>
4

3 回答 3

1

您可以简单地将参数添加到您的 index.php 重定向:

header('Location: index.php?error');

你的 index.php 变成:

<?php if (isset ($_GET['error'])) { ?>
<div id = "nomatch" name = "nomatch" style = "display:none">
     <p>
       username and password don't match
     </p>
   </div>
<?php } ?>
于 2013-08-19T23:36:08.567 回答
1

大约有 1000 种不同的方法可以做到这一点。这完全取决于您如何处理登录表单。最简单(但不一定是最好)的方法是返回附加到 URL 的错误消息。

例如,重定向到http://example.com?error=badpassword,然后在您的代码中您可以使用以下命令检索它:

Error: <?php echo 'error:' . $_GET["error"]; ?>.

更多信息在这里:http ://www.w3schools.com/php/php_get.asp

编辑:基本上与下面相同......必须在我输入答案时提交

于 2013-08-19T23:39:32.950 回答
1

在调用您的页面时将您的替换index.html为 a并传递 URL 变量,这意味着:index.phpindex.php

索引.php:

<?php if(isset($_GET['errors'])) {
    $errors = $_GET['errors'];
?>

<html>
    // some html tags
    <?php if($errors): ?>
        <div> your div error </div>
    <?php endif; ?>
</html>

并像这样调用该文件:header('Location: index.php?error="what you want"');

于 2013-08-19T23:46:34.260 回答