如果Cookie不等于可修改,我正在努力重定向用户。如果它确实等于vairable,那么它应该继续脚本。这是我的重定向代码:
if(empty($_GET)) {
//No variables are specified in the URL.
//Do stuff accordingly
echo "No variables specified in URL...";
} else {
//Variables are present. Do stuff:
$id = htmlspecialchars($_GET["id"]);
echo 'url query is ' . $id;
}
if(isset($_COOKIE['logged_in']) == $id)
{
header("Location: test.php");
}
if(isset($_COOKIE['logged_in']) != $id)
{
//continues the script
请注意,if statment($ id)中的vairable可以从url的查询中查看;例如,如果网址是," random.com/test.php?id = 17"并且cookie等于18脚本应该重定向。但是,如果网址是," random.com/test.php?id = 17"并且cookie等于17,然后保持在同一页面上。对不起,如果它听起来很复杂。
它不能像这段代码一样工作:无论可变等于什么,它都不会重定向。感谢
答案 0 :(得分:1)
你在找这样的东西吗?如果是这样,它应该适用于您的情况:
<?php
if(empty($_GET)) {
//No variables are specified in the URL.
//Do stuff accordingly
echo "No variables specified in URL...";
} else {
//Variables are present. Do stuff:
$id = htmlspecialchars($_GET["id"]);
echo 'url query is ' . $id;
}
if(isset($_COOKIE['logged_in']) && $_COOKIE['logged_in']==$id)
{
header("Location: test.php");
}
if(isset($_COOKIE['logged_in']) && $_COOKIE['logged_in']!=$id)
{
//continues the script
}
?>
答案 1 :(得分:0)
标题仅在发送给客户端后才会应用。如果你想立即重定向,你可以在header(...)之后放置exit(0),在这种情况下你将停止执行脚本,并将当前标题发送到浏览器,这将重定向你。
if(isset($_COOKIE['logged_in']) && $_COOKIE['logged_in']==$id) {
header("Location: test.php");
exit(0);
}
//continues the script
答案 2 :(得分:0)
问题是您要将isset
(结果)的“值”与GET参数的{em>值进行比较,{{1} }:
$id
这说的是“确定是否设置if(isset($_COOKIE['logged_in']) == $id)
并将该确定与$_COOKIE['logged_in']
进行比较”。 PHP将评估$id
,其返回isset
或true
(如documentation中所述),并将false
或true
与表达式的另一面(false
),意思是==
,在给定您的示例时永远不会匹配。如果您查询可能正在寻找的“random.com/test.php?id=true”(或false)。
您所拥有的行不意味着“确定是否设置$id
并将 $_COOKIE['logged_in']
的值与值进行比较 $_COOKIE['logged_in']
“,我相信你正在寻找的东西。在这种情况下,您要做的是首先检查$id
是否已设置,然后检查$_COOKIE['logged_in']
的值是否匹配{{1像这样:
$_COOKIE['logged_in']
如果这没有意义,这里有一个非常明确的版本,可能更清楚实际发生的事情:
$id
希望有所帮助。
答案 3 :(得分:-1)
你应该添加另一个条件。
if(empty($_GET)) {
//No variables are specified in the URL.
//Do stuff accordingly
echo "No variables specified in URL...";
} else {
//Variables are present. Do stuff:
$id = htmlspecialchars($_GET["id"]);
echo 'url query is ' . $id;
}
if(isset($_COOKIE['logged_in']) && $_COOKIE['logged_in'] == $id)
{
header("Location: test.php");
}
if(isset($_COOKIE['logged_in']) && $_COOKIE['logged_in'] != $id)
{
//continues the script
或使用此脚本
if(isset($_COOKIE['logged_in']))
{
if($_COOKIE['logged_in']==$id){
header("Location: test.php");
}
else{
//another condition to equal is not equal so directly we can use else
//continues the script
}
} else {
echo "Cookie not valid or available";
// redirect user
}