我在页面中包含了一个导航栏,只要所有php文件都在同一目录中,它就可以正常工作。一旦我将它们移动到文件夹中,导航栏只允许单击一个链接,然后在较低的目录中,文件的路径就不正确了。
目录结构:
php-->
-
navpanel.php
-
search.php
-
用户文件夹
-
checkusername.php
-
etc.php文件
-
-
数据库文件夹
- createdatabase.php
js-->
- js文件
php代码im正在使用其他文件中包含的代码。
<?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>
';
}
问题出在HTML输出中。如果您希望链接与根(http://www.example.com/
)是相对的,那么您应该使用/user/createuser.php
、/user/edituser.php
等。
尽管与链接无关,但您引用的是会话变量$_SESSION['admin']
,而不是在脚本顶部调用session_start();
。如果不调用session_start();
,会话变量将返回null。
<?php
session_start(); // u forgot to place this
$path = $_SERVER["DOCUMENT_ROOT"];
echo $path;
if ($_SESSION['admin'] == 1){....
尝试将链接更改为以下内容:
echo '<li><a href="'.$path.'user/createuser.php">Create User</a></li>';