関数名:sessionhandler :: write()
該当するバージョン:PHP 5> = 5.4.0、PHP 7
関数の説明:SessionHandler :: write()メソッドは、セッションデータの書き込みに使用されます。この方法は、セッションハンドラークラスによって実装され、セッションデータを永続的なストレージに保存するために使用されます。
構文:sessionhandler :: write(string $ session_id、string $ session_data):bool
パラメーター:
返品値:
例:
<?php class MySessionHandler implements SessionHandlerInterface { // 实现SessionHandlerInterface 接口中的write 方法public function write($session_id, $session_data) { // 将会话数据保存到数据库或其他持久存储中// 假设这里使用数据库存储会话数据$db = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password'); $stmt = $db->prepare("INSERT INTO sessions (session_id, session_data) VALUES (:session_id, :session_data)"); $stmt->bindParam(':session_id', $session_id); $stmt->bindParam(':session_data', $session_data); return $stmt->execute(); } } // 设置自定义的会话处理程序$handler = new MySessionHandler(); session_set_save_handler($handler, true); // 启动会话session_start(); // 修改会话数据$_SESSION['username'] = 'john'; // 手动调用write 方法将会话数据写入持久存储session_write_close(); ?>
上記の例では、セッションハンドラークラスMySessionHandlerをカスタマイズし、SessionHandlerInterfaceインターフェイスに書き込みメソッドを実装します。書き込み方法では、PDOを使用してデータベースに接続し、セッションIDとセッションデータをセッションテーブルに挿入します。
次に、Cession_set_save_handler()関数を使用して、カスタムセッションハンドラーを現在のセッションのハンドラーに設定します。次に、セッションを開始し、セッションデータを変更します。最後に、session_write_close()メソッドを呼び出すことにより、書き込み方法が手動で呼び出され、セッションデータは永続的なストレージに書き込まれます。
カスタムセッションハンドラーを使用するには、session_start()の前にsession_set_save_handler()を呼び出す必要があることに注意してください。さらに、カスタムセッションハンドラーを使用する場合は、スクリプトが終了する前にsession_write_close()メソッドを呼び出して、セッションデータが永続的なストレージに書き込まれることを確認してください。