[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Убрать кусок сайта при условии
Страницы: 1, 2
Kopipaster
Ну вот так как то:
if ($_SESSION['id']) {include ('template/bricks/statusbar_left.tpl');}else {echo "не подключаем";};
6stPROD
if(!isset($_SESSION['auth'])){
$auth = include ('template/bricks/statusbar_reg.tpl');
$auth_script = '<script type="text/javascript" src="js-scripts/auth-reg.js"></script>';//подключаем javascript для проверки полей ввода
}
else {

include ('template/bricks/statusbar_left.tpl');
}


Критикуйте )) но все же получилось)
sergeiss
Цитата (Kopipaster @ 25.05.2014 - 23:04)
if ($_SESSION['id'])

Да, за такой код критиковал и буду критиковать smile.gif При включенных нотисах (ворнингах) и при отсутствии такого ключа в массиве обязательно должен быть нотис. А код нужно писать так, чтобы он был "чистый", чтобы при включенных нотисах их просто не было - это то, к чему надо стремиться.

Вот тебе живой пример, зачем это нужно. Сейчас работаю с одним сайтом, до меня с ним работали 3 программера, по очереди, в разное время. Там большая каша в коде. И вот решили перенести сайт на другой хостинг. А там нотисы были включены на уровне Апача, в отличие от старого хостинга. И пошло-поехало... Вместо нормальных страниц одни нотисы. То ключ массива не определен (код "один-в-один", как я процитировал в этом ответе в начале), то используется не определенная переменная. То еще какая-нибудь шняга. И всё это на фоне отсутствия стиля написания.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Kopipaster
Елки палки что же ты заводишься то, с пол оборота. Согласились же с тобой.
Цитата (Kopipaster @ 25.05.2014 - 22:41)
а так как скажешь.

Вот лучше расскажи что значит отключённые нотисы? У меня на локалке стоит денвер последней сборки, конфиг никак не настраивался. То есть как скачал так и пользую. На хостинге что не скажу. Но ошибки лезут и там и там. Но вот конкретно с этим примером никаких ошибок нет. Вот я собственно и интересуюсь, без претензий, что значит отключённые нотисы?
sergeiss
Цитата (Kopipaster @ 26.05.2014 - 00:16)
Елки палки что же ты заводишься то, с пол оборота.

Я не завожусь. Я просто не выключаюсь ;)

Цитата (Kopipaster @ 26.05.2014 - 00:16)
Вот я собственно и интересуюсь, без претензий, что значит отключённые нотисы?

error_reporting()
Например, если параметр = 0, то вообще весь вывод ошибок подавлен. Ну и т.д., см. ссылку.

Пишешь в начале скрипта эту функцию и смотришь, что и как работает. Тот же "твой" код, например
if( $_SESSION['id']){...}


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Kopipaster
Ну вот вывел
echo error_reporting();

получил 30711
погуглил
30711 = E_ALL & ~E_NOTICE
Только не понял E_ALL он все выводит или все не выводит?
sergeiss
Вот зачем я тебе ссылку дал? Там есть код:

// Добавлять в отчет все PHP ошибки (см. список изменений)
error_reporting(E_ALL);


Вот такой код выполни лучше (пусть в файле ничего не будет больше):

<?php
error_reporting(E_ALL);

echo $a;
?>


Затем его же, но с параметром (E_ALL ^ E_NOTICE)

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Kopipaster
Ну ясно денвер не настроен на вывод абсолютно всех ошибок :D
Самые пустяковые он игнорит. Но если задать:
error_reporting(E_ALL);
if ($_SESSION['id']) {include ('template/bricks/statusbar_left.tpl');}else {echo "не подключаем";};
то ошибка таки будет. Но код отработает без сбоя логики. Так зачем обязательная проверка?
То есть ты призываешь перед тем как написать
$a=$b;

всегда проверять
if(isset($b))$a=$b;

Я например иногда сознательно глушу вывод ошибок на экран так как знаю что к критам они не ведут
@copy($s,$d)

Мне всегда казалось что язык это не догма, просто надо чётко представлять последствия.
sergeiss
Цитата (Kopipaster @ 26.05.2014 - 01:54)
Так зачем обязательная проверка?

Потому что код надо делать максимально правильным. Впрочем, если ты собираешься делать код только для себя, сделать 2-3 скрипта и бросить программирование wink.gif, то тогда можно и не париться насчет нотисов.

Цитата (Kopipaster @ 26.05.2014 - 01:54)
То есть ты призываешь перед тем как написать
$a=$b;

всегда проверять
if(isset($b))$a=$b;

Не надо утрировать и доводить до абсурда. Но я призываю к тому, что надо писать/отлаживать код с максимальным показом ошибок и нотисов. Если их не будет, то тогда и на сайте код будет корректно работать.
Есть определенные "правила хорошего тона": проверить все входящие ГЕТ/ПОСТ параметры, проверить наличие сессионных переменных и много чего другого. Что, в итоге, облегчает жизнь самому программеру.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.