Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Страннейшее поведение кода
 
 автор: ДобрыйУхх   (13.06.2010 в 04:02)   письмо автору
 
 

Всем привет!

Ума не приложу откуда такой сабж, и от чего он бывает.


Есть код php, генерирует страничку. Работает так: в страничку передается id, ищется в базе инфа и генерируется контент. В фаерфоксе все нормально. В интернет эксплорере при клике мышки по ссылке должно происходит вытаскивание информации из базы и генерации странички с контеном. Не тут то было! Работает через раз. Или нормально или пустая, абсолютно страничка. сгенерированого кода только title и почему то в ie нельзя посмотреть код html. Нажимаю обновить - появляется. Очень странно., и никаких ошибок не вдает, стоит эта функция error_reporting(E_ALL & ~E_NOTICE);

  Ответить  
 
 автор: Trianon   (13.06.2010 в 04:11)   письмо автору
 
   для: ДобрыйУхх   (13.06.2010 в 04:02)
 

Очень странно., и никаких ошибок не вдает, стоит эта функция error_reporting(E_ALL & ~E_NOTICE);

Конечно не выдает, раз & ~E_NOTICE

  Ответить  
 
 автор: ДобрыйУхх   (13.06.2010 в 04:17)   письмо автору
 
   для: Trianon   (13.06.2010 в 04:11)
 

убрал эту строку вообще - без изменений

  Ответить  
 
 автор: sl1p   (13.06.2010 в 04:22)   письмо автору
 
   для: ДобрыйУхх   (13.06.2010 в 04:17)
 

мб код в студию?

  Ответить  
 
 автор: Trianon   (13.06.2010 в 04:31)   письмо автору
 
   для: ДобрыйУхх   (13.06.2010 в 04:17)
 

лучше бы сразу файл

  Ответить  
 
 автор: neadekvat   (13.06.2010 в 13:07)   письмо автору
 
   для: ДобрыйУхх   (13.06.2010 в 04:17)
 

Поставьте
error_reporting(E_ALL & E_NOTICE);
или
error_reporting(E_ALL);

В первом случаи тильду (~) убрал, если совсем уж не видите..
И прочитайте про уровни ошибок, как их выставлять и т.д., дабы таких вопросов более не возникало. В противном случаи вы бестолку потратите время трех человек, отписавшихся в теме на данный момент.

  Ответить  
 
 автор: Trianon   (13.06.2010 в 14:04)   письмо автору
 
   для: neadekvat   (13.06.2010 в 13:07)
 

>Поставьте
>error_reporting(E_ALL & E_NOTICE);
Так нельзя. Останется только E_NOTICE. Более тяжкие деяния уйдут безнаказанно.

тогда уж error_reporting(E_ALL | E_NOTICE);
но тут из зала справедливо замечали, что это то же самое что и
>error_reporting(E_ALL);

  Ответить  
 
 автор: neadekvat   (13.06.2010 в 14:21)   письмо автору
 
   для: Trianon   (13.06.2010 в 14:04)
 

И потому я всегда ставлю error_reporting(E_ALL); а на рабочих проектах в 0, и не надо думать, что же там выставить для диагностики

  Ответить  
 
 автор: Trianon   (13.06.2010 в 19:43)   письмо автору
 
   для: neadekvat   (13.06.2010 в 14:21)
 

а на рабочих проектах в 0 зачем?

  Ответить  
 
 автор: neadekvat   (13.06.2010 в 22:35)   письмо автору
 
   для: Trianon   (13.06.2010 в 19:43)
 

Чтобы не радовать посетителей неизвестными словами. Конечно, сначала на хостинге скрипт отрабатывается, а потом отключаются все ошибки и т.д.

  Ответить  
 
 автор: Trianon   (15.06.2010 в 02:12)   письмо автору
 
   для: neadekvat   (13.06.2010 в 22:35)
 

