Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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_Ajax_Json_Dynamic_Instant - Fatal编程技术网

Php &引用;“动力”;会议

Php &引用;“动力”;会议,php,ajax,json,dynamic,instant,Php,Ajax,Json,Dynamic,Instant,我们有一个由php和ajax处理的登录表单。ajax向php页面发送一个请求,请求中包含要登录的用户名和密码。它会收到一个响应,如果响应正确且有效,则会将其登录: 接收请求的php页面包含以下代码: echo (checkLogin($_POST['user'], $_POST['pass']) ? 'true' : 'false'); if(checkLogin($_POST['user'], $_POST['pass']) == true) l

我们有一个由php和ajax处理的登录表单。ajax向php页面发送一个请求,请求中包含要登录的用户名和密码。它会收到一个响应,如果响应正确且有效,则会将其登录:

接收请求的php页面包含以下代码:

        echo (checkLogin($_POST['user'], $_POST['pass']) ? 'true' : 'false');
        if(checkLogin($_POST['user'], $_POST['pass']) == true)
        logIn($_POST['user'], $_POST['pass']);
该语句中使用的函数:

function logIn($user, $pass)
    {
            $_SESSION['sid'] = md5(md5($user) . md5($pass));
            $_SESSION['username'] = $user;
            $_SESSION['password'] = $pass;
    }

    function checkLogin($user, $pass)
    {
        $user = strtolower($user);
        $pass = strtolower($pass);

        $res = mysql_query("SELECT * FROM users WHERE username='".$user."'");
        if(mysql_num_rows($res) == 1)
        {
            $data = mysql_fetch_assoc($res);
            if($data['pass'] == aCrypt($pass))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;           
        }
    }

现在,会话似乎已经启动,只有在用户重新加载页面后才能看到。我们需要它来启动页面上的会话……我们需要用ajax刷新整个页面吗?我真的不知道从这里走到哪里。

你可能想使用这个模式;用户成功通过身份验证后,使用重定向将其发送到新页面


如上文所述,请查看代码中的SQL注入和会话固定漏洞。

请查阅SQL注入(),并在登录后考虑使用<代码> Session x ReGeReaTyId < /代码>,以防止会话固定攻击()。SQL注入已被固定。在userActions页面的顶部,使用我编写的自定义函数对所有post数据进行清理。不过还是要谢谢你。这样做从长远来看会给你带来痛苦(主要是因为你必须一直正确地做)。使用PDO查看准备好的语句,这样更容易、更安全。