使用bootstrap模式和jquery时,mysql_fetch_array不起作用

时间:2014-07-09 14:22:15

标签: php jquery ajax modal-dialog

我使用ajax $ .post方法发送用户并传递给我的数据库,一切看起来不错,但mysql_fetch_array不从数据库中获取数据。 这是jquery:

$(document).ready(function(){
    $('#but').click(function(){
        //$('#load').html('<strong>در حال ارسال پیام، لطفا منتظر باشید</script>');
    var pcode = $('#pcode').val();
    var pass = $('#pass').val();
    $.post('login_ajax.php',{php_pcode:pcode,php_pass:pass,su:"set"},function(data){$('#load').html(data);});
    });
});

这是php代码:

<?php
if (isset($_POST['su'])) {
$pcode = $_POST['php_pcode'];
$pass = $_POST['php_pass'];
require_once('../inc/db.php');
$res = mysql_query("SELECT * FROM user WHERE pcode='$pcode' AND passs='$pass'");
$fe = mysql_fetch_assoc($res);
$co = mysql_num_rows($res);
if ($co == 1) {
    $_SESSION['pcode'] = $pcode;
    $_SESSION['pass'] = $pass;
    $_SESSION['firstname'] = $fe['firstname'];
    $_SESSION['lastname'] = $fe['lastname'];
    $_SESSION['sex'] = $fe['sex'];
    $_SESSION['level'] = $fe['level'];
        if ($_SESSION['level'] == 1) {
            header('location: admin_panel.php');
            }
        elseif ($_SESSION['level'] == 2) {
            header('location: elementary_panel.php');
            }
        elseif ($_SESSION['level'] == 3) {
            header('location: guidance_panel.php');
            }
        elseif ($_SESSION['level'] == 4) {
            header('location: highschol_panel.php');
            }
        elseif ($_SESSION['level'] == 5) {
            header('location: art_panel.php');
            }
        }
    elseif ($count==0){
        echo "کد کاربری اشتباه است";
                //$_SESSION['msg'] = "کد پرسنلی یا رمز عبور اشتباه است";
                //header('location: login.php');
    }
}

&GT;

1 个答案:

答案 0 :(得分:0)

你有多个错误:

1)易受[SQL注入攻击(http://bobby-tables.com)的影响 2)您的查询完全没有错误处理。从不假设成功。总是假设失败并将成功视为一个惊喜。绝对的骨干最小&#34;安全&#34;编码类似于:

$result = mysql_query($sql) or die(mysql_error());
                           ^^^^^^^^^^^^^^^^^^^^^^^

3)使用过时/弃用的数据库接口(不应再使用mysql _ *()函数)
4)错误匹配的变量名称:

$co = mysql_num_rows($res);
 ^^---the count
if ($count == 1) {
     ^^^^^---where did this variable come from?

由于您正在检查错误的值,因此您的所有$ _SESSION构建代码永远不会被执行,因此您的整个脚本都是无用的。

5)无法在任何地方调用session_start(),因此当脚本退出时,您的$ _SESSION变量将会丢失。