" 내용으로 PHP 파일을 작성한 다음 이를 서버에 전달하여 사용자 ID를 나타내는 서버의 매개변수 구성을 확인합니다. 식별된 세션입니다. 마지막으로 세션 이름을 Havi로 변경하고 세션이 출력됩니다."> PHP 세션 실패 및 전달 불가에 대한 솔루션-PHP 문제-php.cn

PHP 세션 실패 및 전달 불가에 대한 솔루션

卡哇伊
풀어 주다: 2023-03-02 06:24:01
원래의
3268명이 탐색했습니다.

PHP 세션 실패 및 전달되지 않는 해결 방법: 먼저 "" 콘텐츠로 PHP 파일을 작성한 다음 이를 서버에 전달하여 사용자 ID를 나타내는 서버의 매개변수 구성을 확인합니다. 식별된 세션입니다. 마지막으로 Havi에 세션 이름을 할당하고 세션을 출력합니다.

PHP 세션 실패 및 전달 불가에 대한 솔루션

PHP에서는 세션을 다음 페이지로 전달할 수 없습니다. 일반적으로 두 가지 상황이 있습니다.

먼저 PHP 파일을 작성해 보겠습니다., 서버에 전달하여 서버 매개변수 구성을 확인합니다.,传到服务器去看看服务器的参数配置。

转到session部分,看到session.use_trans_sid参数被设为了0。

这 个参数指定了是否启用透明SID支持,即session是否随着URL传递。我个人的理解是,一旦这个参数被设为0,那么每个URL都会启一个session。这样后面页面就无法追踪得到前面一个页面的session,也就是我们所说的无法传递。两个页面在服务器端生成了两个session文 件,且无关联。

所以一个办法是在配置文件php.ini里把session.use_trans_sid

session섹션으로 이동하여session.use_trans_sid매개변수가 0으로 설정되어 있는지 확인하세요.

이 매개변수는 투명한 SID 지원을 활성화할지 여부, 즉세션이 URL과 함께 전달되는지 여부를 지정합니다. 개인적으로 이해하기로는 이 매개변수가 0으로 설정되면 각 URL이세션을 시작한다는 것입니다. 이러한 방식으로 후속 페이지는 이전 페이지의 세션을 추적할 수 없으며, 이를 전달할 수 없다고 합니다. 두 페이지는 서버측에 두 개의세션파일을 생성하며 서로 관련이 없습니다.

한 가지 방법은php.ini구성 파일에서session.use_trans_sid값을 1로 변경하는 것입니다.

물론 모든 사람이 PHP 구성을 변경할 권한이 있는 것은 아니라는 것을 알고 있습니다. 그렇다면 다른 간접적인 솔루션에는 어떤 것이 있습니까? 두 가지 예를 들어 설명하겠습니다.

파일 1 test1.php

”.$_SESSION['name'].””; ?>
로그인 후 복사

파일 2: test2.php

로그인 후 복사

세션을 열려면 모든 페이지를 써야 합니다. 그렇지 않으면 여전히 제대로 작동하지 않습니다

장소그래서 핵심은session_start();앞에session_id(SID);를 추가하여 페이지가 변환될 때 서버가 사용자의 < 서버의폴더에 있는session에 저장된 code>세션을 사용하면 전송 문제가 해결됩니다.session_start();前加上session_id(SID);,这样页面转换时,服务器使用的是用户保存在服务器session文件夹里的session,解决了传递的问题。

不过有同鞋会反映说,这样一来,多个用户的session写在一个SID里了,那Session的价值就发挥不出来了。所以还有一招来解决此问题,不用加session_id(SID);前提是你对服务器的php.ini有配置的权限:

output_buffering改成ON,道理就不表了。

第二个可能的原因是对服务器保存session的文件夹没有读取权限,还是回到phpinfo.php中,查看session

그러나 일부 동료들은 여러 사용자의세션이 하나의 SID에 작성되면 세션의 가치가 완전히 실현되지 않을 것이라고 보고할 것입니다. 따라서 이 문제를 해결하는 다른 방법이 있습니다.session_id(SID);를 추가할 필요는 없습니다. 전제는 서버의 php.ini에 대한 구성 권한이 있다는 것입니다.output_bufferingON으로 변경하면 더 이상 진실이 표현되지 않습니다. 두 번째 가능한 이유는 서버가 세션을 저장하는 폴더에 대한 읽기 권한이 없거나,phpinfo.php로 돌아가서, View < code >session저장된 주소:

session.save_path: var/tmp

所以就是检查下var/tmp文件夹是否可写。

写一个文件:test3.php来测试一下:

로그인 후 복사

如果返回bool(false),证明文件夹写权限被限制了,那就换个文件夹咯,在你编写的网页里加入:

//设置当前目录下session子文件夹为session保存路径。$sessSavePath = dirname(__FILE__).’/session/’; //如果新路径可读可写(可通过FTP上变更文件夹属性为777实现),则让该路径生效。if(is_writeable($sessSavePath) && is_readable($sessSavePath)){session_save_path($sessSavePath);}
로그인 후 복사

위 내용은 PHP 세션 실패 및 전달 불가에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!