Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
python_user
-8 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 25
1

Вывод ошибки на экран

07.12.2015, 22:22. Просмотров 865. Ответов 10
Метки нет (Все метки)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
class Engine {
 
    private $_page_file = null;
    private $_error = null;
 
    public function __construct() {
        if (isset($_GET["page"])) { //Если открыта какая-нибудь страница
            //Записываем в переменную имя открытого файла (из GET запроса)
            $this->_page_file = $_GET["page"]; 
            //Небольшая защита
            $this->_page_file = str_replace(".", null, $_GET["page"]);
            $this->_page_file = str_replace("/", null, $_GET["page"]);
            $this->_page_file = str_replace("\\", null, $_GET["page"]);
 
             //Проверяем, если шаблон не существует
            if (!file_exists("templates/" . $this->_page_file . ".php")) {
                $this->_setError("Страницу не найдено"); // Выводит ошибку на экран.
                $this->_page_file = "error"; //Открывает страницу с ошибкой
            }
        }
         //Если в GET запросе нет переменной page, то открываем главную
        else $this->_page_file = "1";
    }
 
    private function _setError($error) {
        $this->_error = $error;
    }
 
    public function getError() {
        return $this->_error;
    }
 
    /**
     * Возвращает текст открытой страницы
     */
    public function getContentPage() {
        return file_get_contents("templates/" . $this->_page_file . ".php");
    }
 
    /**
     * Возвращает тег заголовок открытой страницы
     * @return string 
     */
    public function getTitle() {
        switch ($this->_page_file) {
            case "1":
                return "Головна";
                break;
            case "2":
                return "Про нас";
                break;
            case "3":
                return "Контакти";
                break;
            default:
                break;
        }
    }
 
}

Что меня интересует.
Хочу сделать так, что когда открывается левая страница на моей сайте, к примеру ocalhost/index.php?page=впварвр, чтоб оно выводило мне ошибку на экран, по центру.
PHP
1
2
3
4
            if (!file_exists("templates/" . $this->_page_file . ".php")) {
                $this->_setError("Страницу не найдено"); // Выводит ошибку на экран.
                $this->_page_file = "error"; //Открывает страницу с ошибкой
            }
Как видно тут, по скриншоте: http://prntscr.com/9bgugp
Оно выводит ошибку, но она обрезана под моим #header. И то, ее и вовсе не видно, если поставить position: fixed;, которой у меня в оригинальном коде.

HTML5
1
2
3
4
5
6
7
#header {
    top: 0;
    float: left;
    min-width: 100%;
    background-color: #171717;
        position: fixed;
    }
ВОПРОСЫ!
1. Как сделать, чтоб оно выбивало ошибку по центру?
2. Можно в php сделать оформления ошибки? (То есть, то что в коде, оно делает красную рамку вокруг текста).
3. Если нет. В моем коде оно переплавляет на страницу "error.php". Но, когда перенаправляет, оно оставляет мой header и footer. Как сделать, чтоб страница была чистая? Это уже скорей всего, вопрос по css.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2015, 22:22
Ответы с готовыми решениями:

Вывод ошибки
Добрый вечер форумчане , ребят новичок в PHP. Подскажите такой вот момент. у...

Вывод ошибки
Допустим есть файл 1.php: &lt;form action=&quot;2.php&quot; method=&quot;post&quot;&gt;&lt;br&gt; &lt;table...

Убрать вывод ошибки
Делаю проверку на доступность сайта. Если сайт доступен, то всё получается...

Вывод ошибки echo
Ужас , самому смешно , не не могу понять почему вывод ошибку Parse error:...

Не выводятся ошибки php - Белый экран
Открываю файл в браузере test.php с php ошибкой и вижу только белый экран и в...

10
Jewbacabra
Эксперт PHP
3424 / 2850 / 1284
Регистрация: 24.04.2014
Сообщений: 8,645
07.12.2015, 22:27 2
Цитата Сообщение от python_user Посмотреть сообщение
1. Как сделать, чтоб оно выбивало ошибку по центру?
Это скорее относится к html/css
Цитата Сообщение от python_user Посмотреть сообщение
2. Можно в php сделать оформления ошибки?
Опять же с помощью php можно сгенерировать любую html-разметку и задать ей оформление с помощью css
Цитата Сообщение от python_user Посмотреть сообщение
Если нет. В моем коде оно переплавляет на страницу "error.php". Но, когда перенаправляет, оно оставляет мой header и footer. Как сделать, чтоб страница была чистая?.
Не выводить header и footer на данной странице
Цитата Сообщение от python_user Посмотреть сообщение
Это уже скорей всего, вопрос по css.
Можно конечно их скрыть через css, но как-то это не хорошо
0
python_user
-8 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 25
07.12.2015, 22:34  [ТС] 3
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Опять же с помощью php можно сгенерировать любую html-разметку и задать ей оформление с помощью css
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Не выводить header и footer на данной странице
И как это сделать?

