|
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,792
|
||||||||||||||||
Странное поведение сессии23.01.2023, 17:47. Показов 1433. Ответов 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
|
|
|
5513 / 1196 / 164
Регистрация: 16.01.2023
Сообщений: 2,847
|
||
| 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
|
|||||||
|
5513 / 1196 / 164
Регистрация: 16.01.2023
Сообщений: 2,847
|
|
| 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
|
||
|
5513 / 1196 / 164
Регистрация: 16.01.2023
Сообщений: 2,847
|
|||
| 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
|
|
|
5513 / 1196 / 164
Регистрация: 16.01.2023
Сообщений: 2,847
|
|
| 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() Странное поведение программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|