会话变量是在我的PC上设置的,而不是在Webhost的服务器上设置的

|| 我有以下代码来检查客户端是否在其浏览器中启用了javascript: page.php:
<?php
session_start(); 
if(isset($_SESSION[\'gocheck\'])) {$gocheck = $_SESSION[\'gocheck\'];} 
else {$gocheck =   \'no\';}
//echo $gocheck;
if($gocheck==\'no\'){header (\"Location: ./gocheck.php\"); exit;}
//Only reaches this line if gocheck.php has been run and Javascript is enabled.
unset($_SESSION[\'gocheck\']);
//rest of page
?>
gocheck.php:
<?php
session_start(); 
$_SESSION[\'gocheck\'] = \'yes\';

echo\"
<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.0 Transitional//EN\\\" \\\"http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd\\\">
<html xmlns=\\\"http://www.w3.org/1999/xhtml\\\" xml:lang=\\\"en\\\" lang=\\\"en\\\">
<head>
<script type=\\\"text/javascript\\\" language=\\\"JavaScript\\\">
window.location.replace(\'page.php\');
</script>
</head>

<body>
This website requires Javascript to be enabled in your browser. <br />
Please enable Javascript and try again.
</body>

</html>

\";

?>
因此,应该发生的情况是,总是将用户从page.php重定向到gocheck.php,这会将会话变量$ gocheck设置为\'yes \',并通过Javascript将其重定向回page.php。因为$ gocheck等于\'yes \',所以page.php不应再次转到gocheck.php。 这在我的PC上(使用WAMP)工作正常,但是当我将文件上传到虚拟主机时,它似乎陷入了page.php和gocheck.php之间的无限重定向循环中。另外,如果我在page.php中回显$ gocheck,它将返回\'no \',因此似乎由于某种原因gocheck.php未正确设置会话变量$ gocheck。 有人可以说明一下吗?我的代码中有错误吗?我需要在主机服务器上的php.ini中进行更改吗? 谢谢! 附言我的PC上的WAMP使用PHP v.5.3.0,但虚拟主机使用PHP v.5.2.12-不要认为这可能是问题所在。     
已邀请:
为什么使用php检测是否启用了javascript?您可以在页面上添加以下html标签:
<noscript>
Pleas enable javascript!
</noscript>
如果用户随后启用javascript并刷新页面,则javascript代码将起作用。     
好的,没关系,现在所有会话变量都已正确设置,也许这​​只是一个等待,直到网站托管者正确配置了所有内容的问题(设置电子邮件也遇到了这个问题)     

要回复问题请先登录注册