Цитата Сообщение от python_user Посмотреть сообщение
Последний раз редактировалось Azdeman; Сегодня в 23:28. Причина: мы не слепые.
Что имелось ввиду? :S
0
Jewbacabra
Эксперт PHP
3424 / 2850 / 1284
Регистрация: 24.04.2014
Сообщений: 8,645
07.12.2015, 22:37 4
Цитата Сообщение от python_user Посмотреть сообщение
И как это сделать?
Сделать что? Не выводить header? Не писать echo '<!-- тут html разметка хедера -->';
0
python_user
-8 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 25
07.12.2015, 22:43  [ТС] 5
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Сделать что?
Не выводить header и footer на данной странице.

Цитата Сообщение от Jewbacabra Посмотреть сообщение
Сделать что? Не выводить header? Не писать echo '<!-- тут html разметка хедера -->';
Можно подробней, я не понял вас.
0
Jewbacabra
Эксперт PHP
3424 / 2850 / 1284
Регистрация: 24.04.2014
Сообщений: 8,645
07.12.2015, 22:49 6
Цитата Сообщение от python_user Посмотреть сообщение
Не выводить header и footer на данной странице.
Если хедер где-то выводится, то чтобы он не выводился логично не выполнять ту часть кода, которая отвечает за вывод хэдера
Цитата Сообщение от python_user Посмотреть сообщение
Можно подробней
Подробнее нужно спрашивать у автора кода, лучше него никто не скажет.
0
python_user
-8 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 25
08.12.2015, 03:32  [ТС] 7
Если у вас будет возможность, сможете глянуть? Я прикрепил сайт.
Я бум-бум в php и не совсем понимаю, что вы говорите.
После 3 часов экспериментов с кодом, я уже сдулся на сегодня.

В общем, если кто-то имеет возможность помочь, еще раз повторюсь, чтоб не было путаниц.
1. Когда кликаешь на несуществующую страницу, чтоб оно открывало error.php.
2. И чтоб, когда открывало error.php, не был включен header и footer.
0
Вложения
Тип файла: rar www.rar (22.2 Кб, 1 просмотров)
JimUSA
Web Programmer
324 / 285 / 121
Регистрация: 28.09.2011
Сообщений: 1,566
08.12.2015, 05:57 8
Лучший ответ Сообщение было отмечено python_user как решение

Решение

Какой код такое решение
1
Вложения
Тип файла: rar www.rar (22.2 Кб, 8 просмотров)
python_user
-8 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 25
08.12.2015, 15:19  [ТС] 9
Цитата Сообщение от JimUSA Посмотреть сообщение
Какой код такое решение
Большое спасибо!
Запустил и все так, как я хочу. Теперь буду разбираться, как вы это сделали :3
0
Владимир201
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 4
27.10.2016, 17:21 10
скажите пожалуйста в этом коде $this->_setError("Страницу не найдено"); // Выводит ошибку на экран.
//Открывает страницу с ошибкой сказано что оно будет выводить ошибку,но в определении функции нету ни слова print ни echo! (private function _setError($error) {
$this->_error = $error;
})
подскажите,как php понимает что нужно не только записать сеттером переменную,но и вывести это на экран
0
Jewbacabra
Эксперт PHP
3424 / 2850 / 1284
Регистрация: 24.04.2014
Сообщений: 8,645
27.10.2016, 17:30 11
Цитата Сообщение от Владимир201 Посмотреть сообщение
подскажите,как php понимает что нужно не только записать сеттером переменную,но и вывести это на экран
Никак не понимает - php туп, что ему сказали, то он дословно и сделал. Если не смог сделать, то сообщил почему. Значит вывод реализован где-то еще
0
27.10.2016, 17:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2016, 17:30

Вывод ошибки без Stack trace
Делаю так: function handleError($errno, $errstr, $errfile, $errline, array...

если нет файла, то вывод ошибки
&lt;?php if(isset($_POST)) { $number = htmlspecialchars($_POST); $answer =...

Вывод ошибки без echo или print
&lt;?php class Engine { private $_page_file = null; private $_error...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru