この記事の内容は、PHP でのペイント コントロールを共有することです。必要な友達はそれを参照してください。
HTTP プロトコルは、WEB サーバーとブラウザーの間で相互通信するためのプロトコルです。つまり、各 HTTP リクエストは互いに独立しています。したがって、HTTP プロトコルには、2 つのトランザクション間の状態を維持するためのメカニズムが組み込まれていません。たとえば、ユーザーがあるページをリクエストし、次に別のページをリクエストした場合、HTTP は 2 つのリクエストが同じユーザーからのものであるかどうかを知ることができません。
Web サイトでは、変数を追跡する必要があることがよくあります。変数を追跡することで、複数のリクエスト間の接続を確立し、承認とユーザー ID に基づいてさまざまなコンテンツやページを表示できます。これがセッション制御技術です。
一般的に使用されるセッション制御テクノロジには、Cookie
と Session
が含まれます。簡単に言えば、Cookie はクライアント側で情報を記録することによってユーザーの ID を決定し、Session はサーバー側で情報を記録することによってユーザーの ID を決定します。 Cookie
和 Session
。简单地说,Cookie 是通过在客户端中记录信息而确定用户身份;Session 是通过在服务器端记录信息而确定用户身份。
Cookie 是一个很小的文本文件,包含在 HTTP 请求报文中在 Web 服务器和浏览器之间传递。Cookie 的工作原理如下:
服务器通过在 HTTP 响应报文中设置一个 Set-Cookie
字段,并把 Cookie 数据放在 Set-Cookie
字段中随着 HTTP 报文传给浏览器;
浏览器在接收到 HTTP 响应报文后,检查到 Set-Cookie
字段有值,会在本地创建一个 Cookie 文件来保存数据;
当浏览器再次向该服务器发送请求时,浏览器会先搜索本地保存的 Cookie 文件,如果在 Cookie 文件中有任何与正在连接的 URL 相关的 Cookie,就在 HTTP 请求报文中设置一个 Cookie 字段,并把 Cookie 文件中的数据添加到该字段中,最后把携带 Cookie 字段的 HTTP 请求报文发送给服务器。
Cookie 可以用来保存用户名、密码、个性化设置等一些简单的信息,以下是 Cookie 的使用说明:
<?php setcookie("Cookie", "cookievalue", time()+3600);
必须在 HTML 文件的内容输出之前调用 setcookie()
<?php echo $_COOKIE["Cookie"];
<?php #方法一:将值设为空 setcookie("Cookie", null); #方法二:将过期时间设为过去时间 setcookie("Cookie", "value" , time());
Session 是在服务器端保持用户会话数据的一种方法,其工作原理如下:
当浏览器第一次访问 PHP 脚本时,seesion_start()
函数会创建一个唯一的 Session ID(每个客户端都有一个唯一的标识),并自动通过 HTTP 的响应头,将这个 Session ID 保存到客户端 Cookie 中。同时,也在服务器端创建一个以 Session ID 命名的文件,用于保存这个用户的会话信息;
当同一个用户再次访问这个网站时,会自动通过 HTTP 的请求头将 Cookie 中保存的 Seesion ID 再携带过来;
服务器 PHP 脚本接受到客户端请求,这时 session_start()
函数就不会再去分配一个新的 Session ID,而是在服务器的硬盘中去寻找和这个 Session ID 同名的 Session 文件,将这之前为这个用户保存的会话信息读出。
首先,创建 Session 唯一标识的方法有两种:通过 Cookie 或者 GET 方式。PHP 在默认情况下使用 Session 会建立一个名叫 PHPSESSID
的 Cookie(可以通过 php.ini 修改 session.name 的值),如果客户端禁用cookie,可以指定通过 GET 方式把 Session ID 传到服务器(修改 php.ini 中 session.use_trans_sid
等参数)。其次,Session 是以文件的形式保存的。php.ini 中有个配置项 --session.save_path= ""
,这个里面填写的路径,将会保存所有 Session 文件。Session 文件的命名格式是:sess_[PHPSESSID的值]
Set-Cookie
フィールドを設定し、Cookie を配置します。 data Set-Cookie
フィールドでは、HTTP メッセージとともにブラウザに送信されます HTTP 応答メッセージを受信した後、ブラウザは
を確認します。 Set- Cookie
フィールドに値がある場合、データを保存するために Cookie ファイルがローカルに作成されます cityID|i:0;cityName|s:3:"all";fanwe_lang|s:5:"zh-cn";fanwe_currency|a:4:{s:2:"id";s:1:"1";s:6:"name_1";s:9:"人民币";s:4:"unit";s:3:"¥";s:5:"radio";s:6:"1.0000";}_fanwe_hash__|s:32:"77c18770c6cb5d89444c407aaa3e8477";
//启动 session session_start(); //注册session变量,赋值为一个用户的名称 $_SESSION["username"] = "jochen"; //注册session变量,赋值为一个用户的ID $_SESSION["uid"] = 1;
<?php session_start(); echo $_SESSION["username"]; # # jochen echo $_SESSION["uid"]; # 1
seesion_start()
関数によって一意のセッション ID (各クライアントには一意の ID があります) が作成され、自動的に渡されます。 HTTP 応答ヘッダーに含めるには、このセッション ID をクライアントの Cookie に保存します。同時に、ユーザーのセッション情報を保存するために、サーバー側でセッション ID が付けられたファイルも作成されます。🎜session_start()
関数は検索の代わりに新しいセッション ID を割り当てません。サーバーのハードディスク上にあるセッション ID と同じ名前のセッション ファイルを作成すると、このユーザー用に以前に保存されたセッション情報が読み出されます。 🎜PHPSESSID
という名前の Cookie を作成します (session.name の値は php.ini を通じて変更できます)。クライアントが Cookie を無効にしている場合は、GET を通じてセッション ID を指定できます。 . それをサーバーに渡します (php.ini の session.use_trans_sid
などのパラメーターを変更します)。次に、セッションはファイルの形式で保存されます。 php.ini に設定項目 --session.save_path= ""
があり、パスを入力するとすべてのセッション ファイルが保存されます。セッション ファイルの命名形式は、sess_[PHPSESSID の値]
です。各ファイルにはセッションのデータが保存されます。最後に、セッション ファイルに保存されたデータは次のようにシリアル化されます: 🎜<?php session_start(); unset($_SESSION["username"]); unset($_SESSION["uid"]);
以上がPHP でのセッション制御の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。