에코를 시도하는 동일한 페이지에서 세션 변수를 지울 때 세션 변수가 비어 있다는 이상한 문제가 있습니다. 여기에 내가하려고하는 일의 빠른 유형 업이 있습니다.세션 변수가 동일한 페이지에서 지워지면 에코되지 않습니까?
이 예를 선택하십시오.
페이지 A :
$_SESSION['referer'] = 'abc123';
header('Location: http://www.test.com/pageb.php');
exit();
페이지 B : 이제
function get_referer() {
$referer = '';
if (isset($_SESSION['referer'])) {
$referer = $_SESSION['referer'];
$_SESSION['referer'] = null;
unset($_SESSION['referer']);
}
echo $referer;
}
나는 기능과 페이지 B에 이렇게 ...
나는 그것을 실행하는 경우 모두 작동합니다 :
get_referer();
입력의 value 속성에 echo를 실행하면 (호출 후 지워지므로 페이지에서 한 번만 함수를 실행해야합니다), 소스를 볼 때 아무것도 표시하지 않습니다 .
<input type="hidden" name="referer" value="<?php get_referer(); ?>" />
그러나 충분히 재미있게 입력 유형을 "text"로 설정하면 문제가 없습니다.
<input type="text" name="referer" value="<?php get_referer(); ?>" />
문제는
재현 할 수 없습니다. 제발, 우리에게 전체 소스 코드를 제공하십시오. 두 페이지 모두에서'session_start()'를 기억하고 있다고 가정합니까? – kba
문제를 정확히 지적하고 시연 해주는 좋은 직장입니다. – octern
@Kristian Antonsen, 나는 나의 모범을 보았고 그것이 원래의 맥락에서 작동한다는 것을 알아 차렸다. 문제를 더 자세히 조사하기 위해 질문을 업데이트했습니다. – Fase