这是我在这里的第一篇文章,如果设置有点乱,请道歉。
我正在使用MySQL和PHP处理文章数据库。
我有一个页面,会显示作者的所有文章。我试图在页面顶部使用一些PHP if statements
重定向链接,因此用户必须登录(如果尚未登录)。如果用户已经登录(我还没有用于将用户添加到数据库的PHP脚本,正在处理它),重定向将加载表单以提交新文章。
Controller(index.php):
<?php
include_once $_SERVER['DOCUMENT_ROOT'] .
'/includes/magicquotes.inc.php';
require_once $_SERVER['DOCUMENT_ROOT'] .
'/includes/access.inc.php';
if (isset($_GET['add']))
if (!userIsLoggedIn())
{
include '/Test/articles/login.html.php';
exit();
}
else
{
include 'form.html.php';
exit();
}
:::PHP code left out for sake of example:::
include 'articles.html.php';
?>
access.inc.php
包含用于输入和保留用户名/密码的SESSION()
和$sql
个enrty脚本
userIsLoggedIn()
是access.inc.php
中的函数(自解释)
login.html.php
是我的登录表单
form.html.php
是提交新文章的实际表单
articles.html.php
是显示我数据库中所有文章的页面
我的问题是当我在用户尚未登录时实现if statement
链接以重定向到我的登录表单时,我点击时会收到PHP警告,因为我的路径是对/Test/articles/login.html.php
更正,我不确定该怎么做。
警告:
Warning: include(/Test/articles/login.html.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\Test\articles\index.php on line 10
Warning: include() [function.include]: Failed opening '/Test/articles/login.html.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\Test\articles\index.php on line 10
请帮忙吗?我完全失去了。
答案 0 :(得分:1)
$_SERVER['DOCUMENT_ROOT']
在确定文件夹结构方面几乎不是一个好的选择,因为它不可靠。
改为使用dirname(__FILE__)
。
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
define('APP_FOLDER', dirname(__FILE__) . DS);
include_once APP_FOLDER . 'includes/magicquotes.inc.php';
require_once APP_FOLDER . 'includes/access.inc.php';
if (isset($_GET['addjoke']))
if (!userIsLoggedIn())
{
include APP_FOLDER . 'Test/articles/login.html.php';
exit();
}
else
{
include APP_FOLDER . 'form.html.php';
exit();
}
顺便说一下,你真正的错误是你在测试之前加了一个斜杠(/Test/...
),表示你想要访问驻留在网络服务器根级别的文件夹。