|
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
|
||||||||||||||||
Странное поведение сессии23.01.2023, 17:47. Показов 1440. Ответов 38
Метки нет (Все метки)
Добрый день!
Не могу понять, почему в сессии идет не то, что в нее записано. На индексной странице есть код:
Адрес страницы: /wowa/ Так оно и должно быть. А на регистрационной форме, подтягивающейся через Аякс, есть контрольный код:
/favicon.ico Чтобы понять, что за чудеса, я в индексном файле изменил код вот так:
Менял имя uri на другое, на результат не повлияло. Не могу понять, почему так происходит...
0
|
||||||||||||||||
| 23.01.2023, 17:47 | |
|
Ответы с готовыми решениями:
38
странное поведение сессии Странное поведение с нулем $GLOBALS странное поведение |
|
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
|
|
| 23.01.2023, 20:25 [ТС] | |
|
0
|
|
|
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
|
|
| 23.01.2023, 20:29 | |
|
Ну может закэшировал и перестал бороться с получением его. Смотрите что браузер запрашивает в отладчике
0
|
|
|
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
|
|
| 23.01.2023, 20:29 [ТС] | |
|
Откуда, вообще, браузер знает, что в сессию идет урл, а не данные?
Или он во все сессии будет совать фавикон?
0
|
|
| 24.01.2023, 08:04 | |
|
Что у вас используется в качестве "движка"? Судя по описанию у вас этот "индексный" файл является единой точкой входа, причем на которую (судя по favicon) заведена и та же иконка.
При этом для аякса другая точка входа.
0
|
|
|
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
|
||
| 24.01.2023, 09:41 | ||
Сообщение было отмечено vlad-55 как решение
РешениеУ вас нет проблемы с записью файла, у вас проблема именно с тем, что попадает лишняя информация в запрос (REQUEST_URI). У вас настроено так, что при обращении к любому несуществующему файлу, запрос будет переадресован на index.php (единая точка входа, это нормально). В вашем случае "стреляет" обращение к несуществующему фавикону (добавьте его и ваша проблема решится). Но в будущем также, если у вас "побьется" ссылка на изображение или стиль или что-то еще, то есть появится ссылка на несуществующий ресурс - он также будет добавляться в ваш файл.
0
|
||
|
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
|
|||||||
| 24.01.2023, 12:49 [ТС] | |||||||
|
Вообще в этой ветке получилось супер для понимания этого непростого механизма. Перечитал все посты несколько раз. Большое спасибо всем, кто дал мне такие ценные советы! Добавлено через 1 час 1 минуту Если разместить на индексной странице код
/wowa/ /test.css /images/stydent03.jpg Первая строка - адрес в адресной строке. Остальные - несуществующие файлы. Несуществующие файлы могут всегда оказаться, поэтому так не годится. А что делать? Как вытащить адрес?
0
|
|||||||
|
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
|
|
| 24.01.2023, 12:52 | |
|
0
|
|
|
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
|
|||||||
| 24.01.2023, 13:05 [ТС] | |||||||
(Проблема с аякс отошла на второй план).
0
|
|||||||
|
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
|
|
| 24.01.2023, 13:09 | |
|
Это вполне типовая задача, я бы рекомендовал посмотреть, как сделан роутинг в популярных фреймворках (типа Yii, Laravel, Symfony и т.п.).
Ну и статей довольно много на эту тему (гуглите по слову "роутинг").
1
|
|
|
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
|
|
| 24.01.2023, 15:32 [ТС] | |
|
Я пересмотрел несколько статей по роутингу и запутался окончательно. Квалификация у меня невысокая - РНР в классическом виде (не ООП).
Я предполагал сделать CMS так: - .htaccess организует точку входа через index.php; - с помощью $_SERVER['REQUEST_URI'] я узнаю адрес страницы; - по этому адресу запрашиваю контент в базе. Если в базе для этого адреса контент есть, то вывожу его в index.php. Если контента нет, то вывожу header("HTTP/1.1 404 Not Found"); Так оно и работает, но только если на сайте присутствуют все файлы, используемые на странице. А вот если на сайте нет какого-то файла, например картинки, то $_SERVER['REQUEST_URI'] помимо основного, выдает адреса недостающих файлов (один или несколько адресов). Например, /wowa/ /test.css /images/stydent03.jpg Здесь /wowa/ - это адрес в строке браузера. А /test.css /images/stydent03.jpg - это файлы, которые запрашиваются на /wowa/, но которых нет на сайте. И вот я не пойму, как мне в этом потоке "ухватить" первое значение (адрес страницы)? И как 404 выдать именно для него? А потом 404 выдать поочередно для каждого из двух других. Ведь запросы браузер присылает мгновенно.
0
|
|
|
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
|
|
| 24.01.2023, 15:44 | |
|
Так они не связаны
/wowa/ /test.css /images/stydent03.jpg Это 3 независимых запроса к index.php Проблема в том, что какую-то проблему вы решили решать через сесссию, которая шарится между этими 3мя запросами. Может там сессия не нужна? Добавлено через 1 минуту Если все-же нужна, то как вариант писать туда после того, как определилось НЕ 404
0
|
|
|
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
|
||
| 24.01.2023, 15:46 [ТС] | ||
|
Да, вопрос с сессией отошел на задний план. Можно это не учитывать.
Как осуществить их обработку?
0
|
||
|
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
|
|||
| 24.01.2023, 15:53 | |||
|
Тогда все запросы, начинающиеся на /assets, вы можете не обрабатывать скриптами вообще, а отдавать на исполнение веб-серверу. Есть там скрипт/стиль/картинка - отдаст, нет - вернет код ошибки. Можно это правило описать в .htaccess. По всем остальным запросам, мы уже будем отрабатывать в коде нашего роутера. При желании вы можете разбирать строку URI, доставать из нее аргументы, сверять с шаблоном и т.д. Как душа пожелает.
0
|
|||
|
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
|
|
| 24.01.2023, 18:08 [ТС] | |
|
Проблема предельно сконцентрировалась и упростилась.
На индексной странице разместили код: file_put_contents('4.txt', $_SERVER['REQUEST_URI'] . "\n", FILE_APPEND); И получаем в файле '4.txt: /wowa/ /test.css /images/stydent03.jpg Я так понимаю, что /wowa/ - это адрес страницы, а /test.css и /images/stydent03.jpg – файлы, отсутствующие на сервере, но на них ссылается код страницы /wowa/. Эти элементы запрашивает браузер. Осталось только понять, как отвечать браузеру на каждый их этих трех запросов. По адресу /wowa/ запрашиваем контент в базе. Если в базе для этого адреса контент есть, то вывожу его в index.php. Если контента нет, то вывожу header("HTTP/1.1 404 Not Found"); По остальным адресам даже нет нужды делать запрос в базу. Но что-то нужно выдать на запрос браузера по этим элементам? Что конкретно выдать, какой ответ? И главное – как отличить первый запрос, по которому нужен поиск в базе, от последующих? Как это делается на практике?
0
|
|
|
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,851
|
|
| 24.01.2023, 18:11 | |
|
Чуть выше вас познакомили с прекрасной функцией - https://www.php.net/manual/en/... exists.php.
Благодаря этой функции, вы можете узнать, есть такой файл или нет. Но опять же, если вы воспользуетесь моим советом про размещение ресурсов в отдельном каталоге - вам не придется ломать голову, как отличить файл от страницы.
0
|
|
|
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
|
|
| 24.01.2023, 18:31 [ТС] | |
|
Спасибо, но мне бы хотелось поискать ответ на тот вопрос, который сейчас сформулирован относительно кодов отклика
0
|
|
| 24.01.2023, 19:01 | ||
|
Вообще можете посмотреть на ютубе была серия видо что то типа "PSR-7 фреймворк на php"... (Там конечно есть моменты по которым есть разные мнения )... но возможно будет вам в тему.
1
|
||
|
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
|
||
| 24.01.2023, 19:27 | ||
![]() /wowa/ - handler1 /test.css - handler2 /images/stydent03.jpg - handler3 Добавлено через 5 минут Кроме того, handler3, например, может все /images/(.*) (или /images/(.+)) "разруливать". В том числе и генерировать 404, если что-то внутри этой ветви не найдено.
0
|
||
| 24.01.2023, 19:27 | |
|
Странное поведение программы Странное поведение скрипта Странное поведение скриптов Странное поведение session_id() Странное поведение программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|