时间:2011-01-19 22:47:27

标签: php deployment

我有那些树文件:

menulogged.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('admin_header.php');
?>

ctr_login.php

<?php
require_once("includes/helper/session.php");
    if($session->is_logged_in())
    {
      $mess='You are already logged in';
    }

?>

session.php

<?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();

?>

出于某种原因,因为我没有登录,所以我到了登录控制器,然后我收到了这个错误:

Warning: require_once(includes/helper/initialize.php) [function.require-once]: failed to open stream: No such file or directory in /home/content/40/7141640/html/public/userview/ctr_login.php on line 2

Fatal error: require_once() [function.require]: Failed opening required 'includes/helper/initialize.php' (include_path='.:/usr/local/php5/lib/php') in /home/content/40/7141640/html/public/userview/ctr_login.php on line 2

我无法相信我在部署我刚刚制作的网站时遇到了很多问题。我想最多只能在一个小时内完成,但显然只有一个从未建立网站的人会相信这一点。我看了代码至少一个小时,我无法弄明白。我做错了什么?

修改 我注意到无论我调用哪两个文件,在第一个文件中include都工作正常,而在第二个文件上它找不到文件。

4 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您必须告诉PHP在哪里查找包含文件。默认情况下,PHP将查看正在运行的脚本所在的同一目录,显然位于/ usr / local / php5 / lib / php中。您正在寻找包含/ helper / initialize.php。确保“includes”文件夹与文件ctr_login.php位于同一目录中,或者正确设置了包含路径。 (通过set_include_path())。

答案 2 :(得分:0)

仔细检查每个包含文件中<?php之前是否有空格字符。这可能导致标题被发送出去。

答案 3 :(得分:0)

嗯,我不是很确定,但你可以尝试将标题语法改为:

header("Location: /public/userview/ctr_login.php");

还尝试使用绝对路径(例如www.example.com/userview/ctr_login.php)而不是相对路径。

希望它有所帮助,:))