![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| krinart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 10.4.2008 Где: Донецк Репутация: нет Всего: нет |
я в общем никогда не бежал сломя голову в случае какойто проблемы на форумы с просьбами о помощи, но тут у меня ситуация из ряда вон. Причём на ровном месте. Суть такова - есть две функции., которые вызываются из "главной". из первой возвращается значение и передается параметром во вторую. Схематично:
Всё просто и элементарно до безобразия. Но! если в первой функции не поставить какойнибудь вывод echo, то ничего не работает. А именно во вторую функцию не передаётся параметр, т.е. при запросе к бд он получается пустой и выскакивает логичная ошибка "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource". Хуже всего то, что я даже отследить где он теряется не могу - при добавлении в любое место echo скрипт начинает работать как ни в чём не бывало Проверено множество раз - и все запросы правильно составлены, и синтаксис везде верен.Почемуто всё упирается в какойто нелепый вывод. Самое интересно то, что результат выводится в формате JSON, т.е. это ответ на AJAX-запрос и я не могу даже зяпятой лишней вывести. Но как только я вставляю "холостой" вывод, который не мешает синтаксису JS, всё опять таки перестаёт работать. Большую пакость и придумать сложно. Единственное, что могу ещё добавить - это большой размер файла (90 Кб ~ 4000 строк). Даже не знаю на что грешить. Подскажите, а? |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
решение тут точно такое же, как и при любых других "непонятных" проблемах - отладка.
если нельзя выводить на экран - можно писать отладочную информацию в файл |
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
krinart, надо смотреть исходники, так ничего не скажешь
|
|||
|
||||
| krinart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 10.4.2008 Где: Донецк Репутация: нет Всего: нет |
а можно поподробней о записи в файл и что именно писать?
и есть ли вобще мысли о возможных причинах? |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Модератор: Сообщение скрыто. |
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
Ипатьев, че ты ерничаешь, кто сказал, что весь исходник нужно смотреть? одну, максимум две функции
Добавлено через 27 секунд krinart, не понятно, первая функция не возвращает, или результат теряется? |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
о-т-л-а-д-о-ч-н-у-ю и-н-ф-о-р-м-а-ц-и-ю ту, которую вы не можете вывести из -за того, что
нет, мыслей нет. мысли, вообще, очень ненадежный способ найти решение проблемы. рекомендую вместо мыслей отладку. |
|||
|
||||
| krinart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 10.4.2008 Где: Донецк Репутация: нет Всего: нет |
NewDima,
Ещё раз повторюсь, код абсолютно рабочий. И просьба не обращать внимания на непроверяемость входных данных и подобные "мелочи" - речь не об этом Добавлено @ 10:03 NewDima, вот мне тоже это непонятно. я честно говоря даже не знаю что выводить в файл. если выводить значение возвращаемой переменной - оно выводится. Если не выводить, во вторую функцию оно не передаётся. Если выводить var_dump($actionUserID) - выводится NULL Это сообщение отредактировал(а) krinart - 18.9.2009, 10:12 |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
156-я строчка - что это?
|
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
Я ошибку не вижу, но могу посоветовать ооочень корявый метод, но возможно он поможет: ob_start(), ob_get_contents.
В стдаут не выведет, а работать можеь будет, но это нехорошо конечно Добавлено через 50 секунд bars80080, да этот код вообще не будет интерпретироваться, там же ошибки после копирования |
|||
|
||||
| krinart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 10.4.2008 Где: Донецк Репутация: нет Всего: нет |
bars80080, уже поправил. просто при копировании вылезло
NewDima, У меня в начале скрипта ob_start(); есть, в конце ob_end_flush(); Куда этот ob_get_contents вставлять? в конец скрипта? |
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
ну, можно исхитриться примерно так:
!!! Но, даже если этот эхо-вывод поможет, советую искать корень ошибки Это сообщение отредактировал(а) NewDima - 18.9.2009, 10:26 |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
во второй функции не обыгрываются все варанты.
return $currentUserID; нет дефолтной ситауции, если $mode не равно turns или orders ничего не выведет. хотя должен выдать ошибку |
|||
|
||||
| krinart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 10.4.2008 Где: Донецк Репутация: нет Всего: нет |
NewDima, чуток поэкспериментировал - вобще непонятно что и в какой кодировке выводит, результат работы всего скрипта:
"�hG" Хотя должно быть, естественно, на порядок больше. Можеть, хоть подскажите, в какую сторону копать-то? Я не прошу чтобы за меня решили.. просто подтолкните...вывод, переполнение памяти.. не знаю, что там ещё может быть? На что влияет echo, что её присутствие или отсутствие так категорично сказывается на наличие переменной и вобще работу скрипта? Добавлено через 1 минуту и 53 секунды bars80080, пока что всё работает в условиях "по-умолчанию". Никаких непредвиденных ситуаций быть не может. Я мониторю всё, что приходит на сервер. Ошибка не в логике, это я могу сказать с уверенностью Добавлено через 4 минуты и 31 секунду bars80080, добавил default: break; Результат тот же( |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
||||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |