PHP - сталкивается с проблемами с require_once () на моем сайте - PullRequest
2 голосов
/ 28 октября 2011

Есть сайт, который я разрабатываю, и я не совсем понимаю, какая проблема возникает ...

Внутри таблицы на домашней странице есть ссылка.Когда я нажимаю на него, он должен предоставить некоторые параметры GET для страницы с гиперссылкой.Получающая страница обрабатывает ее, обновляет базу данных и перенаправляет на домашнюю страницу.

Я включил некоторые необходимые файлы php как "require_once()" на домашней странице.Но я не могу сделать это на странице обработки.Это дает некоторые предупреждения.Я не очень понимаю, почему, и я не знаю решения этой проблемы.Пожалуйста, помогите!

Код на домашней странице:

<?php require_once("includes/db_connection_open.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php include("includes/header_main.php"); ?>

<?php
 echo "<td><a href='includes/process.php?id=".$arr['id']."'>Process</a></td>";
?>

<?php include("includes/body_footer_main.php"); ?>
<?php require_once("includes/db_connection_close.php"); ?>

Код на странице обработки:

<?php require_once("includes/db_connection_open.php"); ?>
<?php require_once("includes/functions.php"); ?>

//Processing codes

<?php require_once("includes/db_connection_close.php"); ?>

Полученные предупреждения:

Предупреждение: require_once (includes / db_connection_open.php) [function.require-Once]: не удалось открыть поток: Нет такого файла или каталога в C: \ xampp \ htdocs \ MySite \ includes \ process.php встрока 1

Неустранимая ошибка: require_once () [function.require]: Не удалось открыть обязательное 'include / db_connection_open.php' (include_path = '.; C: \ xampp \ php \ PEAR') в C: \xampp \ htdocs \ MySite \ includes \ process.php в строке 1

Ответы [ 2 ]

2 голосов
/ 28 октября 2011

Похоже, что вы находитесь в каталоге includes, потому что ваша ошибка говорит "в C: \ xampp \ htdocs \ MySite \ includes \ process.php в строке 1".

Однако вы все ещепытаясь потребовать в includes/, чтобы вы оказались в includes/includes/, где ваши файлы не находятся в.

Если у вас возникли проблемы с поиском правильного пути, потому что у вас есть файл, который также загружается через включениев качестве AJAX, например, вы можете использовать __DIR__ (или dirname(__FILE__) в более старых установках PHP), чтобы убедиться, что у вас правильный путь.

Так что в process.php это будет, например,

require_once __DIR__.'/db_connection_open.php';
0 голосов
/ 28 октября 2011

Ну, похоже, ошибки указывают на то, что файлы не существуют в том месте, где вы пытаетесь.Судя по всему, файл process.php уже находится в каталоге includes, поэтому в ваших операторах require_once() на странице вам необходимо обновить ссылки следующим образом:

<?php require_once("db_connection_open.php"); ?>
<?php require_once("functions.php"); ?>
//Processing codes
<?php require_once("db_connection_close.php"); ?>

Hopeэто помогает!

...