저는 PHP 세션에 익숙하지 않아서 PHP 페이지에서 다른 페이지로 데이터를 보내려고합니다. 첫 번째 페이지에는 다음 코드가 있습니다.하나의 PHP 페이지에서 다른 페이지로의 PHP 세션
session_start();
$statements="<p>{$actorName} {$verbDisplay} {$objectName}</p>";
$_SESSION['regName'] = $statements;
if(isset($_SESSION['regName']))
{
echo $_SESSION['regName'];
header("Location: http://localhost/moodle/blocks/tincanlrs/downloadlrs.php");
}
여기서 isset 함수는 true가 반환되며 모든 것이 정상입니다. 두 번째 페이지에서 나는이 코드를 가지고 : 나는 lrs_statements.txt 열 때 다음
session_start();
$statements = $_GET['regName'];
header("Content-Type: plain/text");
header("Content-Disposition: Attachment; filename=lrs_statements.txt");
header("Pragma: no-cache");
echo $statements;
if (isset($_SESSION['regName']))
{
echo "session";
}
else
{
echo "no session";
}
을 나는이 :
공지 사항 : 정의되지 않은 인덱스 : C에서 regName : \ XAMPP \ htdocs를 \ 무 블록 \ \ tincanlrs \ downloadlrs.php 온라인
세션 없음.
왜 ?? 그리고 내가 뭔가 잘못하고있는거야 ?? 미리 감사드립니다.
[편집] 나는 session_start를 테스트했고 세션이 시작되었지만 session_id()를 테스트했을 때 동일한 ID가 아닌 다른 ID를 가졌습니다. 내가 두 번째 페이지의 상단에 추가 할 때 는 :
session_start();
var_dump($_SESSION);exit();
나는이 출력이 : 배열 (0) {} 두 번째 페이지에 접속 $ _SESSION에서이 같은 세션에서
당신은이 $ statements = $ _GET [ 'regName']; 대신에 echo $ _SESSION [ 'regName']; –
왜 두 번째 페이지에서 $ _GET에 도달 했습니까? $ statements = $ _GET [ 'regName']; – mayy00
기본 디버깅 :'session_start()'의 반환 값을 확인하십시오. 세션을 시작할 수 없으면 부울 false가됩니다.두 스크립트에서'session_id()'의 값을 확인하십시오. 다른 값을 얻으면 둘 이상의 다른 세션을 가지며 그 중 하나에 저장된 값을 "잃어 버리는"것입니다. –