Неожиданные ошибки предупреждения PHP - PullRequest
0 голосов
/ 27 июля 2011

Это мой первый пост здесь, поэтому извиняюсь, если установка вроде как зашифрована.

Я работаю над базой данных статей с MySQL и PHP.

У меня есть страница, на которой будут показаны все статьи авторов.Я пытаюсь перенаправить ссылку вверху страницы с несколькими PHP if statements, поэтому пользователю придется войти в систему, если это еще не сделано.Если пользователь уже вошел в систему (у меня еще нет сценария PHP для добавления пользователей в базу данных, пока он работает над ним), редирект загрузит форму для отправки новой статьи.

Контроллер (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

Помогите пожалуйста?Я в полной растерянности.

1 Ответ

1 голос
/ 27 июля 2011

$_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/...), указывающую, что вы хотите получить доступ к папке, находящейся на корневом уровне веб-сервера.

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