我有一个导航栏,我包含在我的页面中,只要所有的php文件都在同一个目录中,它就可以正常工作。一旦我将它们移动到文件夹中,导航栏将只允许单击一个链接,然后在较低的目录中一次,文件的路径不正确。
目录结构:
PHP - >
navpanel.php
的search.php
用户文件夹
checkusername.php
等php文件
数据库文件夹
JS - >
我正在使用的PHP代码包含在其他文件中。
<?php
$path = $_SERVER["DOCUMENT_ROOT"];
echo $path;
if ($_SESSION['admin'] == 1){
echo '
<body>
<ul id="menu">
<li><a href="search.php">Search</a></li>
<li><a href="#"></span> User</a>
<ul>
<li><a href="user/createuser.php">Create User</a></li>
<li><a href="user/edituser.php">Edit User</a></li>
<li><a href="user/deleteuser.php">Delete User</a></li>
<li><a href="user/usergroup.php">User Groups</a></li>
</ul>
</li>
<li><a href="#">Databases</a>
<ul>
<li><a href="database/createdatabase.php">Create Database</a></li>
<li><a href="database/editdatabase">Edit Database</a></li>
<li><a href="database/deletedatabase">Delete Database</a></li>
<li><a href="database/databasegroup">Database Groups</a></li>
</ul>
</li>
<li><a href="../connect/logout.php">Log Out</a></li>
</ul>
</body>';
}
else {
echo '
<body>
<ul id="menu">
<li><a href="search.php">Search</a></li>
<li><a href="connect/logout.php">Log Out</a></li>
</ul>
</body>
';
}
答案 0 :(得分:1)
问题出在HTML输出中。如果您希望链接与根(http://www.example.com/
)相对,那么您应该使用/user/createuser.php
,/user/edituser.php
等。
虽然与您的链接无关,但您在不调用脚本顶部的$_SESSION['admin']
的情况下引用会话变量session_start();
。如果不调用session_start();
,会话变量将返回null。
答案 1 :(得分:0)
<?php
session_start(); // u forgot to place this
$path = $_SERVER["DOCUMENT_ROOT"];
echo $path;
if ($_SESSION['admin'] == 1){....
答案 2 :(得分:0)
尝试将您的链接更改为:
echo '<li><a href="'.$path.'user/createuser.php">Create User</a></li>';