Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示错误消息时不应重新加载_Php_Jquery_Html_Ajax - Fatal编程技术网

Php 显示错误消息时不应重新加载

Php 显示错误消息时不应重新加载,php,jquery,html,ajax,Php,Jquery,Html,Ajax,我已经创建了一个登录页面,工作正常,但我面临的问题是当我输入无效的用户名、名称或密码时 它应该在不加载页面的情况下显示“无效用户名或密码”,这就是AJAX的用法,对吗?但是,当我输入一个无效的用户名或密码时,它显示了一个错误,即用户名或密码在加载页面时是无效的,这在AJAX中是不可接受的 有谁能帮我解决这个问题,错误消息应该显示而不重新加载页面 login.php: <?php session_start(); $mysqli = mysqli_connect("l

我已经创建了一个登录页面,工作正常,但我面临的问题是当我输入无效的用户名、名称或密码时

它应该在不加载页面的情况下显示
“无效用户名或密码”
,这就是AJAX的用法,对吗?但是,当我输入一个无效的用户名或密码时,它显示了一个错误,即用户名或密码在加载页面时是无效的,这在AJAX中是不可接受的

有谁能帮我解决这个问题,错误消息应该显示而不重新加载页面

login.php:

<?php 

    session_start(); 
    $mysqli  = mysqli_connect("localhost","root","","ajax1");
    if (isset($_SESSION['id'])){
        header('location:welcome.php');
    }

?>
<!DOCTYPE HTML>  
<html>

<head>
    <title> login script with ajax</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>

<body style="background-color:#b3ffff">

    <div style="padding-left:500px ; padding-top:200px">

        Username:   <input id="username" type="text" name="username" placeholder="username"><br><br>
        Password:   <input id="password" type="password" name="password" placeholder="Password"><br><br>
                    <input id="submit" name="submit" type="button" value="Log In">
                    <p style="color:black">Havent Registered Yet? <a href="index.php">Register</a>.</p><br><br>
                    <div id="display" style="color:red"></div>

        <script>
            $(document).ready(function(){
                $("#submit").click(function(){
                    var username = $("#username").val();
                    var password = $("#password").val();

                    var datastring = 'username=' + username + '&password=' + password;

                    if(username=='' || password==''){
                        $("#display").html("Please Enter All The Fields");
                    }
                    else{
                        $.ajax({
                        type: "POST",
                        url: "success.php",
                        data: datastring,
                        cache: false,
                        success: function(result){
                                $("#display").html(result);
                                window.location = "welcome.php";
                            }
                        });
                    }
                    return false;
                });
            });
        </script>
    </div>

</body>
</html>
<?php

    $mysqli  = mysqli_connect("localhost","root","","ajax1");
    session_start();

    if (isset($_SESSION['id'])){
        header('location:welcome.php');
    }

    $myusername = mysqli_real_escape_string($mysqli,$_POST['username']);
    $mypassword = mysqli_real_escape_string($mysqli,$_POST['password']); 

    $sql = "SELECT * FROM users WHERE username = '$myusername'";
    $result = mysqli_query($mysqli,$sql);
    $row = mysqli_fetch_array($result);
    $hashed_password=$row['password'];

    if(password_verify($mypassword, $hashed_password)) {
        $_SESSION['login_user'] = $myusername;
        $_SESSION['id']=$row['userid'];
        echo'Successfully Registered';
    exit();
    }    
    else 
    {
    echo'Invalid username or password';
    }
?>
<?php
    session_start();
    if (!isset($_SESSION['id'])) {
        header('location:login.php');
    }
?>

<!DOCTYPE html>
<html>

<head>

    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>

<body>

    <div style="Padding-left:200px; padding-top:100px">
            <?php
                $mysqli  = mysqli_connect("localhost","root","","ajax1");
                $query=mysqli_query($mysqli,"select * from `users` where userid='".$_SESSION['id']."'");
                $row=mysqli_fetch_array($query);
                echo 'Welcome - '.$row['username'];
            ?>

            <br><br>
                <a href="logout.php">Logout</a>
            <br><br>

            <div class="panel panel-primary" style="width:56%">

                <div class="panel-heading text-center">STUDENT'S DETAILS</div>

            </div>  


        <div class="container text-center">

            <?php

                $mysqli  = mysqli_connect("localhost","root","","ajax1");

                if (!isset($_POST["happy"])) {  
                    $result = mysqli_query($mysqli, "SELECT * FROM users");
                } else {
                            $search = mysqli_real_escape_string($mysqli, $_POST["happy"]);
                            $result = mysqli_query($mysqli, "SELECT * FROM users where department like '%$search%'");
                        } if(mysqli_num_rows($result) > 0) {
                    echo "<table border='1' class='text-center' >
                    <tr>

                        <th>USER_ID</th>
                        <th>USERNAME</th>
                        <th>E-MAIL</th>
                        <th>NAME</th>
                        <th>AGE</th>
                        <th>DATE_OF_BIRTH</th>
                        <th>DEPARTMENT</th>

                    </tr>";

                    while($row = mysqli_fetch_array($result))
                    {
                    echo "<tr>";
                        echo "<td>" . $row['userid'] . "</td>";
                        echo "<td>" . $row['username'] . "</td>";
                        echo "<td>" . $row['email'] . "</td>";
                        echo "<td>" . $row['name'] . "</td>";
                        echo "<td>" . $row['age'] . "</td>";
                        echo "<td>" . $row['date_of_birth'] . "</td>";
                        echo "<td>" . $row['department'] . "</td>";

                    echo "</tr>";
                    }
                echo "</table>";
                        }
                        else{
                            echo 'Sorry no record found';
                            }

            ?>

        </div>


        <div class="container form-group">
            <br><br>
            <form method="post">
                <label class="control-label" style="color:blue">Select :</label>

                <select name="happy" style="margin-left:14px; color:black;">
                                <option disabled selected value> -- select an option -- </option>
                                <option value="EE">Electrical & Electronics</option>
                                <option value="EC">Electronics & Communication</option>
                                <option value="ME">Mechanical</option>
                                <option value="CS">Computer Science</option>
                                <option value="CV">Civil</option>
                                <option value="IS">Information Science</option> 
                </select>
                <input type="submit" value="submit">
            </form>
        </div>

    </div>             
</body>
</html>

使用ajax的登录脚本
用户名:

密码:

尚未注册



$(文档).ready(函数(){ $(“#提交”)。单击(函数(){ var username=$(“#username”).val(); var password=$(“#password”).val(); var datastring='username='+username+'&password='+password; 如果(用户名=“”| |密码=“”){ $(“#显示”).html(“请输入所有字段”); } 否则{ $.ajax({ 类型:“POST”, url:“success.php”, 数据:datastring, cache:false, 成功:功能(结果){ $(“#显示”).html(结果); window.location=“welcome.php”; } }); } 返回false; }); });
success.php:

<?php 

    session_start(); 
    $mysqli  = mysqli_connect("localhost","root","","ajax1");
    if (isset($_SESSION['id'])){
        header('location:welcome.php');
    }

?>
<!DOCTYPE HTML>  
<html>

<head>
    <title> login script with ajax</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>

<body style="background-color:#b3ffff">

    <div style="padding-left:500px ; padding-top:200px">

        Username:   <input id="username" type="text" name="username" placeholder="username"><br><br>
        Password:   <input id="password" type="password" name="password" placeholder="Password"><br><br>
                    <input id="submit" name="submit" type="button" value="Log In">
                    <p style="color:black">Havent Registered Yet? <a href="index.php">Register</a>.</p><br><br>
                    <div id="display" style="color:red"></div>

        <script>
            $(document).ready(function(){
                $("#submit").click(function(){
                    var username = $("#username").val();
                    var password = $("#password").val();

                    var datastring = 'username=' + username + '&password=' + password;

                    if(username=='' || password==''){
                        $("#display").html("Please Enter All The Fields");
                    }
                    else{
                        $.ajax({
                        type: "POST",
                        url: "success.php",
                        data: datastring,
                        cache: false,
                        success: function(result){
                                $("#display").html(result);
                                window.location = "welcome.php";
                            }
                        });
                    }
                    return false;
                });
            });
        </script>
    </div>

</body>
</html>
<?php

    $mysqli  = mysqli_connect("localhost","root","","ajax1");
    session_start();

    if (isset($_SESSION['id'])){
        header('location:welcome.php');
    }

    $myusername = mysqli_real_escape_string($mysqli,$_POST['username']);
    $mypassword = mysqli_real_escape_string($mysqli,$_POST['password']); 

    $sql = "SELECT * FROM users WHERE username = '$myusername'";
    $result = mysqli_query($mysqli,$sql);
    $row = mysqli_fetch_array($result);
    $hashed_password=$row['password'];

    if(password_verify($mypassword, $hashed_password)) {
        $_SESSION['login_user'] = $myusername;
        $_SESSION['id']=$row['userid'];
        echo'Successfully Registered';
    exit();
    }    
    else 
    {
    echo'Invalid username or password';
    }
?>
<?php
    session_start();
    if (!isset($_SESSION['id'])) {
        header('location:login.php');
    }
?>

<!DOCTYPE html>
<html>

<head>

    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>

<body>

    <div style="Padding-left:200px; padding-top:100px">
            <?php
                $mysqli  = mysqli_connect("localhost","root","","ajax1");
                $query=mysqli_query($mysqli,"select * from `users` where userid='".$_SESSION['id']."'");
                $row=mysqli_fetch_array($query);
                echo 'Welcome - '.$row['username'];
            ?>

            <br><br>
                <a href="logout.php">Logout</a>
            <br><br>

            <div class="panel panel-primary" style="width:56%">

                <div class="panel-heading text-center">STUDENT'S DETAILS</div>

            </div>  


        <div class="container text-center">

            <?php

                $mysqli  = mysqli_connect("localhost","root","","ajax1");

                if (!isset($_POST["happy"])) {  
                    $result = mysqli_query($mysqli, "SELECT * FROM users");
                } else {
                            $search = mysqli_real_escape_string($mysqli, $_POST["happy"]);
                            $result = mysqli_query($mysqli, "SELECT * FROM users where department like '%$search%'");
                        } if(mysqli_num_rows($result) > 0) {
                    echo "<table border='1' class='text-center' >
                    <tr>

                        <th>USER_ID</th>
                        <th>USERNAME</th>
                        <th>E-MAIL</th>
                        <th>NAME</th>
                        <th>AGE</th>
                        <th>DATE_OF_BIRTH</th>
                        <th>DEPARTMENT</th>

                    </tr>";

                    while($row = mysqli_fetch_array($result))
                    {
                    echo "<tr>";
                        echo "<td>" . $row['userid'] . "</td>";
                        echo "<td>" . $row['username'] . "</td>";
                        echo "<td>" . $row['email'] . "</td>";
                        echo "<td>" . $row['name'] . "</td>";
                        echo "<td>" . $row['age'] . "</td>";
                        echo "<td>" . $row['date_of_birth'] . "</td>";
                        echo "<td>" . $row['department'] . "</td>";

                    echo "</tr>";
                    }
                echo "</table>";
                        }
                        else{
                            echo 'Sorry no record found';
                            }

            ?>

        </div>


        <div class="container form-group">
            <br><br>
            <form method="post">
                <label class="control-label" style="color:blue">Select :</label>

                <select name="happy" style="margin-left:14px; color:black;">
                                <option disabled selected value> -- select an option -- </option>
                                <option value="EE">Electrical & Electronics</option>
                                <option value="EC">Electronics & Communication</option>
                                <option value="ME">Mechanical</option>
                                <option value="CS">Computer Science</option>
                                <option value="CV">Civil</option>
                                <option value="IS">Information Science</option> 
                </select>
                <input type="submit" value="submit">
            </form>
        </div>

    </div>             
</body>
</html>

welcome.php:

<?php 

    session_start(); 
    $mysqli  = mysqli_connect("localhost","root","","ajax1");
    if (isset($_SESSION['id'])){
        header('location:welcome.php');
    }

?>
<!DOCTYPE HTML>  
<html>

<head>
    <title> login script with ajax</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>

<body style="background-color:#b3ffff">

    <div style="padding-left:500px ; padding-top:200px">

        Username:   <input id="username" type="text" name="username" placeholder="username"><br><br>
        Password:   <input id="password" type="password" name="password" placeholder="Password"><br><br>
                    <input id="submit" name="submit" type="button" value="Log In">
                    <p style="color:black">Havent Registered Yet? <a href="index.php">Register</a>.</p><br><br>
                    <div id="display" style="color:red"></div>

        <script>
            $(document).ready(function(){
                $("#submit").click(function(){
                    var username = $("#username").val();
                    var password = $("#password").val();

                    var datastring = 'username=' + username + '&password=' + password;

                    if(username=='' || password==''){
                        $("#display").html("Please Enter All The Fields");
                    }
                    else{
                        $.ajax({
                        type: "POST",
                        url: "success.php",
                        data: datastring,
                        cache: false,
                        success: function(result){
                                $("#display").html(result);
                                window.location = "welcome.php";
                            }
                        });
                    }
                    return false;
                });
            });
        </script>
    </div>

</body>
</html>
<?php

    $mysqli  = mysqli_connect("localhost","root","","ajax1");
    session_start();

    if (isset($_SESSION['id'])){
        header('location:welcome.php');
    }

    $myusername = mysqli_real_escape_string($mysqli,$_POST['username']);
    $mypassword = mysqli_real_escape_string($mysqli,$_POST['password']); 

    $sql = "SELECT * FROM users WHERE username = '$myusername'";
    $result = mysqli_query($mysqli,$sql);
    $row = mysqli_fetch_array($result);
    $hashed_password=$row['password'];

    if(password_verify($mypassword, $hashed_password)) {
        $_SESSION['login_user'] = $myusername;
        $_SESSION['id']=$row['userid'];
        echo'Successfully Registered';
    exit();
    }    
    else 
    {
    echo'Invalid username or password';
    }
?>
<?php
    session_start();
    if (!isset($_SESSION['id'])) {
        header('location:login.php');
    }
?>

<!DOCTYPE html>
<html>

<head>

    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>

<body>

    <div style="Padding-left:200px; padding-top:100px">
            <?php
                $mysqli  = mysqli_connect("localhost","root","","ajax1");
                $query=mysqli_query($mysqli,"select * from `users` where userid='".$_SESSION['id']."'");
                $row=mysqli_fetch_array($query);
                echo 'Welcome - '.$row['username'];
            ?>

            <br><br>
                <a href="logout.php">Logout</a>
            <br><br>

            <div class="panel panel-primary" style="width:56%">

                <div class="panel-heading text-center">STUDENT'S DETAILS</div>

            </div>  


        <div class="container text-center">

            <?php

                $mysqli  = mysqli_connect("localhost","root","","ajax1");

                if (!isset($_POST["happy"])) {  
                    $result = mysqli_query($mysqli, "SELECT * FROM users");
                } else {
                            $search = mysqli_real_escape_string($mysqli, $_POST["happy"]);
                            $result = mysqli_query($mysqli, "SELECT * FROM users where department like '%$search%'");
                        } if(mysqli_num_rows($result) > 0) {
                    echo "<table border='1' class='text-center' >
                    <tr>

                        <th>USER_ID</th>
                        <th>USERNAME</th>
                        <th>E-MAIL</th>
                        <th>NAME</th>
                        <th>AGE</th>
                        <th>DATE_OF_BIRTH</th>
                        <th>DEPARTMENT</th>

                    </tr>";

                    while($row = mysqli_fetch_array($result))
                    {
                    echo "<tr>";
                        echo "<td>" . $row['userid'] . "</td>";
                        echo "<td>" . $row['username'] . "</td>";
                        echo "<td>" . $row['email'] . "</td>";
                        echo "<td>" . $row['name'] . "</td>";
                        echo "<td>" . $row['age'] . "</td>";
                        echo "<td>" . $row['date_of_birth'] . "</td>";
                        echo "<td>" . $row['department'] . "</td>";

                    echo "</tr>";
                    }
                echo "</table>";
                        }
                        else{
                            echo 'Sorry no record found';
                            }

            ?>

        </div>


        <div class="container form-group">
            <br><br>
            <form method="post">
                <label class="control-label" style="color:blue">Select :</label>

                <select name="happy" style="margin-left:14px; color:black;">
                                <option disabled selected value> -- select an option -- </option>
                                <option value="EE">Electrical & Electronics</option>
                                <option value="EC">Electronics & Communication</option>
                                <option value="ME">Mechanical</option>
                                <option value="CS">Computer Science</option>
                                <option value="CV">Civil</option>
                                <option value="IS">Information Science</option> 
                </select>
                <input type="submit" value="submit">
            </form>
        </div>

    </div>             
</body>
</html>

引导示例

获取JSON响应,如下所示:

{success: true} or {success: false}
并检查它是否成功

if(result.success == true) {
 window.location = 'welcome.php';
}
或者在你的代码中

if(result.indexOf('Successfully') > -1) {
 window.location = 'welcome.php';
}
编辑:回购

$.ajax({
 type: "POST",
 url: "success.php",
 data: datastring,
 cache: false,
 success: function(result){
  $("#display").html(result);
  if(result.indexOf('Successfully') > -1) {
   window.location = "welcome.php";
  }
 }
});

离题,但你应该看看你正在加载错误消息,在更改页面后,如果我输入任何无效的用户名或密码,它应该显示错误消息无效的用户名或密码,而不加载页面,而是通过加载页面来显示,问题寻求调试帮助(“此代码为什么不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。先生,我试过你说的,但它不起作用。你能编辑我的代码并让我知道吗?请再次检查我的答案,像那样使用