Php 如果用户输入错误的ID和密码,如何重定向索引页上的错误消息

Php 如果用户输入错误的ID和密码,如何重定向索引页上的错误消息,php,html,web,Php,Html,Web,我是新的php,我想,如果用户输入错误的ID和密码,并在索引页面错误消息重定向,但我不知道如何做到这一点。我做了几件事,但都不管用。 我有两个名为index.php和authenticate.php的文件 Index.php 用户名 密码 Authenticate.php 试试这个 else{ // You Can use php headers() instead of a javascript redirect if you want print "<script

我是新的php,我想,如果用户输入错误的ID和密码,并在索引页面错误消息重定向,但我不知道如何做到这一点。我做了几件事,但都不管用。 我有两个名为index.php和authenticate.php的文件

Index.php


用户名

密码

Authenticate.php

试试这个

else{
    // You Can use php headers() instead of a javascript redirect if you want
    print "<script type='text/javascript'>window.location='index.php';</script>";
    //echo mysql_error();
}
else{
//如果需要,可以使用php headers()代替javascript重定向
打印“window.location='index.php';”;
//echo mysql_error();
}

只需使用会话即可

Authenticate.php

else {
        $_SESSION['error_message']="Wrong Username or Password";
        header("location: index.php");
    }
index.php

if(isset($_SESSION['error_message']){
   echo $_SESSION['error_message'];
   unset($_SESSION['error_message']);
}
虽然还没有测试过,但应该可以用


如果要显示警报

...
?>
<script type='text/javascript'>
    <?php if(isset($_SESSION['error_message']){ ?>
       alert("<?php echo $_SESSION['error_message']; ?>");
       <?php unset($_SESSION['error_message']); ?>
    <?php } ?>
</script>
。。。
?>
一些简单的代码:

<?php
header("HTTP/1.0 401 Unauthorized"); // Set 401 Error
header("Location: index.php?error=Invalid+Username+or+Password"); // Redirect
exit(); // Don't want php to still keep executing
/* basic script by anonman. in public domain */
?>

请记住,在使用头重定向之前,您不能输出任何内容,而且您似乎回显了用户名和姓氏。。它们不再得到维护。看到了吗?改为了解,并使用or-将帮助您决定我在index.php文件中的哪个位置编写此文件@Adnen如果用户名和密码匹配,你的代码会重定向吗?如果我输入了错误的信息,我不会得到任何错误。它会重定向到索引页面,但不会显示任何错误。我可以粘贴index.php的代码吗?如果需要的话?对不起,我以为你会回显$u会话['msg']。。但是,是的,只需在索引页上放置以下内容:if(设置($\u会话['msg'])&&&$\u会话['msg']!='''{//Echo消息Echo$\u会话['msg'];//再次从会话中清除它unset($\u会话['msg']))
 <?php
    if(isset($_SESSION['msg']) && $_SESSION['msg'] != ''){
        echo $_SESSION['msg'];
        unset($_SESSION['msg']);
    }
    include_once('config.php');
    //You can start the session so long, so you can carry over your error message
    session_start();
    // username and password sent from form
    $myusername=$_POST['username'];
    $mypassword=$_POST['password'];

    // To protect MySQL injection
    $myusername = stripslashes($myusername);
    $mypassword = stripslashes($mypassword);
    $myusername = mysql_real_escape_string($myusername);
    $mypassword = mysql_real_escape_string($mypassword);

    $sql="SELECT * FROM logins WHERE username='$myusername' and password='$mypassword' LIMIT 1";

    $result=mysql_query($sql);
    //Get the data
    $data = mysql_fetch_array($result);

    if(!empty($data)){      //Alternatively you could just go "if($result){}"
        //Set the session username (Should use the user id rather or login id | Just tad bit of advice :) )

        $_SESSION['username'] = $data[0]['username'];
        //Set a success message
        $_SESSION['msg'] = "You've successfully logged in";
        //Redirect them to their page
        header("location: courses/courses.php");
    }else{
        //Else set message that credentials is bad
        $_SESSION['msg'] = "Login credentials bad"
        //Redirect them to the index page
        header("location: index.php");
    }
...
?>
<script type='text/javascript'>
    <?php if(isset($_SESSION['error_message']){ ?>
       alert("<?php echo $_SESSION['error_message']; ?>");
       <?php unset($_SESSION['error_message']); ?>
    <?php } ?>
</script>
<?php
header("HTTP/1.0 401 Unauthorized"); // Set 401 Error
header("Location: index.php?error=Invalid+Username+or+Password"); // Redirect
exit(); // Don't want php to still keep executing
/* basic script by anonman. in public domain */
?>