Ошибка подключаемых файлов

Обсуждение других вопросов связанных с веб-разработкой
Владимир Гунаев
Сообщения: 7
Зарегистрирован:
18 янв 2017, 11:30

Ошибка подключаемых файлов

Владимир Гунаев » 18 янв 2017, 11:48

Проблема в следующем, есть такой код при переходе по ссылке выдаёт ошибку


Warning: require(Main.php) [function.require]: failed to open stream: No such file or directory in E:\OpenServer\domains\php.loc\oop\controllers\Page.php on line 13

Fatal error: require() [function.require]: Failed opening required 'Main.php' (include_path='.;e:/openserver/modules/php/PHP-5.3;e:/openserver/modules/php/PHP-5.3/PEAR/pear') in E:\OpenServer\domains\php.loc\oop\controllers\Page.php on line 13

Структура папок:

[img]
folders.jpg
[/img]



Код php
class Page extends DataBase
{
public function getPage()
{
if(isset($_GET['page']))
{
$pagelink = $_GET['page'];

require 'views/'.$pagelink.'.php';
}
else
{
require 'views/index.php';
}
}

}
Аватара пользователя
Asmodey
Сообщения: 339
Зарегистрирован:
18 апр 2012, 10:33
Контактная информация:

Re: Ошибка подключаемых файлов

Asmodey » 18 янв 2017, 12:04

1. Добавьте __DIR__, чтоб оно отступало от текущего файла.
2. $_GET['page'] надо очень тщательно фильтровать, а то можно уехать далеко по файловой системе.
Владимир Гунаев
Сообщения: 7
Зарегистрирован:
18 янв 2017, 11:30

Re: Ошибка подключаемых файлов

Владимир Гунаев » 18 янв 2017, 12:35

Ещё получается так, что я переношу фаил из папки /views/ в корень этот сайта тоесть /oop/ тут нечего не меняю
require 'views/'.$pagelink.'.php'; и он начинает работать, тоесть видет фаил.
Владимир Гунаев
Сообщения: 7
Зарегистрирован:
18 янв 2017, 11:30

Re: Ошибка подключаемых файлов

Владимир Гунаев » 18 янв 2017, 12:46

Пробовал вот так всё равно ошибка таже.
require __DIR__ .'/views/'.$pagelink.'.php';
require __DIR__ .'/../views/'.$pagelink.'.php';
require __DIR__ .'../'.$pagelink.'.php';
Аватара пользователя
Asmodey
Сообщения: 339
Зарегистрирован:
18 апр 2012, 10:33
Контактная информация:

Re: Ошибка подключаемых файлов

Asmodey » 18 янв 2017, 12:48

Значение $pagelink в студию!
А заодно и __DIR__.'../views/'.$pagelink.'.php'
Владимир Гунаев
Сообщения: 7
Зарегистрирован:
18 янв 2017, 11:30

Re: Ошибка подключаемых файлов

Владимир Гунаев » 18 янв 2017, 13:16

Содержимое страницы index.php

<?php
require 'models/DataBase.php';
require 'controllers/Page.php';

$database = new DataBase();
$page = new Page();
$page->getPage();
?>


<div class="main"><a href="?page=Main">Main</a></div>
<div class="main"><a href="?page=input">Contact</a></div>
<div class="main"><a href="?page=contact">a but</a></div>

-------------------

Содержимое страницы Page.php

class Page extends DataBase
{
public function getPage()
{
if(isset($_GET['page']))
{
$pagelink = $_GET['page'];

require __DIR__ .'/views/'.$pagelink.'.php';
}
else
{
require 'views/index.php';
}
}

}
Владимир Гунаев
Сообщения: 7
Зарегистрирован:
18 янв 2017, 11:30

Re: Ошибка подключаемых файлов

Владимир Гунаев » 18 янв 2017, 13:20

Условие else require 'views/index.php'; работает нормально!
Владимир Гунаев
Сообщения: 7
Зарегистрирован:
18 янв 2017, 11:30

Re: Ошибка подключаемых файлов

Владимир Гунаев » 18 янв 2017, 13:36

folders.jpg
Владимир Гунаев
Сообщения: 7
Зарегистрирован:
18 янв 2017, 11:30

Re: Ошибка подключаемых файлов

Владимир Гунаев » 18 янв 2017, 14:35

Заработало!!! удалил из папки фаил Page.php и сделал такую запись require '/views/'.$pagelink.'.php'; стало всё работать .
Ответить