Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отлаживаются скрипты, либо читайте здесь, либо доходите сами 
V
    Опции темы
skyboy
Дата 15.3.2008, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Ну и каша...

Во первых, 
Цитата(SneG0K @  15.3.2008,  04:00 Найти цитируемый пост)
 Не работают куки и не регистрируется сессия.  Есть следующий алгоритм:

Это заявление логически необосновано. Чтобы говорить, что не работают куки, надо писать код, который проверяет, работают ли куки.
И дело не в том, что ты говоришь. А в том, как ты воспринимаешь ситуацию.
Gрограммист тем и отличается от юзера, что основывается в своих выводах на фактах - иначе ему просто никогда не найти ошибку.
Gоэтому программист всегда проверяет свои утверждения.
Думаем, что не работают куки - проверяем работу кук, скриптом
Код

setcookie("user","test",0);
echo $_COOKIE["test"];

Если не работают - разбираемся. Только с куками, и ничем больше. 
Если работают - ищем проблему дальше.

Думаем, что не работают сессии? Проверяем, тестовым скриптом, например, отсюда: PHP FAQ: Сессии. Подробное описание работы и объяснение механизма.
Если не работают - разбираемся. Только с сессиями, и ничем больше. 
Если работают - ищем проблему дальше.

Дальше - значит, что проблема не в куках и не в сессиях, а в алгоритме.
Алгоритм надо ОТЛАЖИВАТЬ. Слово написано большими буквами потому, что это главное слово в программировании.
Отладка - это многоуровневое пошаговое выполнение. Разделяем задачу на не свзанные между собой сегменты (шаги), и каждый выполняем построчно (по шагам). На каждом шаге проверяя корректность данных.

Мы уже начали отлаживать, проверяя сегменты по работе с куками и сессиями.
Теперь проверяем пошагово основной текст.
К примеру, что у тебя находится в переменной $session?
Какое значение выставляет куке оператор setcookie("user",$session,0);?
А эта ветка case вообще выполняется?
Не знаешь. А надо знать.

Вот в этом и заключается работа программиста. Не switch - case писать. А знать, какое значение имеет каждая переменная в каждый момент выполнения программы. Не все время знать, конечно. А тогда, когда он занимается отладкой.
И руководствоваться логикой.
То есть, описание ситуации не на уровне "я поставил куку, а она не работает", а "я выставил куку с такими-то параметрами".
Все, ВСЕ свои действия надо проверять! Буквально каждую строчку.

Но самое смешное во всей этой ситуации - что отлаживать, проверять свои переменные программист может только сам, на своей машине. На форуме за него это при всем желании не сделают. поэтому придется учиться искать ошибки самостоятельно.

И убери из кода ненужную session_register и совсем уж чудовищную session_destroy
Автор: Feldmarschall Источник: Vingrad
PM MAIL   Вверх
DioNiR
Дата 16.3.2008, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Лично мой способ ОТЛАЖИВАТЬ скрипты. если что то не работает но ошибки нет то в логических проверках операторов ставлю 
Код
echo 1;

И так проверяю порой на каком уровне работает, а на каком нет. НО это если ошибка в логическом древе проверок.
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
awers
Дата 16.3.2008, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Zend Студио в руки. Ну конечно "echo 1;" и ПОНИМАНИЕ не повредит процессу )
PM MAIL WWW ICQ Skype   Вверх
Feldmarschall
Дата 16.3.2008, 04:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Понимание, кстати, да - ключевой момент. 
То есть, надо, разумеется, понимать, что делает твоя программа в каждый момент времени. Без этого все остальное бесполезно, и даже Zend Studio не поможет smile
PM   Вверх
awers
Дата 16.3.2008, 04:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Feldmarschall, ну почему-же... можно тему на форуме создать и кричать что ничего мол не работает...  smile 
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0695 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.