警告:重複ではありません。この問題は見つかりません。
localhost でウェブサイトをテストおよび構築しています。ログインページに次のコードがあり、ユーザー ID Cookie がある場合にユーザーをプロファイルページに送信し、IP は Cookie が言うべきものと同じです。
if($_COOKIE["IPcookie"] == $_SERVER['REMOTE_ADDR']) {
$cookieresult = mysqli_query($connection, 'SELECT COUNT(`ID`) AS count FROM users WHERE username="$_COOKIE["usercookie"]" AND `active`="1"');
if($cookieresult == 0) {
$loginquery = mysqli_query($connection, "SELECT * FROM users WHERE username=" .$_COOKIE['usercookie']);
$row5 = mysqli_fetch_assoc($loginquery);
$dbIDlogin = $row5['ID'];
$_SESSION['userID'] = $dbIDlogin;
header('Location: /userprofile.php');
}
ただし、これらの Cookie を使用してユーザー プロファイルにアクセスすると$_SESSION['userID']
、NULL
. なぜ「時々」が$_SESSION
行くのか理解できないようですNULL
。私はそれにパターンを見つけることができないようです。1 人のユーザーにログインし、プロファイル ページのすべてのリンクをクリックして、Web サイトのさまざまな領域に移動し、loginuser.php
(上記のファイル) に戻ります。あるユーザーでは機能しますが、別のユーザーでは機能しません。それは完全にランダムのようで、私を混乱させます。ユーザー間で変更される理由は考えられません。これを引き続きテストして、パターンを見つけられるかどうかを確認しますが、すでに数時間入れているため、完全にランダムに見えます.
私の問題は、次のいずれでも解決されないようです。
localhost で WAMPserver 2.0 を使用すると、ページのロード間で PHP SESSION データが失われる - php.ini を確認したところ、これらのコード行が含まれていました (別の tmp ファイルではありますが)。$_SESSION 変数をテストする選択された回答のサンプルコードは魅力のように機能します。私のコードはそうではありません。
PHP セッションが保存されていない
Mysession_save_path()
は書き込み可能です。
ページ間で PHP セッションが保存 されない PHP セッション データが保存され ない サーバーではなく、localhost にいます。
session_start();
session_start();
最初にあるページでのみ参照されるテンプレートを除いて、すべてのページにあります(session_start();
テンプレートにある場合、セッションがすでに開始されている方法に関するエラーが発生するため)。
更新:パターンがあるかもしれません。文字を含むユーザー名を持つユーザーの情報は保存されません。これらのユーザーはすべて、ユーザー名が「1」や「9」ではなく「ダミー」や「eport」などの単語であるため、長いユーザー名を持っています。1 と 9 では機能しますが、dummy と eport では機能しません。これらはすべて常に数字である ID によって識別されるため、これは意味がありませんが、これはパターンのように見えます。
更新 (userprofile.php からの関連コード):
<?php
$userID = $_SESSION['userID'];
var_dump($_SESSION['userID']);
//get.
$totalquery = mysqli_query($connection, "SELECT * FROM users WHERE ID='$userID'");
$arrayquery = mysqli_fetch_assoc($totalquery);
$username = $arrayquery['username'];
//Firstname
$firstname = $arrayquery['firstname'];
echo 'Welcome ' . $firstname;
//Lastname
?>