所有关于php和mysql的工作都在本地服务器上。现在我想转移到网络主机。我选择了一个免费托管网站,如1freehosting.I将我的php页面上传到托管网站的文件管理器&# 39; s cpanel。
我以前访问本地服务器上文件夹名index.php
页面下的'core'
,如下所示:
localhost/practice/core/index.php
我用我的域名写了网址却收到了错误。我的域名是ezphp.tk(它也是一个免费域名)
ezphp.tk/practice/core/index.php
但是我收到了以下错误
警告:require_once(../ classes / Cookie.php):无法打开流: 在......中没有该文件或目录 第42行/home/u377815502/public_html/practice/core/init.php
致命错误:require_once():无法打开所需的错误 ' ../类/ Cookie.php' (include_path ='。:/ usr / lib / php')in 第42行/home/u377815502/public_html/practice/core/init.php
我在主机服务器中的文件结构如下:
我看到的根目录如下:
文件管理器>练习>
在练习中我有以下文件夹:
- 班核-CSS-包括函数编辑器
我的index.php如下:
<?php
require_once '../core/init.php';
include('../includes/header.php');
if(Session::exists('home')){
echo '<p>'.Session::flash("home").'</p>';
}
if($user->isLoggedIn()){
?>
<p>Hellow <a href="../includes/profile.php?user=<?php echo escape($user->data()->username); ?>"><?php echo escape($user->data()->username); ?> </a>!</p>
<ul>
<li><a href='../includes/logout.php'>logout</a></li>
<li><a href='../includes/update.php'>update info</a></li>
<li><a href='../includes/changepassword.php'>change your password</a></li>
<li><a href="../includes/profile.php<?php echo '?user='.escape($user->data()->username);?>">profile</a></li>
</ul>
<?php
if($user->hasPermission('moderator')){
echo '<p>you ara a moderator</p>';
}
}else{
echo '<p>you need to <a href="../includes/login.php">login</a> or <a href="../includes/register.php">register</a><p>';
}
include('../includes/footer.php');
?>
答案 0 :(得分:2)
使用$_SERVER['DOCUMENT_ROOT']
而不是使用相对路径:
require_once $_SERVER['DOCUMENT_ROOT'].'/core/init.php';
include($_SERVER['DOCUMENT_ROOT'].'/includes/header.php');
在你的其他文件中使用它,这样它就不会试图遍历奇数路径。