문제
세션에 대한 간단한 테스트 PHP 스크립트를 작성하려고 합니다.기본적으로 카운터를 증가시킵니다(다음에 저장됨). $_SESSION
) 해당 페이지를 새로 고칠 때마다.작동하지만 페이지를 다시 로드하는 세션을 파괴하는 링크를 가지려고 합니다. ?destroy=1
매개변수.해당 매개변수가 설정되어 있는지 확인하고 그렇다면 세션을 삭제하기 위해 두 개의 if 문을 시도했지만 작동하지 않는 것 같습니다.
매개변수가 설정된 경우 메시지를 팝업하기 위해 본문에 if 문을 넣었지만 선택되지 않는 것 같습니다.
제가 뭔가 어리석은 짓을 하고 있다는 건 알지만(PHP 초보자입니다) 그게 뭔지 찾을 수 없는 것 같아요...
여기 코드를 참조하세요:
<?php
if ($_POST['destroy']) {
session_destroy();
} else {
session_start();
}
?>
<html>
<head>
<title>Session test</title>
</head>
<body>
<?php
if (isset($_POST['destroy'])) {
echo "Destroy set";
}
$_SESSION['counter']++;
echo "You have visited this page " . $_SESSION['counter'] . " times" . "<BR>";
echo "I am tracking you using the session id " . session_id() . "<BR>";
echo "Click <a href=\"" . $_SERVER['PHP_SELF'] . "?destroy=1\">here</a> to destroy the session.";
?>
해결책
내 생각엔 네가 넣은 것 같아
$_POST['destroy']
대신에
$_GET['destroy']
$_POST 변수를 사용하려면 양식을 사용해야 합니다.$_GET 변수는 URL에 저장됩니다.
다른 팁
그건 그렇고 당신이 사용할 수 있는
$_REQUEST['파괴']
이는 데이터가 POST 또는 GET 요청으로 전달되는지 여부에 관계없이 작동합니다.
에서 PHP 매뉴얼 세션을 파괴하기 위한 코드 조각이 있습니다.
session_start();
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();
응, 너도 하고 싶을 거야
if( $_GET['destroy'] == 1 )
또는
if( isset($_GET['destroy']) )
제가 뭔가 어리석은 짓을 하고 있다는 건 알지만(PHP 초보자입니다) 그게 뭔지 찾을 수 없는 것 같아요...
그것이 당신이 많은 것을 배울 수 있는 방법입니다 ;) 즐기세요 ...
제휴하지 않습니다 StackOverflow