这里有WordPress的问题。每当$_SESSION
变量等于1时,我想将页面重定向到文件夹(php / adminpage.php)中的特定.php文件。假设会话变量为1:
<?php
if ((isset($_SESSION['login']) && $_SESSION['login'] == '1')) {
header ("Location: php/adminpage.php");
?>
但浏览器返回“Not Found”。有什么方法可以让它发挥作用吗?
更新[求助]:使用完整路径。感谢@andrewsi。工作代码:
<?php session_start();
if ((isset($_SESSION['login']) && $_SESSION['login'] != '')) {
header ("Location: wp-content/themes/euro/php/adminpage.php");
}
&GT;
答案 0 :(得分:1)
您正在使用相对路径:
header ("Location: php/adminpage.php");
这会查找当前文件所在的文件夹,并在那里查找adminpage.php
。
但是WordPress用页面名称和.htaccess做了一些有趣的事情,所以你当前的页面可能不是你想象的那样;使用完整路径通常总是更好,这不太模糊:
标题(“位置:/wp-content/themes/euro/php/adminpage.php”);
在调用它之后不要忘记exit
,因此代码执行会在您重定向的页面上停止。
答案 1 :(得分:0)
这是一个实际的网址吗?
header ("Location: php/adminpage.php");
在我看来,这似乎是一个文件系统路径。因为是此网址的本地设置:
localhost
然后这将是该文件的位置?
localhost/php/adminpage.php
另外,我会像这样清理你的代码:
<?php
if (array_key_exists('login', $_SESSION) && isset($_SESSION['login']) && intval($_SESSION['login']) == 1)) {
header("Location: php/adminpage.php");
}
?>
使用array_key_exists
可以防止未设置索引错误&amp;使用intval
确保您有一个数值。