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

关于使用php进行会话维护

关于使用php进行会话维护,php,session,Php,Session,这是我的login\u checkphp文件和login\u donephp文件。 在我加入会话功能之前,它工作得很好。 但在我插入了一些会话函数之后,它就停止了工作,并继续导致“无效登录”,即使使用了有效的ID和密码 'login_check.php' <?php session_start(); include_once ('../config.php'); $mysqli = new mysqli($DB['host'], $DB['id'], $DB['pw

这是我的
login\u check
php文件和
login\u done
php文件。 在我加入会话功能之前,它工作得很好。 但在我插入了一些会话函数之后,它就停止了工作,并继续导致“无效登录”,即使使用了有效的ID和密码

'login_check.php'

<?php
    session_start();
    include_once ('../config.php');
    $mysqli = new mysqli($DB['host'], $DB['id'], $DB['pw'], $DB['db']);
    if (mysqli_connect_error()) {
        exit('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
    }

    extract($_POST);

    $q = "SELECT * FROM ap_member WHERE id='$user_id'";

    $result = $mysqli->query($q);

    if($result->num_rows==1) {
        $encrypted_pass = sha1($user_pass);
        $row = $result->fetch_array(MYSQLI_ASSOC);
        if( $row['pw'] == $encrypted_pass ) {
            header("Location: http://sovereign-recipe.com/member/login_done.php");
            exit();
        }
        else {
            echo 'wrong password';
        }
    }
    else {
        echo 'ID does not exist or invalid approach. Try again.';
    }

    if( $row['pw'] == $encrypted_pass ) {
            $_SESSION['is_logged'] = 'YES';
            $_SESSION['user_id'] = $user_id;
            header("Location: http://sovereign-recipe.com/member/login_done.php");
            exit();
        }
        else {
            $_SESSION['is_logged'] = 'NO';
            $_SESSION['user_id'] = '';
            header("Location: http://sovereign-recipe.com/member/login_done.php");
            exit();
        }

?>

在您的login\u check.php中尝试这种方法

session_start();
include_once ('../config.php');
$mysqli = new mysqli($DB['host'], $DB['id'], $DB['pw'], $DB['db']);
if (mysqli_connect_error()) {
    exit('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}

extract($_POST);

$q = "SELECT * FROM ap_member WHERE id='$user_id'";

$result = $mysqli->query($q);

if ($result->num_rows == 1) {
    $encrypted_pass = sha1($user_pass);
    $row = $result->fetch_array(MYSQLI_ASSOC);
    if ($row['pw'] == $encrypted_pass) {
        $_SESSION['is_logged'] = 'YES';
        $_SESSION['user_id'] = $user_id;
    } else {
        $_SESSION['is_logged'] = 'NO';
        $_SESSION['user_id'] = '';
        //echo 'wrong password';
    }
} else {
    $_SESSION['is_logged'] = 'NO';
    $_SESSION['user_id'] = '';
    echo 'ID does not exist or invalid approach. Try again.';
}

//You can to use here your redirect, then remove the previous
header("Location: http://sovereign-recipe.com/member/login_done.php");
exit();

我希望这对您有所帮助。

在您的login\u check.php中尝试这种方法

session_start();
include_once ('../config.php');
$mysqli = new mysqli($DB['host'], $DB['id'], $DB['pw'], $DB['db']);
if (mysqli_connect_error()) {
    exit('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}

extract($_POST);

$q = "SELECT * FROM ap_member WHERE id='$user_id'";

$result = $mysqli->query($q);

if ($result->num_rows == 1) {
    $encrypted_pass = sha1($user_pass);
    $row = $result->fetch_array(MYSQLI_ASSOC);
    if ($row['pw'] == $encrypted_pass) {
        $_SESSION['is_logged'] = 'YES';
        $_SESSION['user_id'] = $user_id;
    } else {
        $_SESSION['is_logged'] = 'NO';
        $_SESSION['user_id'] = '';
        //echo 'wrong password';
    }
} else {
    $_SESSION['is_logged'] = 'NO';
    $_SESSION['user_id'] = '';
    echo 'ID does not exist or invalid approach. Try again.';
}

//You can to use here your redirect, then remove the previous
header("Location: http://sovereign-recipe.com/member/login_done.php");
exit();

我希望这对您有所帮助。

尝试调试检查id和密码是否已通过。如何执行调试检查-是否有任何好的参考指南?您的查询应该是从ap_成员中选择*,其中id=“$user_id”和password=”$encrypted_pass”。然后检查num_rows()query@SmithJackery.放出口()您要停止并打开错误报告()的位置。在任务中分配您的工作,如选择查询、结果检查等。您正在调用
exit()
当密码匹配时。因此,您永远不会执行设置会话变量的底部代码。请尝试调试检查id和密码是否已传递。如何进行调试检查-是否有良好的参考指南?您的查询应选择*FROM ap_member,其中id='$user_id'和密码='$encrypted_pass'。并在此之后检查num_rows()query@SmithJackery. 将exit()放在要停止的位置,然后打开error_reporting()。将您在任务中的工作划分为选择查询、结果检查等。当密码匹配时,您将调用
exit()
。因此,您永远不会执行设置会话变量的底部代码。