대부분의 포럼에서는 로그인 시 일주일 동안 저장, 한 달 동안 저장 등 만료 시간을 선택할 수 있습니다. 이때 쿠키를 통해 로그인 만료시간을 설정할 수 있습니다. 세션 만료 시간을 설정하는 방법에는 여러 가지가 있습니다.
1. 클라이언트는 쿠키를 금지하지 않습니다.
(1) session_set_cookie_params()세션 만료 시간 설정 이 함수는 세션 만료 시간을 설정하는 쿠키와 결합됩니다. 1분 후에 세션이 만료되도록 하려면 코드 예제는 다음과 같습니다.
<?php $time = 1*60; //设置session失效时间 session_set_cookie_params($time); // 使用函数 session_start(); //初始化 session $_SESSION["username"] = 'tom'; ?>
참고: session_set_cookie_params()는 session_start()보다 먼저 호출되어야 합니다.
참고: 이 기능은 권장되지 않으며 일부 브라우저에서는 문제를 일으킬 수 있습니다. 따라서 만료 시간은 일반적으로 수동으로 설정됩니다.
(2) setcookie() 함수를 사용하여 세션 만료 시간을 설정합니다. 세션이 1분 후에 만료되도록 하려면 코드 예는 다음과 같습니다.
<?php session_start(); // session失效时间 $time = 1*60; // 使用 setcookie 手动设置 session失效时间 setcookie(session_name(),session_id(),time()+$time.'/'); $_SESSION["username"] = 'tom'; ?>
참고: 위 예제 코드의 setcookie() 함수에서 session_name은 세션 이름이고 session_id는 클라이언트 사용자의 ID입니다. session_id는 무작위로 생성된 고유 이름이므로 세션은 비교적 안전합니다. 만료 시간은 쿠키와 동일합니다. 마지막 매개 변수는 선택 사항이며 쿠키가 배치되는 경로입니다.
2. 클라이언트에서 쿠키 비활성화
클라이언트에서 쿠키를 비활성화하면 세션 페이지 간 전송이 무효화됩니다. 클라이언트 대형 슈퍼마켓 체인을 상상해 보십시오. 슈퍼마켓 중 한 곳에서 회원 카드를 신청했지만 슈퍼마켓 간 인터넷 연결이 없는 경우 해당 슈퍼마켓에서만 회원 카드를 사용할 수 있습니다. 이 문제를 해결하는 방법에는 여러 가지가 있습니다.
(1) 로그인하기 전에 쿠키를 활성화해야 함을 사용자에게 상기시켜 주십시오. 이는 많은 포럼의 관행입니다.
(2) php.ini 파일에서 session.use_trans_sid =1을 설정하거나, 컴파일 시 -enable-trans-sid 옵션을 켜서 PHP가 자동으로 페이지 간에 session_id를 전달할 수 있도록 합니다.
(3) 숨겨진 형식으로 GET 메소드를 통해 session_id를 전달합니다.
(4) 파일이나 데이터베이스를 사용하여 session_id를 저장하고, 페이지 간 전송 중에 수동으로 호출합니다.
위의 두 번째 방법은 서버에서 php.ini 파일을 사용자가 수정할 수 없기 때문에 자세히 소개하지 않습니다. 세 번째 방법에서는 쿠키를 사용하여 만료 시간을 설정할 수 없지만 로그인 상태는 변경되지 않습니다. 네 번째이자 가장 중요한 것은 기업 수준의 웹사이트를 개발할 때 서버 속도를 저하시키는
세션 파일을 발견하는 경우 사용할 수 있습니다. 여기서는 GET 메소드를 이용한 세 번째 전송 방법을 소개합니다. 샘플 코드는 다음과 같습니다. 페이지 헤더를 수신하는 코드:
<?php $session_name = session_name(); //取得 session 名称 $session_id = $_GET[$session_name]; // 取得 session_id GET方式 session_id($session_id); // 关键步骤 session_start(); $_SESSION['admin'] = 'soft'; ?>
설명: 페이지를 요청한 후 세션이 생성됩니다. . session_id. 이때 쿠키가 비활성화되면 session_id를 전달할 수 없습니다. 다음 페이지를 요청할 때 session_id가 다시 생성되므로 페이지 간 세션 전달이 실패하게 됩니다.
위 내용은 PHP의 세션 시간 설정에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!