我正在建立一个网站,该网站将根据用户输入显示帖子,而不是使用网站所有者希望访问者手动选择地理位置的地理位置。
为此,我做了一个条件语句来检查cookie是否 已经存在,如果没有,则将显示一个弹出窗口,其中包含一个表单,该表单包含用户可以单击以选择其“位置”的按钮。然后将表单发送到模板页面,并基于“ else if”语句,并设置正确的cookie值。
这种方法的问题
1。 使用此方法,表单最终出现在保存有“ $ _GET”表单输入的模板上。我想将其重定向到首页(首页)。
2。 访问者一进入网站的另一个页面,设置的cookie就会消失。
3。 我发现此方法($ _GET)非常“开放”,可用于许多攻击。
在PHP处理完表单后,我需要添加些什么以重定向到主页,以便浏览网站时cookie不会消失?
一些简单的安全措施也将不胜感激。
原始代码中有很多“ elseif”条件,但它们在原理上都是相同的,唯一的区别是它们发送,接收和设置的值。代码是一样的。这就是为什么我不在此处包含所有条件语句的原因。
用于设置cookie并检查cookie是否存在的代码。这段代码位于functions.php文件中。
<?php
//Set Cookie akr
function set_mycookie_cookie() {
$_a = 'akr';
if(!isset($_COOKIE['tln_c_no'])) {
// set a cookie for 1 year
setcookie('tln_c_no', $_a, time()+31556926, '/');
///Cookie path has also been set to "/" instead of '/', but it makes no difference.
}
}
//Check for cookies function////////
function check_for_cookies() {
// Check if cookie is already set
if(isset($_COOKIE['tln_c_no'])) {
// Do this if cookie is set
?>
<script>
alert("Hi, and welcome back!");
</script>
<?php
} else {
// Do this if the cookie doesn't exist
echo do_shortcode("[sg_popup id=1]");
}
}
add_action('wp_head', 'check_for_cookies');
?>
HTML表单(与$ _GET位于同一专用的custom-template.php上)
<form action="/custom-template.php" method="get" target="_self">
<input type="submit" name="fylket_a" value="AKR" />
</form>
PHP $ _GET代码(与HTML表单位于同一模板中)
if($_GET){
if(isset($_GET['fylke_a'])){
set_akr_cookie();
}elseif(isset($_GET['fylke_b'])){
set_akb_cookie();
}else{
echo "Ooops!";
}
}