セッションを使い始めたばかりで、頭が痛いです。これは昨夜は機能していましたが、今日は開いています...機能しなくなりました。
私のログイン プロセッサでは、すべてが問題なければ次のようになります。このスクリプトは問題なく動作します。セッション変数をエコーして、配列が機能することを確認しました。
$username - > post from login script
$encrypt_password -> created from password check further up the script
{
$session_name = 'LOGIN'; // Set a custom session name
$secure = false; // Set to true if using https.
$httponly = true; // This stops javascript being able to access the session id.
$cookie_lifetime = '3600';
$cookie_path = '/';
$cookie_domain = '127.0.0.1';
session_set_cookie_params($cookie_lifetime, $cookie_path, $cookie_domain, $secure, $httponly);
session_name($session_name); // Sets the session name to the one set above.
$group = $row['group_type'];
$user_browser = $_SERVER['HTTP_USER_AGENT']; /*grabs browser info*/
$user_id = preg_replace("/[^a-zA-Z0-9_\-]+/", "", $username); /*XSS Protection*/
$group_id = preg_replace("/[^a-zA-Z0-9_\-]+/", "", $group); /*XSS Protection*/
session_start();
$_SESSION['user']=$user_id;
$_SESSION['group_name']=$group_id;
$_SESSION['login_string'] = hash('sha512', $user_browser.$encrypt_password);
session_write_close();
header("location:".$group_id."_index.php");
}
セッションから情報を収集するインクルード ファイルを作成し、保護されたすべてのページに含めました。各 if ステートメントのカスタム エラー コードを作成したところ、ここの if ステートメントが失敗することがわかりました。セッション変数をエコーするか、セッション配列を夜に印刷しても何も返されません。
$session_name = 'LOGIN'; // Set a custom session name
$secure = false; // Set to true if using https.
$httponly = true; // This stops javascript being able to access the session id.
$cookie_lifetime = '3600';
$cookie_path = '/';
$cookie_domain = '127.0.0.1';
session_set_cookie_params($cookie_lifetime, $cookie_path, $cookie_domain, $secure, $httponly);
session_name($session_name); // Sets the session name to the one set above.
session_start(); // Start the php session
session_regenerate_id(false); // regenerated the session, delete the old one.
if(isset($_SESSION['user'],$_SESSION['group_name'], $_SESSION['login_string']))
これが壊れる前にユーザーグループの働き方を変えていましたが、どの変数もうまくいきませんでした。ところで、私は彼から学んでいます: php と mysql で安全なログイン スクリプトを作成します。
また、ユーザーが保護されたページにアクセスするたびに、セッション パラメータを呼び出す必要がありますか?
ご指摘ありがとうございます。