0

私はセッションを使用していくつかのデータをphp Webサイトに保存していますが、セッションでデータを取得したときのページが何度か変更されたり、同じ時間になったりします。私はたくさん検索し、いくつかの答えを見つけました

セッション ID 値の変更

" グローバルを登録している場合、コードで変数 $id を使用すると、そのような動作が見られる場合があります。テストとして、次のことを試してください。

<?php
session_start();
$_SESSION['testing'] = 'Foo';
$testing = 'bar';
die($_SESSION['testing']);
?> 

"

PHPファイルを検索しましたが、セッション変数のような同様の変数が見つからないので、何が問題なのですか?? PHP セッションの詳細を教えてください。可能であれば、良い本を提案してください。

編集:

register_global off の問題を皆さんが言っているように php.ini を設定し、 phpinfo();関数を使用して ckeck をチェックし、register_globaloff であることを確認しました。しかし、しばらくして私は自分のIDでログインし、mypage menu.phpでアクセスした後、変更されたセッションがIDを記録し、別のアカウントに自動的にログインしました。私を助けてください

4

3 に答える 3

1

Disabling Register_Globals by adding the following line in your php.ini file may fix this problem.

register_globals = Off

If you are using a Shared Web Hosting service, follow:

  • If you have access to /cgi-bin folder then create your custom php.ini file inside it.
  • And if you dont have access, then create your custom php.ini file in root folder.

And then add above mentioned line in php.ini file.

Adding the following line of code in your .htaccess file also fix your problem.

php_flag register_globals off

于 2012-08-12T14:30:15.720 に答える
0

最近、 register_globals が問題になることはほとんどありません。おそらく、a) 実際のセッション データが保存されている場所。b) 1 つの要求から次の要求に「セッション ID」がどのように送信されるか。

最初に確認するのはsession_save_path()です。これは、セッション変数に入れたデータをディスク上のどこに格納するかを PHP に指示します。

もう 1 つの部分はもう少し複雑ですが、新しいセッションを作成するのではなく、同じセッションをロードすることを PHP に知らせる Cookie の設定方法に関するものです。この Cookie の有効期間や、適用されるスコープ (ドメイン / サブドメイン / URL パス) などを確認する必要がある場合があります。session_set_cookie_params()を見て、通常は PHP マニュアルのそのセクションを読んで、セッションがどのように機能するかを理解してください。

于 2012-08-12T15:21:24.397 に答える
0

レジスタ グローバルを使用するべきではないため、問題になることはありません。

次の行を .htaccess に追加して、登録グローバルを実行している場合に無効にします。

php_flag register_globals off

実行時に ini_set() を使用することはできないため、前の回答のように htaccess または php.ini を使用する必要があります。

于 2012-08-12T14:34:11.017 に答える