Чтобы не радовать посетителей , ставится
php_flag display_errors off
и как вариант,
php_flag log_errors on

  Ответить  
 
 автор: ДобрыйУхх   (15.06.2010 в 01:18)   письмо автору
 
   для: Trianon   (13.06.2010 в 19:43)
 

У меня с кодом рецидив, опять глюки(

Вам какой выложить код, тот что генерируется в виде html или исходник php?


или создать новую тему?

  Ответить  
 
 автор: Trianon   (15.06.2010 в 02:13)   письмо автору
 
   для: ДобрыйУхх   (15.06.2010 в 01:18)
 

>У меня с кодом рецидив, опять глюки(
с html или c php ?

>Вам какой выложить код, тот что генерируется в виде html или исходник php?

тот и выкладывайте.
и htm лучше бы - в соотв. разделе.

  Ответить  
 
 автор: ДобрыйУхх   (15.06.2010 в 07:40)   письмо автору
 
   для: Trianon   (15.06.2010 в 02:13)
 

глюки в том, то пропадает страничка. а дело в html верстке или php коде я не знаю. Код я выложил ниже

  Ответить  
 
 автор: Trianon   (15.06.2010 в 08:54)   письмо автору
 
   для: ДобрыйУхх   (15.06.2010 в 07:40)
 

ну ... страничку создает html-код.
Так что если с ней что-то не так, то в первую очередь нужно пытаться локализовать ошибку в html-коде.
Выяснив, какой именно html-код должен быть генерируем, уже можно браться за вопрос, каким именно образом создавать на php-уровне.

А глюки с кодом - не бывают. Ни с тем, ни с другим.

  Ответить  
 
 автор: ДобрыйУхх   (13.06.2010 в 18:54)   письмо автору
 
   для: Trianon   (13.06.2010 в 14:04)
 

Спасибо Вам большое за наводку, Уважаемые друзья!

Проблема была в нативе). Перевел на шаблонную верстку и быстро нашел проблему. Была путаница, отсутсвие закрывающихся тегов в </td>, </tr> и </table>.

Шаблоны - сильная вещь экономящая кучу времени)). Из всех браузеров оказался самым стабильным к ошибка - Фаерфокс, затем, разок пошатнувшись справился OPERA, а вот Интернет Извращенец сплоховал))

  Ответить  
 
 автор: sim5   (13.06.2010 в 18:58)   письмо автору
 
   для: ДобрыйУхх   (13.06.2010 в 18:54)
 

И кто извращенец, если ошибки не браузеры на вашу страницу поместили?

  Ответить  
 
 автор: ДобрыйУхх   (13.06.2010 в 19:22)   письмо автору
 
   для: sim5   (13.06.2010 в 18:58)
 

Да не)), я сплоховал, я так и говорю))

А разве этот браузер в интернете как то по другому называют))

  Ответить  
 
 автор: sim5   (13.06.2010 в 19:25)   письмо автору
 
   для: ДобрыйУхх   (13.06.2010 в 19:22)
 

Ваши ошибки, а виновен "кривой IE"? Создайте сперва сами что либо стоящее, а уж затем другим оценки давайте.

  Ответить  
 
 автор: Gubichev   (13.06.2010 в 19:37)   письмо автору
 
   для: sim5   (13.06.2010 в 19:25)
 

Т.е. прежде чем судить нужно самому создать подобное? Хорошо, наш автопром идеален =)

  Ответить  
 
 автор: sim5   (13.06.2010 в 19:42)   письмо автору
 
   для: Gubichev   (13.06.2010 в 19:37)
 

Не обязательно подобное, но если допускать глупые ошибки в программе, и при этом хаять других (потому, что модно так)....
Собственно, это и к автопрому относится. Вы можете ругать его изделия как потребитель, но если вы автоконструктор или дизайнер, который может только телеги делать, то не стоит охаивать при этом автопром. Научитесь сперва хотя бы руль делать. ;-)

  Ответить  
 
 автор: ДобрыйУхх   (13.06.2010 в 19:51)   письмо автору
 
   для: sim5   (13.06.2010 в 19:42)
 

