开发者

Session variable being set on my PC but not on webhost's server

开发者 https://www.devze.com 2023-02-25 04:51 出处:网络
I have the following code to check whether the client has javascript enabled in their browser: page.php:

I have the following code to check whether the client has javascript enabled in their browser:

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>

";

?>

So what should happen is the user is always redirected from page.php to gocheck.php, which sets the session variable $gocheck to 'yes' and directs back to page.php via Javascript. Because $gocheck is 开发者_开发百科then equal to 'yes', page.php shouldn't direct back again tio gocheck.php.

This worked fine on my PC (using WAMP), but when I upload the files to the webhost, it seems to get stuck in an infinite redirect loop between page.php and gocheck.php. Also, if I echo $gocheck in page.php, it returns 'no', so it seems as if for some reason the session variable $gocheck is not being set properly by gocheck.php.

Could somebody please shed some light on this? Is there an error in my code? Is there something I need to change in php.ini on the webhost's server?

Thanks!

P.S. WAMP on my PC uses PHP v.5.3.0, but the webhost uses PHP v.5.2.12 - don't think this can be the problem though.


Why using php to detect if javascript is enabled or not? You can just add following html tags to your page:

<noscript>
Pleas enable javascript!
</noscript>

If the user then enables javascript and refreshes the page the javascript code will work.


ok never mind, now all session variables are being set properly, maybe it was just a question of waiting a bit until the webhost configured everything correctly (also had this problem with setting up e-mails)

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号