Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 398 372 раза!

Форум

Добро пожаловать, Гость!

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

Обсуждение вопросов на другие темы связанные с веб-разработкой
Владимир Гунаев
Сообщения: 7
C нами: 10 мес 27 дней

Непрочитанное сообщение Владимир Гунаев » 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';
}
}

}
Вложения
folders.jpg

Аватара пользователя
Asmodey
Сообщения: 336
C нами: 5 лет 7 мес
Контакты:

Непрочитанное сообщение Asmodey » 18 янв 2017, 12:04

1. Добавьте __DIR__, чтоб оно отступало от текущего файла.
2. $_GET['page'] надо очень тщательно фильтровать, а то можно уехать далеко по файловой системе.

Владимир Гунаев
Сообщения: 7
C нами: 10 мес 27 дней

Непрочитанное сообщение Владимир Гунаев » 18 янв 2017, 12:35

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

Владимир Гунаев
Сообщения: 7
C нами: 10 мес 27 дней

Непрочитанное сообщение Владимир Гунаев » 18 янв 2017, 12:46

Пробовал вот так всё равно ошибка таже.
require __DIR__ .'/views/'.$pagelink.'.php';
require __DIR__ .'/../views/'.$pagelink.'.php';
require __DIR__ .'../'.$pagelink.'.php';

Аватара пользователя
Asmodey
Сообщения: 336
C нами: 5 лет 7 мес
Контакты:

Непрочитанное сообщение Asmodey » 18 янв 2017, 12:48

Значение $pagelink в студию!
А заодно и __DIR__.'../views/'.$pagelink.'.php'

Владимир Гунаев
Сообщения: 7
C нами: 10 мес 27 дней

Непрочитанное сообщение Владимир Гунаев » 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
C нами: 10 мес 27 дней

Непрочитанное сообщение Владимир Гунаев » 18 янв 2017, 13:20

Условие else require 'views/index.php'; работает нормально!

Владимир Гунаев
Сообщения: 7
C нами: 10 мес 27 дней

Непрочитанное сообщение Владимир Гунаев » 18 янв 2017, 13:36

folders.jpg

Владимир Гунаев
Сообщения: 7
C нами: 10 мес 27 дней

Непрочитанное сообщение Владимир Гунаев » 18 янв 2017, 14:35

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


Вернуться в «Оффтоп и другие темы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость