我想要一个简单的年龄检查页面(index.php),要求用户点击“我18岁以上”按钮或“我不是18”按钮,这会将它们重定向到Google。
我刚刚开始构建网站,所以我只有2页可用(Home.php,News.php),下面是我在页面顶部的PHP代码。 (请注意我搜索了这个网站很多,我找到的解决方案都没有。如果问题得到了回答而我错过了,我很抱歉,相信我,如果我能读完答案的话。 )
index.php:
<?php
session_start();
if (isset($_SESSION['ageAccept'])) {
header('Location: home.php');
exit;
}
if(!empty($_POST)) {
if(isset($_POST['ageAccept'])) {
$_SESSION['ageAccept'] = true;
header('Location: home.php');
exit;
} else { header('Location: http://www.google.com'); }
}
?>
home.php&amp; news.php:
<?php
session_start();
if (!isset($_SESSION['ageAccept'])) {
header('Location: index.php');
exit;
}
?>
在index.php页面上的我使用的是一个简单的表单:
<form action="" method="post">
<input type="submit" value="I am 18+ (ENTER)" class="enter" name="ageAccept">
<input type="submit" value="NOT 18+ (Leave)" class="enter" name="ageFail">
</form>
答案 0 :(得分:1)
你的代码看起来很好,所以我建议做一些调试。问题是php.ini
的问题。首先将以下代码放在session_start()
echo session_id();
检查所有页面上的ID是否相同。如果它不在php.ini
中,您应该检查session.cookie_domain
的值。这通常是空白的。
同时检查session.save_path
中php.ini
的值,看看这是否正确。
最后你有一个.htaccess文件吗?在那里重写规则可能搞乱会话。
答案 1 :(得分:0)
非常感谢所有帮助我解决这个问题的人!我实际上发现了我的错误,这是一个相当棘手的问题。在注释掉HTML标记时,如果该标记包含PHP代码,那么这些代码将不会被HTML标记注释掉!例如:
<!-- <h1><?php echo $title ?></h1>-->
虽然代码将变为灰色(如果您的编辑器支持该功能),PHP代码实际上是实时的!我还没有测试是否将//放在PHP代码前面会对它们进行注释,但是将它删除只是更简单。 :P
再次感谢大家的帮助,我实际上从问到这个问题时学到了不同的东西,所以所有评论都非常感谢!