2013-02-11 4 views
0

Я делаю свой первый сайт с некоторым вовлеченным PHP, и я получаю сообщение об ошибке каждый раз, когда я нажимаю кнопку действия на предыдущей странице. Это текст ошибки:Я получаю ошибку PHP, и я не могу понять, почему я ее получил

Warning: require_once(./include/config.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/u5161155/data/www/sh0rt.ru/submit.php on line 2

Fatal error: require_once() [function.require]: Failed opening required './include/config.php' (include_path='.:') in /var/www/u5161155/data/www/sh0rt.ru/submit.php on line 2

Это мой код

<?php 
require_once "./include/config.php"; 
require_once "./include/ShortUrl.php"; 

if ($_SERVER["REQUEST_METHOD"] != "POST" || empty($_POST["url"])) { 
    header("Location: shorten.html"); 
    exit; 
} 

try { 
    $pdo = new PDO(DB_PDODRIVER . ":host=" . DB_HOST . ";dbname=" . DB_DATABASE, 
     DB_USERNAME, DB_PASSWORD); 
} 
catch (\PDOException $e) { 
    header("Location: error.html"); 
    exit; 
} 

$shortUrl = new ShortUrl($pdo); 
try { 
    $code = $shortUrl->urlToShortCode($_POST["url"]); 
} 
catch (\Exception $e) { 
    header("Location: error.html"); 
    exit; 
} 
$url = SHORTURL_PREFIX . $code; 

echo <<<ENDHTML 
<html> 
<head> 
    <title>URL Shortener</title> 
</head> 
<body> 
    <p><strong>Short URL:</strong> <a href="$url">$url</a></p> 
</body> 
</html> 
ENDHTML; 

Я понимаю ошибку, но я не могу получить, почему он не открывает его. Я получил нужный файл в правильном каталоге. Вот почему я прошу о помощи

+0

Очевидно, что это не в нужный каталог, или PHP будет включать его. Каковы ваши сценарии «текущий рабочий каталог»? (например, что означает 'getcwd()' say?), и каков путь FULL ABSOLUTE к этому файлу конфигурации? –

+0

где находятся эти файлы? – 2013-02-11 20:31:30

+0

Каков абсолютный путь для 'config.php'? – Songo

ответ

0

Попробуйте изменить первые строки:

 require_once "./include/config.php"; 
    require_once "./include/ShortUrl.php"; 

в

 require_once "/var/www/u5161155/data/www/sh0rt.ru/include/config.php"; 
    require_once "/var/www/u5161155/data/www/sh0rt.ru/include/ShortUrl.php"; 
+0

Получение этой ошибки сейчас. Внимание: require_once (/var/www/u5161155/data/www/sh0rt.ru/include/config.php) [function.require-once]: не удалось открыть поток: нет такого файла или каталога в/var/www/u5161155 /data/www/sh0rt.ru/submit.php в строке 2 Неустранимая ошибка: require_once() [function.require]: Не удалось выполнить открытие '/var/www/u5161155/data/www/sh0rt.ru/include/ config.php '(include_path =' .: ') в /var/www/u5161155/data/www/sh0rt.ru/submit.php в строке 2 –

+0

Где находится каталог/include /, расположенный по отношению к short.ru/dir? При обращении к путям с помощью ./path/to/file.php означает просмотр переменной $ PATH текущего пользователя и добавление на нее. Если вы скажете ../path/to/file.php, значит, спуститесь на 1 дир, а затем следуйте по этому пути. ../../path/to/file.php будет идти вниз по двум каналам, а затем следовать по пути. Вы также можете просто указать require_once'/full/absolute/path/to/dir/file.php 'без ./ или ../ для более прямого доступа. – neutron

+0

Я его отсортировал. У меня была небольшая ошибка, которую я не видел. Благодаря! –

Смежные вопросы