Никто и не думал обижать браузер)) не я придумал, что его так зовут в интернете))) но то что он не стабилен это данность, плохо, но ничего))

Да я пробовал писать браузер)) сложно, много ньансов))

  Ответить  
 
 автор: ДобрыйУхх   (15.06.2010 в 01:30)   письмо автору
3.4 Кб
 
   для: ДобрыйУхх   (13.06.2010 в 04:02)
 

Опять глюки, выкладываю тот что cгенерировался на html

  Ответить  
 
 автор: ДобрыйУхх   (15.06.2010 в 01:31)   письмо автору
9.8 Кб
 
   для: ДобрыйУхх   (15.06.2010 в 01:30)
 

и код на php

  Ответить  
 
 автор: Лена   (15.06.2010 в 10:30)   письмо автору
 
   для: ДобрыйУхх   (15.06.2010 в 01:31)
 

То, что сразу бросилось в глаза:
$_GET['id_catalog'] = intval($_GET['id']);

  Ответить  
 
 автор: Trianon   (15.06.2010 в 10:33)   письмо автору
 
   для: Лена   (15.06.2010 в 10:30)
 

и не лень же Вам.

Код, который там в архиве, писал товарищ, продвинутый достаточно для того, чтоб такие ошибки находить вполне самостоятельно.

  Ответить  
 
 автор: Лена   (15.06.2010 в 10:34)   письмо автору
 
   для: Trianon   (15.06.2010 в 10:33)
 

Не лень :)
Я быстро глянула, глаз сразу зацепился, это ж почти в самом начале :) дальше уже не смотрела.


>Код, который там в архиве, писал товарищ,

Код, который там в архиве писал не товарищ, а как я поняла, студия софттайм, товарищ просто прикрутил.

  Ответить  
 
 автор: Импекс   (15.06.2010 в 10:44)   письмо автору
 
   для: Лена   (15.06.2010 в 10:34)
 

От имени Доброго Уха.

Код писал я, пользовался библиотекой софтайм, она замечательна, и некоторыми кусками кода)) В коде ссылки на авторства фреймворка я указал)


$_GET['id_catalog'] = intval($_GET['id']); а что здесь не так?

Просто по ссылку вида www.xxx.ru/index.php?id_katalog=2 я заменил на www.xxx.ru/index.php?id=2 а в коде для удобства восприятия делаю вышеуказанную операцию) сейчас вижу, что плохо придумано, а критично ли? Проверю в реале чуть позже)

  Ответить  
 
 автор: Лена   (15.06.2010 в 11:01)   письмо автору
 
   для: Импекс   (15.06.2010 в 10:44)
 

>$_GET['id_catalog'] = intval($_GET['id']); а что здесь не так?


Вы делаете запрос с определенным гет-параметром, значит на сервер приходит ассоциативный массив $_GET, одним из ключей которого - id_catalog.
Но. Дальше Вы пихаете аргументом функции intval значение с совершенно другим ключом - id, поэтому на выходе работы функции вы получаете другое значение. Или вообще его не получаете - если в массиве $_GET нет элемента с ключом id.

То, что вы хотите сделать, по-моему, через mod_rewrite надо делать. Просто составляете паттерн - то, что вы хотите видеть в адресной строке.

  Ответить  
 
 автор: Trianon   (15.06.2010 в 11:35)   письмо автору
 
   для: Лена   (15.06.2010 в 10:34)
 

>Код, который там в архиве писал не товарищ, а как я поняла, студия софттайм, товарищ просто прикрутил.

и это создало такие проблемы? Так пусть открутит :)))

  Ответить  
 
 автор: ДобрыйУхх   (15.06.2010 в 23:45)   письмо автору
 
   для: Trianon   (15.06.2010 в 11:35)
 

Не откручивать не буду), код хороший)) -не отдам)))


УРА!

Проблема была в сессии
// Инициируем сессию
session_start();


Очень странно

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования