douhang5460 2016-10-18 09:48
浏览 102
已采纳

从PHP脚本中获取数据

So after validating the form via Jquery, I like to know if the username and password are valid. If they are, it should redirect to another page, else I want to find a way of showing it to the user. At this point, I'm really confused. Here's the jquery code:

    $(document).ready(function(e) {
    $('.error').hide();
    $('#staffLogin').submit(function(e) {
        e.preventDefault();
        $('.error').hide();
        uName = $('#staff_username').val();
        pWord = $('#staff_password').val();
        if(uName == ''){
            $('#u_error').fadeIn();
            $('#staff_username').focus();
            return false;
        }
        if(pWord == ''){
            $('#p_error').fadeIn();
            $('#staff_password').focus();
            return false;
        }
        $.ajax({
            type : 'POST', url : 'staff_access.php', data : 'uName='+uName+'&pWord='+pWord,
            success: function(html){
                if(html == 'true'){
                    window.location = 'staff_page.php';
                }
                else{
                    $('#val_error').fadeIn();
                }
            }
        })          
    });
});

PHP:

<?php
                    include('admin/config.php');
                    $username = $_POST['uName'];
                    $password = $_POST['pWord'];
                    $conn = mysqli_connect(DB_DSN,DB_USERNAME,DB_PASSWORD,dbname);
                    if ($conn) {
                       $qry = "SELECT lastname, firstname, FROM staff_user WHERE username='".$username."' AND pass='".$password."";
                        $res = mysqli_query($qry);
                        $num_row = mysqli_num_rows($res);
                        $row=mysql_fetch_assoc($res);
                        if ($num_row == 1) {
                            session_start();
                            $_SESSION['login'] = true;
                            $_SESSION['lastname'] = $row['lastname'];
                            $_SESSION['firstname'] = $row['firstname'];
                            $_SESSION['username'] = $row['username'];
                            echo "true";
                        }
                        else{
                            echo "false";
                        }
                    }
                    else{
                        $conn_err = "Could not connect.".mysql_error();
                    }                    

                mysqli_close($conn);
        ?>

FORM:

    <form name="staff_login" method="post" action="" id="staffLogin">
            <fieldset>
            <legend>Staff Login</legend>
            <span class="fa fa-user fa-5x"></span>
            <br><br>
            <input type="text" name="staff_username" id="staff_username" placeholder="Username">
            <br><span class="error" id="u_error">Username Required</span><br>
            <input type="password" name="staff_password" id="staff_password" placeholder="Password">
            <br><span class="error" id="p_error">Password Required</span><br>
            <span class="error" id="val_error">Incorrect Username and Password combination</span>
            <input type="submit" name="staff_login" value="Login">
            </fieldset>
        </form>
  • 写回答

2条回答 默认 最新

  • doumisha5081 2016-10-18 09:54
    关注

    Your ajax data is sent in wrong format. POST data should be sent as an object.

    $.ajax({
            type : 'POST',
            url : 'staff_access.php',
            data : {
                       uName: uName,
                       pWord: pWord
                   },
            dataType: 'text',
            success: function(html){
                if(html == 'true'){
                    window.location = 'staff_page.php';
                }
                else{
                    $('#val_error').fadeIn();
                }
            }
        });
    

    Also avoid using texts like 'html'. You may end up getting unnecessary errors due to that. Use more relevant words like "success: function(response)"

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加