Помогите доделать скрипт (
Помогите доделать мой скрипт :( В php бы я мог бы сделать так:
if ($_COOKIE['ad'] == null): ?> <!DOCTYPE html> <html> <head> </head> <body>ля-ля-ля<body> </html> <?php endif; ?> Но как так сделать в JS я незнаю... Пилю рекламную строку, при нажатии на кнопку крестика, в куках записывается что строка больше не будет показываться, но как ее не показывать, если у меня в куках не null я незнаю... Записываю с помощью jqerry cookie. Я на юкозе, поэтому юзать php не могу, а так бы давно уже сделал на нем. Вот мой код http://jsfiddle.net/cn3oztzz/ if($.cookie('ad1_no') == null) { и тут как то вывести html код)) } пробовал с document.write, он все перезаписывает, с ним не вариант. Нашел еще innerHTML, но не совсем понял, как с помощью него сделать то, что мне нужно |
if ($_COOKIE['ad'] == null): ?> это ошибка Notice в рhp при отсутствии элемента массива с ключем 'ad' правильно if (empty($_COOKIE['ad'])): ?> по js cookie ответ здесь |
Цитата:
|
Цитата:
if (!$_COOKIE['ad']) |
laimas,
а в чем для тебя разница между ошибкой и предупреждением. Или предупреждение это так забить можно отключив. Есть правило хорошего тона включать все ошибки. А не говнокодить уберая вывод ошибок причем я именно правильно назвал ошибка http://php.net/manual/ru/errorfunc.c...rror-reporting |
Предупреждения, это рекомендации, и если я знаю, что они не влияют на исполнения кода, а тем более не приведут к фатальной ошибке, то я кивну и скажу спасибо. Но не более этого.
А вот ошибка, это уже невозможность работы кода далее, хотя можно ее и "засобачить". Для начинающих обязательно нужно выводить и предупреждения и ошибки, а тем кто знает о чем это, можно отключить. А в РНР можно отключать только предупреждения, выводя только ошибки во время отладки. Правило хорошего тона - вывод ошибок только во время отладки, на сервере их обязательно отключать, и не только РНР, но SQL, определяя их вывод в лог-файл. Зная кое что и о поведении языка той или иной версии, можно даже заглушить вывод ошибки. Например, в новых версиях полученный массив размыкается и можно сразу работать с его элементами, что к примеру в JS легко делается. В старых версиях РНР этого нельзя сделать, только через предварительное объявления переменной. Это вроде бы мелочь, но она не позволяет обойтись одним лаконичным выражением в условии. Но все же, если знать поведение языка, то и в старых версиях при работе с массивами вполне можно поставить и заглушку. А насчет правильно ли или нет, ну так это вообще "баг" - в РНР (и не только) предупреждение и ошибка, это все таки понятия разные. А мануал я знаю. ;) |
Цитата:
А теперь по коду твой вариант if (!$_COOKIE['ad']) и мой if (empty($_COOKIE['ad'])): так как же правильно надо писать? косячить и прикрыватся запретом выводом предупреждений или сразу писать правильно Цитата:
Или это лишнее для тебя? |
Цитата:
Вам никто не запрещает писать isset($_POST['x']), а я буду $_POST['x'], и небо не упадет на землю. Язык знать надо, а не базарить зря. :) |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Начинается вульгарность, и при том обвиняя другую сторону. ) Читайте, изучайте. isset($_COOKIE) это глупость, а if($_COOKIE['var']) без isset породит лишь напоминание, ценность которого в том, что напомнить - использование не инициализированной переменной опасно. При отключении вывода предупреждений интерпретатор молча вернет null. И я это знаю, и я в курсе переменных, которые ожидаю, как и их типов. Вам никто не запрещает использовать isset, на здоровье, только не путайте ошибки с предупреждениями, а следственно и поведение языка в этих случаях. Так что вместо вульгарности займитесь изучением и не порите горячки, как и глупостей о медалях. :) |
Часовой пояс GMT +3, время: 09:51. |