Php 我做错了什么?你在前面吗?
我有那些树文件: menuloged.phpPhp 我做错了什么?你在前面吗?,php,deployment,Php,Deployment,我有那些树文件: menuloged.php <?php require_once('includes/helper/session.php'); require_once("includes/helper/initialize.php"); if (!$session->is_logged_in()) { Header("location:/public/userview/ctr_login.php"); } include_layout_template('adm
<?php
require_once('includes/helper/session.php');
require_once("includes/helper/initialize.php");
if (!$session->is_logged_in())
{ Header("location:/public/userview/ctr_login.php"); }
include_layout_template('admin_header.php');
?>
<?php
require_once("includes/helper/session.php");
if($session->is_logged_in())
{
$mess='You are already logged in';
}
?>
<?php
// A class to help work with Sessions
// In our case, primarily to manage logging users in and out
class Session {
private $logged_in=false;
public $user_id;
public $message;
function __construct() {
session_start();
$this->check_message();
$this->check_login();
}
public function is_logged_in() {
return $this->logged_in;
}
public function login($user) {
// database should find user based on username/password
if($user){
$this->user_id = $_SESSION['user_id'] = $user->id;
$this->logged_in = true;
}
}
public function logout() {
unset($_SESSION['user_id']);
unset($this->user_id);
$this->logged_in = false;
}
$session = new Session();
$message = $session->message();
?>
我不敢相信我在部署我刚创建的网站时遇到了这么多问题。我以为最多一个小时就可以完成,但显然只有从未创建过网站的人才会相信这一点。我看了至少一个小时的代码,我想不出来。我做错了什么
编辑
我注意到,无论我调用哪两个文件,第一个文件的include工作正常,第二个文件的include找不到文件。您试图包含一个不存在的文件,
initialize.php
。确保正确设置了include路径,并且键入的路径正确。您必须告诉PHP在哪里查找include文件。默认情况下,PHP将在运行的脚本驻留的同一目录中查找,显然位于/usr/local/php5/lib/PHP中。您正在寻找includes/helper/initialize.php。确保“includes”文件夹与文件ctr_login.php位于同一目录中,或者正确设置了includes路径。(set_include_path())。仔细检查之前是否有空格字符。不过我不是很确定,但您能否尝试将标题语法更改为:
header("Location: /public/userview/ctr_login.php");
另外,尝试使用绝对路径(例如www.example.com/userview/ctr_login.php)而不是相对路径
希望能有所帮助,:)您能提供文件的绝对路径吗?看起来您的php包含路径设置不正确。我没有设置它。我应该在哪里设置它,如何设置?正如我在回答中所写的:使用set_include_path()不,实际上这个文件是存在的。如果您注意到在MenuLoged文件中,我也将其称为MenuLoged文件,它发现它很好。这就是我无法理解的。致命错误:require_once()[function.require]:无法打开required'includes/helper/initialize.php'
,而警告恰恰意味着该文件不存在。请仔细检查,包括拼写和权限。但为什么它在MenuLoged中称之为“好”,而在ctr_登录中却不称之为“好”。两个文件位于同一文件夹中。您能更明确地说明如何设置包含路径吗?好的,如果它们在同一个文件夹中,则故障必须发生在其他地方。这些文件的顺序是什么?您在internet浏览器中访问哪个文件?menuloged.php它是第一个被访问的文件OK。。。因此它重定向到另一个文件,并在那里发生错误。从您的公用文件夹。。。“包含”目录在哪里?它是公共的吗?或者是public/userview/includes?这两个目录都在根目录中:includes和public;public有public/userview/ctr.login并包含其他文件,我还注意到,无论我调用哪两个页面,第二个文件都需要一次(../initialize.php),它给出了确切的错误号,没有空格。我检查了很多次,刚才又检查了一遍
header("Location: /public/userview/ctr_login.php");