>백엔드 개발 >PHP 문제 >PHP 페이지 간 전달이 실패하면 어떻게 해야 합니까?

PHP 페이지 간 전달이 실패하면 어떻게 해야 합니까?

醉折花枝作酒筹
醉折花枝作酒筹앞으로
2021-06-22 16:44:061926검색

이 글에서는 PHP 페이지 간 전송 실패 문제를 해결하는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

PHP 페이지 간 전달이 실패하면 어떻게 해야 합니까?

이 기사에서는 주로 PHP SESSION 페이지 간 전송 실패에 대한 해결책을 샘플 코드를 통해 자세히 소개합니다. 학습이나 작업이 필요한 모든 사람에게 확실한 참고 학습 가치가 있습니다. 참고하세요

오늘은 이전 세션에 대한 탐색이라고 볼 수 있는 사용자 로그인 판단을 구현하기 위해 세션을 사용하고자 합니다. 정보를 확인한 후 세션의 작동 메커니즘은 다음과 같습니다.

Session은 서버 측의 세션 메커니즘 클라이언트가 서버에 세션 생성을 요청하면 서버는 먼저 요청에 고유한 sessionID가 포함되어 있는지 확인합니다. 그렇다면 이는 서버가 이미 사용자에 대한 세션을 생성했음을 의미합니다. 사용자가 사용할 세션 ID에 따라 사용자의 세션을 검색하므로, 세션 ID가 없는 경우 서버는 해당 사용자에 대한 고유한 세션 ID로 새 세션을 생성합니다.

생성이 완료되면 세션 ID가 서버에 의해 클라이언트에 반환되고 클라이언트에 로컬로 저장됩니다.

일반적으로 세션 ID를 저장하는 메커니즘은 쿠키이지만 쿠키는 인위적으로 금지될 수 있으므로 쿠키를 금지한 후에도 일반적으로 URL 재작성을 통해 세션을 통해 세션을 계속 수행할 수 있는지 확인해야 합니다.

표현은 www .fckfs.com ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764이고, 다른 하나는 http://..... /xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcE 형식의 쿼리 문자열로 URL에 추가됩니다. bzWoWiBYEn LerjQ99zWpBng!-145788764 이 둘 방법은 사용자에게 매우 유용하다고 합니다. 그러나 서버가 파싱하는 동안 이를 처리하는 방법이 다릅니다. 첫 번째 방법을 사용하는 것도 일반 프로그램 매개변수와 세션 ID 정보를 구별하는 데 도움이 됩니다.

전체 상호 작용 동안 상태를 유지하려면 클라이언트가 요청할 수 있는 각 경로 끝에 이 세션 ID를 포함해야 합니다.

세션 무효화에 대한 또 다른 오해:

세션 메커니즘에 대해 이야기할 때 "브라우저를 닫으면 세션이 사라집니다."라는 오해를 자주 듣습니다. 실제로 회원카드의 예를 생각해 보면 고객이 매장에 적극적으로 카드 취소를 요청하지 않는 이상 매장에서는 결코 고객의 정보를 쉽게 삭제하지 않습니다.

프로그램이 서버에 세션 삭제를 알리지 않는 한, 프로그램은 일반적으로 사용자가 로그오프할 때 세션을 삭제하라는 명령을 보냅니다.

그러나 브라우저는 서버가 닫히기 전에 서버가 닫힐 것임을 적극적으로 알리지 않으므로 서버는 브라우저가 닫혔다는 사실을 알 기회가 없습니다. 이러한 착각이 일어나는 이유는 대부분의 세션 메커니즘이 세션 쿠키를 사용하여 저장하기 때문입니다. 세션 ID이며, 브라우저를 닫으면 이 세션 ID가 사라지며, 서버에 다시 연결하면 원래 세션을 찾을 수 없습니다.

서버에서 설정한 쿠키가 하드디스크에 저장되거나, 브라우저가 보낸 HTTP 요청 헤더를 어떤 방법으로 다시 써서 원래 세션 ID를 서버로 보내는 경우, 원본 세션을 찾을 수 있는 경우는 다음과 같습니다. 브라우저가 다시 열립니다.

브라우저를 닫아도 세션이 삭제되지 않기 때문에 서버는 클라이언트가 마지막으로 세션을 사용한 이후의 시간이 이 만료 시간을 초과하는 경우 서버에서 이를 고려할 수 있습니다. 클라이언트가 활동을 중지하면 저장 공간을 절약하기 위해 세션이 삭제됩니다.

그렇습니다. 세션 손실에 대한 해결책에 대해 이야기해 보겠습니다.

1. session_start()는 가능한 한 페이지 상단에 배치되어야 합니다.

2. php.ini에 구성되어 있지 않으므로 각 세션 전에 세션을 수동으로 열어야 합니다: session_start();

3 세션은 $_GET, $_POST, $_SERVER와 같은 PHP의 슈퍼 전역 변수이므로 반드시 설정해야 합니다. 사용될 때 대문자로 표시:

$_SESSION['username']=$username;

4. 페이지 간 전송 예: a.php 페이지는 $_SESSION['username']을 b.php:

a.php:

session_start();
$username=$_POST['username'];
$_SESSION['username']=$username;
?>

b.php:

session_start();
echo $_SESSION['username'];
?>

Recommended로 전송합니다. 학습: php 비디오 튜토리얼

위 내용은 PHP 페이지 간 전달이 실패하면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제