XAMPP 및 localhost에서 실행되는 쿠키가있는 XP에서 Opera 12.15를 사용하고 있습니다. .htaccess가 없습니다.양식 제출에 의해 생성 된 PHP 세션 변수
1) 다른 주류 브라우저에서 다음 세션 변수가 Opera에서 유지되지 않는 이유를 이해할 수 없습니다. 오페라의 경우에만, 양식이 승인 된 후 (링크를 통해) 페이지를 다시 방문하면 세션 변수가 사라지고 양식이 다시 표시됩니다. 방금 페이지를 새로 고침하면 괜찮습니다 (변수가 계속 유지됨).
2) PHP 태그를 연 다음 'if'문을 시작한 다음 PHP 태그를 닫고 일부 HTML을 입력하고 새 PHP 태그를 연 다음 두 번째 질문을했습니다. 'if'그리고 마지막으로 두 번째 php 태그를 닫습니다. 이 유효한 코드인가, 나는 원래 'if'안에 html을 반향 시키도록 가르쳐졌고 PHP 태그 한 세트 만 가지고 있습니까? 전자는 더 쉽고 작동하며 다른 곳에서도 사용되는 것을 보았습니다.
미리 감사드립니다.
<?php
// Turn on error reporting
ini_set('display_errors', 1);
error_reporting(E_ALL);
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Opera Session Variable</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
// create a test variable to confirm other session variables outside of Form are persisting
$_SESSION['test'] = 'Test';
// function to print session variables
function print_array($_SESSION)
{
echo '<pre>$_SESSION<br />' . "\n";
print_r($_SESSION);
echo "</pre>\n";
}
// process the submitted form
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['formaccept'])) {
$_SESSION['formaccepted'] = $_POST['formaccept'];
}
}
// print the session variables
print_array($_SESSION);
// only display the form if it has not previously been accepted in this session
if (!isset($_SESSION['formaccepted'])) {
?>
<p><b>This parargraph should only display if the form has not been accepted in the current session.</b></p>
<br />
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" name="formaccept" value="Accept" />
</form>
<?php
}
?>
</body>
</html>
고마워요. 문제를 극복하기 위해 .htaccess로 뭔가를 할 수 있다는 뜻입니까, 아니면 대체 접근법이 있을까요? 동일한 세션에서 다시 나타나는 양식을 원하지 않습니까? 확실히 오페라는이 일을해야만한다. – martin
필자는 이것을 오페라 버전 11과 12 및 XP에서만 제한했다. 이유는 모르겠다. 세션 변수는 Windows7을 사용하여 지속됩니다. – martin
오페라에 대한 버그로 신고 할 수 있기 때문에 그들이 그것을 볼 수 있거나, 이미 새로운 버전이 나왔다고 가정하고 있으므로 걱정할 필요가 없습니다. – Celestz