0

このコードを含むファイルがあります

 session_start();
 session_register("name");
 $name = "test";

Chrome で Cookie を見たとき、これはルート フォルダにあると表示されます。

ここでの私の質問は、このセッションがローカル ホストの xampp のどこに保存され、私のセッションがパパ共有ホスティングのどこに保存されるかです。

私が session_start(); を持っている場合 $_SESSION['id'] ="何らかの値"; 、私はすべてのページでこのいくつかの値を使用できます。これは、セッションについて読んで理解したものです。間違っている場合は修正してください。

共有ホスティングでこれを使用しましたが、別のページでセッション変数を呼び出すと空です。ホスティングにセッション保存書き込み権限があるかどうか、または空になる理由がわかりません。

4

6 に答える 6

1

セッションの保存には 2 つの設定があります。

  1. 共有メモリ内。
  2. ファイル内。

ファイルの場合はセッション データにアクセスできますが、メモリの場合はアクセスできません。

セッションデータにアクセスするには、この関数を使用してフォルダーパスを取得しますsession_save_path();

:- ホストは、これらのタイプのフォルダを保護して、直接アクセスできないようにします

セッション設定がフォルダーまたはメモリにあるかどうかを確認するもう1つのことは、phpinfo();

ファイルが選択されている場合は、同じ関数でパスを明示的に変更できますチェックしてsession_save_path();ください: ここにチェックを入れてください

于 2012-04-16T12:50:19.200 に答える
0

Go Daddy 4GH ホスティングでは、セッションはデフォルトで /html ディレクトリと同じレベルの /tmp ディレクトリに保存されます。これらの手順を使用して、これへの完全なパスを見つけることができます。

絶対ホスティング パスを見つけるには

1. Log in to your Account Manager.
2. Click Web Hosting.
3. Next to the hosting account you want to use, click Launch.

[サーバー] セクションに、ホスティング アカウントの絶対ホスティング パスが表示されます。

ここにセッションを保存したくない場合は、php.ini ファイルで変更するか、スクリプトで session_save_path() 関数を使用して変更できます。

XAMPP スタックの詳細については、こちらを確認してください

于 2012-04-20T22:50:14.133 に答える
0

セッションはサーバーに保存されますが、セッション ID は長いランダム ID としてユーザーのコンピューターに保存されます。ユーザーがセッションを編集する方法はありませんが、セッション ID を盗んで、権限のないアカウントで使用できる可能性があります。

php.ini で register_globals を 1 に設定している可能性があります。悪意を持って使用される可能性があるため、これをオフにすることを強くお勧めしますが、これにより、$name を設定すると $_SESSION['name'] も設定される可能性がある理由が説明されます。基本的に、すべての変数をその時点から設定できます。

于 2012-04-16T12:41:30.220 に答える
0

新しい値を次のように保存する必要があります

$_SESSION['name'] = "test";

$_SESSION['name']等しくない$name

したがって、保存$name = "test";されないため、値を保存します$_SESSION['name']

session_start(); を呼び出す必要があります。すべてのページで、あるページから必要なページへの伝播で保存されたセッションを取得します。またはphp.iniファイルでon/1に設定します(推奨されません)

変数ストレージの場所は、$_SESSIONPHP の " " 構成によって決まりsession.save-pathます。通常、これは/tmpLinux/Unix システムでは " " です。phpinfo() 関数を使用して特定の設定を表示するには、ドメインの DocumentRoot にこのコンテンツを含むファイルを作成して 100% 確実でない場合:

<? phpinfo() ?>

詳細については、以下のリンクを確認してください

session.save_path

于 2012-04-16T12:41:39.127 に答える
0

セッションは、たとえば 1234 という名前のファイルとしてサーバーに保存されます。これはテキスト ファイルです。これは、php.ini で構成可能なパスに保存されます。

クライアント側には Cookie が保存されます。クッキーのコンテンツは、セッション ファイル 1234 の名前と同じです。各要求のブラウザはクッキーのコンテンツを送信するため、サーバーはクッキーのコンテンツを読み取り、対応するセッションが存在するかどうかを確認します。セッションの使用に関する問題については、さらにコードを提供してください。

于 2012-04-16T12:45:17.470 に答える
0

セッションを使用するには、次のことを行う必要があります。

session_start(); 

そして、次のことができます:

$_SESSION['id'] ="some value";

そしてそれを使用します:

$id = $_SESSION['id'];

session_registerは非推奨の関数です。使用しないでください。とにかく、間違った順序で使用していました (値を使用して最後に行うべきことは、値を登録することです。null 値の$name変数を登録していました)。

于 2012-04-16T12:47:39.127 に答える