从函数

时间:2017-03-13 03:20:55

标签: php session authentication cookies session-cookies

这是我的代码:

的login.php:

require "auth.php";

$correct_username_password = true;
$user_id = 1;

if($correct_username_password == true) {
    startSession($user_id);
}

auth.php:

function startSession($user_id) {
    $_SESSION['user_id'] = $user_id;
    session_start();
    header('Location: https://www.example.com/successpage');
}

但是我的会话没有开始。我知道它没有启动,因为我的headerhttps://www.example.com/successpage没有重定向。怎么了?

1 个答案:

答案 0 :(得分:1)

在使用session_start();之前,您需要$_SESSION

这是一个有效的代码示例:

// auth.php:

function startSession($user_id) {
    session_start();
    $_SESSION['user_id'] = $user_id;
    header('Location: https://www.example.com/successpage');
    exit();
}

// login.php:

require('auth.php');

$correct_username_password = true;
$user_id = 1;

if($correct_username_password == true) {
    startSession($user_id);
}

var_dump($_SESSION);

注意:如果您在exit();之后没有header('Location: xxx');,则会加载页面的其余部分。