私はカスタムユーザークラスを呼び出すログインスクリプトを持っており、ユーザーはログインしてセッションが設定されます。 redictのvar dumpをlogin.phpページに実行すると、ユーザーが正常にログインし、フレンドリーなウェルカムメッセージが表示されます。PHPセッションログインしても別のページには存在しません
セッションを設定するためのコードは次のとおりです。login.phpページの罰金働いている
private function setIsLoggedIn($credentials) {
if (!isset($_SESSION)) {
session_start();
}
$_SESSION['verified'] = $credentials;
session_write_close();
}
は、関数の引数は次のとおりです。
// assign user info from db to the session
$this->setIsLoggedIn(array('UserId' => $user->userid,
'UserName' => $user->username,
'RoleId' => $user->roleid));
が、これはlogin.phpでありますフォームのポストバック
// if the form was submitted
if (isset($_POST['submit'])) {
// Set local variables from $_POST array elements (userlogin and userpassword) or empty strings
$userLogin = (isset($_POST['userlogin'])) ? trim($_POST['userlogin']) : '';
$userPassword = (isset($_POST['userpassword'])) ? trim($_POST['userpassword']) : '';
//assign values to array and get user object
$authArray = array('UserName' => $userLogin, 'Password' => $userPassword);
$user = new Users($authArray);
if ($user->getUserId() > 0) { //If credentials check out
// redirect the user to SESSION value set from common class
if (isset($_SESSION['prev_page']))
{
header('location:' . $_SESSION['prev_page']);
exit;
}
else
{
// Otherwise, assign error message to $msg
$msg = '<p><strong>Thank your for logging in.<br />You may now visit tools that are in development.</strong></p>';
}
}
else
{
// Otherwise, assign error message to $msg
$msg = '<p><strong>Sorry, that username and password are not recognized.<br />Please try again.</strong></p>';
}
}
私は別のページに行き、$ var_dump($ _ SESSION);を実行します。ページに私はこれを設定していますので、私はいつも、何か他のものを得る:
$_SESSION['prev_page'] = "http://".$_SERVER[SERVER_NAME]."/id/AphID/";
このファイルの最初の行は、次のとおりです。
<?php
session_start();
var_dump($_SESSION);
ここに私のPHPセッションの設定です:
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path//
session.cookie_secure Off Off
session.entropy_file /dev/urandom /dev/urandom
session.entropy_length 16 16
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler user files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 1 1
したがって、基本的に私のセッションは本当にログインページにのみ存在し、他にはどこにもなく、Session_start()を呼び出すと、私はいつも別のセッションをします。何か案は?
を呼び出すことができ、セッションを復元するために
? session_write_close呼び出しの後で設定されても、効果はありません。 –