0

セッション変数を使用して、ユーザーが訪問したページと訪問日を追跡しようとしています。私のページでは、次のように変数を配列として割り当てました。

session_start();
$_SESSION['page']=array();
$_SESSION['page'][]=$_SERVER['REQUEST_URI'];
$_SESSION['time']=array();
$_SESSION['time'][]=date("m/d/y", time());

次のスクリプトを使用して、変数を出力しました。

<?php
session_start();
print_r($_SESSION['page']);
print_r($_SESSION['time']);
?>

いくつかのページにアクセスした後、上記のスクリプトは、すべてのページを表示するのではなく、最後にアクセスしたページのみを印刷しました。トラブルシューティングを手伝ってくれる人はいますか? ありがとうございました。

4

6 に答える 6

1

毎回配列を再宣言するため、配列を消去します。

$_SESSION['page']=array();

解決策: 配列が存在するかどうかを確認し、要素を追加します。

if (!isset($_SESSION['page'])){
  $_SESSION['page'] = array();
}
$_SESSION['page'][] = "New data" ;
于 2013-05-07T20:23:19.623 に答える
1

はい、次のようにする必要があります。

if (!isset($_SESSION['time'])) {
   $_SESSION['time'] = array();
}
if (!isset($_SESSION['page'])) {
   $_SESSION['page'] = array();
}
$_SESSION['time'][] = date("m/d/y", time());

そうしないと、キーを何度も上書きするだけ'time'です..

于 2013-05-07T20:23:43.903 に答える
0

新しいセッションを保存するたびに、それらを空の配列に再設定しています。

$_SESSION['page']=array(); // the $_SESSION['page'] now is empty
$_SESSION['page'][]=$_SERVER['REQUEST_URI'];
于 2013-05-07T20:23:44.780 に答える