함수 이름 : SessionHandler :: 쓰기 ()
해당 버전 : PHP 5> = 5.4.0, PHP 7
함수 설명 : SessionHandler :: Write () 메소드는 세션 데이터를 작성하는 데 사용됩니다. 이 메소드는 세션 핸들러 클래스에서 구현되며 세션 데이터를 영구 스토리지에 저장하는 데 사용됩니다.
구문 : SessionHandler :: 쓰기 (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 및 세션 데이터를 세션 테이블에 삽입합니다.
그런 다음 Session_SET_SAVE_HANDLER () 함수를 통해 사용자 정의 핸들러를 현재 세션의 핸들러로 설정합니다. 다음으로 세션을 시작하고 세션 데이터를 수정합니다. 마지막으로, session_write_close () 메소드를 호출하여 쓰기 메소드가 수동으로 호출되며 세션 데이터는 영구 스토리지에 기록됩니다.
사용자 정의 세션 핸들러를 사용하려면 Session_Start () 이전에 Session_SET_SAVE_HANDLER ()를 호출해야합니다. 또한 사용자 정의 세션 핸들러를 사용하는 경우 스크립트가 끝나기 전에 세션 _write_close () 메소드를 호출하여 세션 데이터가 영구 스토리지에 기록되도록하십시오.