我是会议中的新手,但我真的需要使用它们。
在很多示例中,我在session_set_cookie_params()
之前看到了函数session_start()
。但是当我以这种方式使用它时,我似乎并不像它那样工作。
当我在session_set_cookie_params()
之后放置session_start()
时,一切似乎都正常,但session_set_cookie_params()
返回NULL。
你知道怎么做这个吗?
这是index.php
<?php
session_name('firstsession');
session_set_cookie_params(7200, '/', 'localhost', true, true);
session_start();
require_once('includes/header.php');
require_once('DatabaseConnectivityManager.php');
require_once('AuthenticationAuthority.php');
$dbManager = DatabaseConnectivityManager::getInstance();
$dbManager->initialize('localhost', 3306, 'admin', '123456789');
$connection = $dbManager->getConnection();
$authenticationAuthority = AuthenticationAuthority::getInstance();
if(isset($_SESSION['isLogged'] ) && $_SESSION['isLogged'] = true) {
echo 'Hello ';
?>
<br><a href="logout.php">Logout</a><br>
<?php
}
else {
require('includes/loginForm.php');
if($_POST) {
if (empty($_POST['username']) || empty($_POST['password'])) {
echo 'There is an empty field';
}
else{
if($authenticationAuthority->checkCredentials($_POST['username'], $_POST['password'])) {
echo 'You are now logged in';
$_SESSION['isLogged'] = true;
header("Location: index.php");
}
else {
echo 'Wrong pass or username';
}
}
}
}
答案 0 :(得分:0)
你的代码很好。 void session_set_cookie_params()
不应该返回任何内容。这就是为什么您在manual中的函数名称前面看到void
的原因。
答案 1 :(得分:0)
找到答案!我在使用localhost时必须使SECURE参数为FALSE。
session_set_cookie_params(0, '/', 'localhost', true, true);