Verasel

Магия php сводит меня с ума (помогите отловить глюк)

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 19.05.17
Сообщения: 191
Рейтинг: 326

Ссылка на сообщениеДобавлено: 12/01/18 в 21:33       Ответить с цитатойцитата 

Код: [развернуть]


Запускаю через браузер action_check_cookie и начинается магия... Ставятся куки, производится вставка в базу, а вот вывод echo не происходит. В index.php и \Model\User ничего такого нет...

Помогите разобраться с этой гадостью, а то мне уже больно 8)
Посоветуйте, как понять что происходит? Может какой трассировщик есть?

P.S. Если закомментировать $user = $this->get_user(); то все нормально. Получается, каким-то чудом вызывается action_index, но как?

Последний раз редактировалось: mx-user (12/01/18 в 22:02), всего редактировалось 1 раз

2
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 12/01/18 в 21:42       Ответить с цитатойцитата 

Это какой-то фреймворк? как роутер выглядит?

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

6
 



С нами с 19.05.17
Сообщения: 191
Рейтинг: 326

Ссылка на сообщениеДобавлено: 12/01/18 в 21:46       Ответить с цитатойцитата 

Oswell E. Spencer писал:
Это какой-то фреймворк? как роутер выглядит?

Это мой велосипед

Код: [развернуть]

2
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 12/01/18 в 22:09       Ответить с цитатойцитата 

Код: [развернуть]



срабатывает только один метод, смотри что у тебя там в $routes

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

6
 



С нами с 19.05.17
Сообщения: 191
Рейтинг: 326

Ссылка на сообщениеДобавлено: 12/01/18 в 22:12       Ответить с цитатойцитата 

Oswell E. Spencer писал:
срабатывает только один метод, смотри что у тебя там в $routes

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

2
 



С нами с 19.05.17
Сообщения: 191
Рейтинг: 326

Ссылка на сообщениеДобавлено: 12/01/18 в 22:32       Ответить с цитатойцитата 

Код: [развернуть]


Вывод:

$routes[1]:
string(12) "check_cookie"

$allowed_routs:
array(1) { [0]=> string(12) "check_cookie" } 1

show check_cookie


При этом, ессли заменить $action_name = 'action_index'; на $action_name = 'action_WTF'; то отрабатывает нормально.

я в ахуях... если отрабатывает if, то как на него может влиять else?

2
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 12/01/18 в 22:44       Ответить с цитатойцитата 

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

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

7
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3912
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 12/01/18 в 22:50       Ответить с цитатойцитата 

Обычно подобные магии сводятся к попытке поставить\прочитать куки после вывода текста в документ\браузер. Или поставить и прочитать в том же скрипте.

6
 



С нами с 19.05.17
Сообщения: 191
Рейтинг: 326

Ссылка на сообщениеДобавлено: 12/01/18 в 23:06       Ответить с цитатойцитата 

Oswell E. Spencer писал:
Твой кусок у меня отрабатывает нормально

Это нормально, глюк-то у меня.

Oswell E. Spencer писал:
если у тебя не так, значит ты показываешь не всю картину, возможно action_index где то в другом месте вызывается.

нене, картина практически вся.
Индекс-роутер целиком показал как есть, заменил только константы в начале. Контроллер тоже. В моделях только про базу данных, а больше и нет никаких файлов.
Роутер запускает пустой экшн action_check_cookie м попутно запускается магия. А скорее немного раньше, ибо меняя else все норм.




Ну да, но дело даже не в куках. Удалил вообще все упоминания о куках из скрипта, производится запись в базу, хотя не должна.

Может баг php-7.1.11? Хотя верится с трудом, но на ум приходит только это.

2
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 12/01/18 в 23:28       Ответить с цитатойцитата 

даже не приходит ничего в голову icon_cry.gif


а так тоже будет index_action файрится?

Код: [развернуть]



и еще в методе check_cookie допиши die() в конце, или там return true, хотя это все из серии бубнов уже. )


в метод index_action() положи var_dump(debug_backtrace()); и покажи, или debug_print_backtrace();

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

6
 



С нами с 19.05.17
Сообщения: 191
Рейтинг: 326

Ссылка на сообщениеДобавлено: 13/01/18 в 00:04       Ответить с цитатойцитата 

Oswell E. Spencer писал:
а так тоже будет index_action файрится?

такая ж хрень

Oswell E. Spencer писал:
и еще в методе check_cookie допиши die() в конце, или там return true

не помогло


Oswell E. Spencer писал:
в метод index_action() положи var_dump(debug_backtrace()); и покажи, или debug_print_backtrace();

а не выводится!

