在用户同意某项之前,我想保护网站免受访问。基本思想是,在每个页面的顶部,它将检查cookie是否存在(如果不存在),然后退出并包括一个包含消息和两个按钮的php页面,一个按钮将创建cookie,另一个按钮则将其从站点中移出,例如google.com
编辑:
我最终得到的是:
警告包括看起来像这样:
<?php
function pageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {
$pageURL .= "s";
}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}
else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
$pageRedirect = pageURL();
if (
isset($_POST['agree_button']) && ($_POST['agree_button'] == 'I agree')
) {
setcookie('agreed', 'true');
header("Location:$pageRedirect",303);
}
?>
<form action="<?php echo pageURL(); ?>" method="post">
<p>INSERT MESSAGE HERE (User must agree)</p>
<input type="submit" value="I agree" name="agree_button" />
<input type="button" value="I disagree" />
</form>
和页面顶部的类似这样的内容:
<?php
if(!isset($_COOKIE['agreed']) || ($_COOKIE['agreed'] != 'true'))
{
include('warning.php'); exit;
}
?>
参考方案
我会在客户端...
<script src="js/jquery.cookie.js" type="text/javascript"></script>
<form>
<p>INSERT MESSAGE HERE (User must agree)</p>
<input type="submit" value="I agree" onclick="$.cookie('agreed', 'true'); location.href='/'" />
<input type="button" value="I disagree" />
</form>
支票将是...
if (
!isset($_COOKIE['agreed'])||
($_COOKIE['agreed'] != 'true')
) {
include('warning.php');
exit;
}
如果要在服务器端设置cookie,则需要...
<?php
if (
isset($_POST['agree_button'])&&
($_POST['agree_button'] == 'I agree')
) {
setcookie('agreed', 'true');
header('Location: /'); // redirect to main page
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<p>INSERT MESSAGE HERE (User must agree)</p>
<input type="submit" value="I agree" name="agree_button" />
<input type="button" value="I disagree" />
</form>
见setcookie() man page
CodeIgniter更新查询被执行两次 - php我正在使用CodeIgniter 2.2。每次访问页面时,我都必须用+1更新数据库。代码可以工作,但是每次都会增加+2。示例:如果是total views=2,则在单击页面后total views应该是3,但是数据库中的值是4。我确定我在控制器中仅调用一次模型add_one_to_view_image。控制者 function view(){ $view_i…
故障排除“警告:session_start():无法发送会话高速缓存限制器-标头已发送” - php我收到警告:session_start()[function.session-start]:无法发送会话缓存限制器-标头已发送(错误输出开始如果我将表单数据提交到其他文件进行处理,则可以正常工作。但是,如果我将表单数据提交到同一页面,则会出现此错误。请建议<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…
通过php表单修改我的xml文件 - php这是我的xml文件和下面的php代码。我输入了一个输入类型,它将按名字搜索学生。然后将显示有关特定学生的信息,并且将显示另一个按钮更新。问题是我想在那之后修改信息。如何通过标签名称获取元素,以便可以修改有关特定学生的信息?<students> <student> <firstname>John</firstname&…
我的PHP脚本中用于删除用户的未定义索引错误 - php即时通讯试图删除用户页面,但我不知道为什么我得到此错误。Undefined index: bil in C:\wamp\www\FORM\deleteadmin.php on line 4 Undefined index: adminID in C:\wamp\www\FORM\deleteadmin.php on line 5 第4行和第5行看起来像这样,…
使用PHP包含时的淡入淡出过渡 - php我正在尝试使用jQuery或CSS(或其他方式!)在DIV中包含的php页面上创建淡入淡出或滑动过渡。我四处搜寻,发现了很多淡入淡出过渡的示例,这些实例彼此淡入淡出div或隐藏内容淡入淡出,但是这种情况略有不同。我有一个DIV,其内容由导航栏控制。选中后,每个页面都可以使用PHP成功地包含在div中,但我想使内容淡入和淡出。关于如何在页面更改之间进行漂亮过渡…