Что я сделал не так?Заголовок snet впереди? - PullRequest
0 голосов
/ 20 января 2011

У меня есть эти файлы дерева:

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 голосов
/ 20 января 2011

Ну, я не совсем уверен, но не могли бы вы изменить синтаксис заголовка на:

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

Также попробуйте использовать абсолютный путь (например, www.example.com/userview/ctr_login.php), а не относительный путь.

Надеюсь, это поможет, :)

0 голосов
/ 20 января 2011

Вы должны указать PHP, где искать включаемые файлы.По умолчанию PHP будет выглядеть в той же директории, где находится резидентный скрипт и, очевидно, в / usr / local / php5 / lib / php.Вы ищете включает / helper / initialize.php.Убедитесь, что папка «includes» находится в том же каталоге, что и файл ctr_login.php, ИЛИ что путь включения задан правильно.(Set_include_path ()).

0 голосов
/ 20 января 2011

Дважды проверьте, есть ли пробелы перед <?php в каждом включенном файле. Это может привести к отправке заголовков.

0 голосов
/ 20 января 2011

Вы пытаетесь включить файл, который не существует, initialize.php.Убедитесь, что ваш путь включения настроен правильно, и что пути, которые вы вводите, верны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...