НО! Закатал в базу вместо юида $uid = print_r(debug_backtrace(), true);
и получилось:

Код: [развернуть]


а вот $uid = print_r(debug_print_backtrace(), true); не получилось!

Мы уже близко! Как понять, что вызывает action_index?
Как будто скрытая переадресация где-то.

2
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 13/01/18 в 00:13       Ответить с цитатойцитата 

[file] => /home/app/main/web/index.php
[line] => 75


что на 75 строке? в твоем листинге 67 70 строк.

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

6
 



С нами с 19.05.17
Сообщения: 191
Рейтинг: 326

Ссылка на сообщениеДобавлено: 13/01/18 в 00:20       Ответить с цитатойцитата 

Oswell E. Spencer писал:
что на 75 строке? в твоем листинге 67 70 строк.

Листинг постоянно меняется, я ж его туда-сюда дрочу. Но твой вопрос я понял, сейчас у меня это строка 64 и там $controller->$action_name(); ))

Еще из любопытного - поставил временные метки. Сначала исполняется запись в базу (то есть экшн_индекс) и ли шь потом экшн_чек_куки.

Отбой, что-то я не то насчитап. Все-таки сначала action_check_cookie

2
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 13/01/18 в 00:31       Ответить с цитатойцитата 

То есть

[file] => /home/app/main/web/index.php
[line] => 75
[function] => action_index
[class] => Controller\Controller
[object] => Controller\Controller Object

говорит, что вызвали его в

$controller->$action_name();

но перед

$controller->$action_name();

$action_name содержит строку "action_cookie_check" ? icon_mad.gif


это пиздец какой-то smail101.gif

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

6
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 13/01/18 в 00:33       Ответить с цитатойцитата 

action_check_cookie метод реально только одно echo там?

сделай методы public, а index action private

Controller.php там точно 1 и тот что нужен грузиться?

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

6
 



С нами с 19.05.17
Сообщения: 191
Рейтинг: 326

Ссылка на сообщениеДобавлено: 13/01/18 в 00:48       Ответить с цитатойцитата 

Oswell E. Spencer писал:
это пиздец какой-то smail101.gif

Так вот я ж о том же!!!


Oswell E. Spencer писал:
action_check_cookie метод реально только одно echo там?

да

Oswell E. Spencer писал:
сделай методы public, а index action private

так работает правильно, как и должно

Oswell E. Spencer писал:
Controller.php там точно 1 и тот что нужен грузиться?

да

3
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 13/01/18 в 00:51       Ответить с цитатойцитата 

Цитата:

так работает правильно, как и должно


ну это просто запретили из-вне метод вызывать, это не решение. но я честно не пойму, с какого хера index.php этот метод дергает)


блин у меня тот же v7.1.13 и работает как положено, как так? smail101.gif

Последний раз редактировалось: Oswell E. Spencer (13/01/18 в 00:57), всего редактировалось 1 раз

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

6
 



С нами с 19.05.17
Сообщения: 191
Рейтинг: 326

Ссылка на сообщениеДобавлено: 13/01/18 в 00:54       Ответить с цитатойцитата 

а есть какой-нибудь трассировщик-профилировщик, который может разобрать выполнение скрипта на атомы?
xhprof может помочь?

2
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 13/01/18 в 01:04       Ответить с цитатойцитата 

короче твой скрипт дважды запускается походу, каким то образом.

первый раз ты видишь echo 'ЭТО ВЫВОДИТСЯ, И ПОЧЕМУ-ТО ПРОИСХОДИТ ЗАПУСК action_index';

а второй раз в темную запускает index_action, и его echo ты не видишь, но он делает свою "грязную работу" smail101.gif


все запросы редиректятся на index.php ? запрос к favicon.ico походу и запускает твой скрипт второй раз, но уже с роутом который запускает index_action, так вижу icon_cool.gif

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

7
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 13/01/18 в 01:18       Ответить с цитатойцитата 

Пиши в .htaccess
RewriteCond %{REQUEST_URI} !^/favicon.ico
если Apache, или аналог для nginx, это спасет тебя короче, удачи! icon_wink.gif

Последний раз редактировалось: Oswell E. Spencer (13/01/18 в 01:19), всего редактировалось 1 раз

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

9
 



С нами с 19.05.17
Сообщения: 191
Рейтинг: 326

Ссылка на сообщениеДобавлено: 13/01/18 в 01:18       Ответить с цитатойцитата 

БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
это favicon! Пиздец, два дня угрохал, чесал репу.
Спасибо, дружищще, ты спас мой рассудок от неминуемого помутнения! ))

4
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »