ホームページ >バックエンド開発 >PHPチュートリアル >PHPでSessionセッションを開始する方法

PHPでSessionセッションを開始する方法

伊谢尔伦
伊谢尔伦オリジナル
2017-04-26 10:55:039315ブラウズ

PHPでSessionセッションを開始する方法

セッション設定はCookieとは異なり、最初に開始する必要があります。PHPでは、PHPコアプログラムがセッションに関連する組み込み環境変数をメモリにプリロードできるように、session_start()関数を呼び出す必要があります。 。

session_start() 関数を使用してセッションを開始します。構文形式は次のとおりです。

session_start(void);   // 创建  Session,开始一个会话,进行 Session 初始化

session_start()この関数にはパラメータがなく、戻り値は TURE です。この関数には 2 つの主な目的があります。セッションを開始することと、既存のセッションを返すことです。 session_start()这个函数没有参数,且返回值均为 TURE。该函数有两个主要的作用,仪式开始一个会话,而是返回已经存在的会话。

当第一次访问网站时,session_start()函数就会创建一个唯一的 Session ID ,并自动通过 HTTP 的响应头将这个  Session ID 保存到客户端 Cookie 中。同时,页在服务器端创建一个以这个 Session ID 命名的文件,用于保存这个用户的会话信息。

当同一个用户再次访问这个网站时,也会自动通过 HTTP 的请求头将客户端 Cookie 中保存的 Session ID给带过来,这时 session_start()函数就不会再去分配一个新的 Session ID,而是在服务器的硬盘中去寻找和这个 Session ID 同名的Session文件,将之前为这个用户保存的会话信息读出,在当前脚本中应用,达到跟踪这个用户的目的。

所以在会话期间,同一个用户在访问服务器上任何一个页面时,都是使用同一个 Session ID

 注意: 通常,session_start()函数在页面开始位置调用,然后会话变量被登录到数据 $_SESSION

 说明:如果使用基于 Cookie 的  Session,在使用该函数开启 Session之前,不能有任何输出的内容。因为基于  Cookie 的 Session 实在开启的时候,调用 session_start()函数生成唯一的一个  Session ID,需要保存在客户端计算机的 Cookie 中,所以使用  session_start()函数之前浏览器不能有任何输出,即使是空格和空行也不行,否则会产生输出字符串产生的错误。

如果不想在每个脚本中都使用 session_start()函数 来开启 Session,可以再 php.ini 里面设置 session.auto_start = 1,就不需要每次使用 Session 之前都要调用 session_start()函数。但启用这个选项也饿石油一些限制的,就是不能将对象放入 Session 中,因为类定义必须在启动 Session 之前加载。 所以一般不建议使用session.auto_start

初めて Web サイトにアクセスすると、session_start() 関数によって一意のセッション ID が作成され、このセッション ID が HTTP 応答ヘッダーを通じてクライアント Cookie に自動的に保存されます。同時に、このページはサーバー側にこのセッション ID の名前のファイルを作成し、ユーザーのセッション情報を保存します。

同じユーザーがこの Web サイトに再度アクセスすると、クライアント Cookie に保存されているセッション ID が HTTP リクエスト ヘッダーを通じて自動的に引き継がれ、session_start() 関数は使用されなくなります。新しいセッション ID を割り当て、サーバーのハードディスク上でセッション ID と同じ名前のセッション ファイルを探し、このユーザー用に以前に保存されたセッション情報を読み出し、それを現在のスクリプトに適用して、この追跡の目的を達成します。ユーザー。 したがって、セッション中に、同じユーザーがサーバー上のどのページにアクセスする場合でも、同じ セッション ID を使用します。 : 通常、session_start() 関数はページの先頭で呼び出され、その後セッション変数がデータ $_SESSION に記録されます。

: Cookie ベースのセッションを使用する場合、この関数を使用してセッションを開く前に出力コンテンツを作成することはできません。 Cookie ベースのセッションが実際に開かれるとき、 session_start() 関数が呼び出され、一意の セッション ID が生成されます。これはクライアントの Cookie に保存する必要があります。したがって、ブラウザの前の session_start( ) 関数はスペースや空行も含めて出力を行うことができません。それ以外の場合は出力が生成されます 文字列 🎜 によってエラーが生成されました。 🎜🎜すべてのスクリプトでセッションを開くために session_start() 関数を使用したくない場合は、php.ini で session.auto_start = 1 を設定できます。そのため、Session を初めて使用する前に、 session_start() 関数を呼び出す必要はありません。ただし、このオプションを有効にするといくつかの制限もあります。つまり、オブジェクトをセッションに配置することはできません。セッションを開始する前に定義をロードする必要があります。 したがって、一般に、session.auto_start を使用してセッションを開くことは推奨されません。 🎜🎜🎜🎜関連トピックの推奨事項🎜: 🎜phpセッション🎜 (写真、テキスト、ビデオ、ケースを含む)🎜🎜

以上がPHPでSessionセッションを開始する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。