PHP 세션 실패 및 전달 불가에 대한 솔루션
PHP 세션 실패 및 전달되지 않는 해결 방법: 먼저 "<?=phpinfo()?>" 콘텐츠로 PHP 파일을 작성한 다음 이를 서버에 전달하여 사용자 ID를 나타내는 서버의 매개변수 구성을 확인합니다. 식별된 세션입니다. 마지막으로 Havi에 세션 이름을 할당하고 세션을 출력합니다.
PHP에서는 세션을 다음 페이지로 전달할 수 없습니다. 일반적으로 두 가지 상황이 있습니다.
먼저 PHP 파일을 작성해 보겠습니다. <?=phpinfo( ) ?>
, 서버에 전달하여 서버 매개변수 구성을 확인합니다. <?=phpinfo()?>
,传到服务器去看看服务器的参数配置。
转到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로 변경하는 것입니다.
파일 1 test1.php
<?php //表明是使用用户ID为标识的session session_id(SID); //启动session session_start(); //将session的name赋值为Havi $_SESSION['name']=”Havi”; //输出session,并设置超链接到第二页test2.php echo “<a href=\”test2.php\”>”.$_SESSION['name'].”</a>”; ?>
파일 2: test2.php
<?php 表明是使用用户ID为标识的session session_id(SID); //启动session session_start(); //输出test1.php中传递的session。 echo “This is “.$_SESSION['name']; ?>
세션을 열려면 모든 페이지를 써야 합니다. 그렇지 않으면 여전히 제대로 작동하지 않습니다
장소 그래서 핵심은 session_start();
앞에 session_id(SID)
;를 추가하여 페이지가 변환될 때 서버가 사용자의 < 서버의 폴더에 있는 session
에 저장된 code>세션을 사용하면 전송 문제가 해결됩니다. session_start();
前加上session_id(SID)
;,这样页面转换时,服务器使用的是用户保存在服务器session
文件夹里的session
,解决了传递的问题。
不过有同鞋会反映说,这样一来,多个用户的session
写在一个SID里了,那Session的价值就发挥不出来了。所以还有一招来解决此问题,不用加session_id(SID);
前提是你对服务器的php.ini有配置的权限:
<span style="font-family: 微软雅黑, "Microsoft YaHei"; font-size: 14px;">output_buffering</span><span style="font-family: 微软雅黑, "Microsoft YaHei"; font-size: 14px;"></span>
改成ON,道理就不表了。
第二个可能的原因是对服务器保存session
的文件夹没有读取权限,还是回到phpinfo.php
中,查看session
세션
이 하나의 SID에 작성되면 세션의 가치가 완전히 실현되지 않을 것이라고 보고할 것입니다. 따라서 이 문제를 해결하는 다른 방법이 있습니다. session_id(SID);
를 추가할 필요는 없습니다. 전제는 서버의 php.ini에 대한 구성 권한이 있다는 것입니다. 🎜🎜🎜🎜output_buffering🎜🎜🎜</code >🎜ON으로 변경하면 더 이상 진실이 표현되지 않습니다. 🎜🎜🎜🎜🎜두 번째 가능한 이유는 서버가 <code>세션
을 저장하는 폴더에 대한 읽기 권한이 없거나, phpinfo.php
로 돌아가서, 🎜View < code >session저장된 주소: 🎜🎜<span style="font-family: 微软雅黑, "Microsoft YaHei"; font-size: 14px;">session.save_path: var/tmp</span>
所以就是检查下var/tmp文件夹是否可写。
写一个文件:test3.php来测试一下:
<? echo var_dump(is_writeable(ini_get(“session.save_path”))); ?>
如果返回bool(false),证明文件夹写权限被限制了,那就换个文件夹咯,在你编写的网页里加入:
//设置当前目录下session子文件夹为session保存路径。$sessSavePath = dirname(__FILE__).’/session/’; //如果新路径可读可写(可通过FTP上变更文件夹属性为777实现),则让该路径生效。if(is_writeable($sessSavePath) && is_readable($sessSavePath)){session_save_path($sessSavePath);}
위 내용은 PHP 세션 실패 및 전달 불가에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.
