Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблема с записью значения $_SERVER[REQUEST_URI] в базу
Форумы портала PHP.SU » » Вопросы новичков » Проблема с записью значения $_SERVER[REQUEST_URI] в базу

Страниц (2): [1] 2 »
 

1. Varan - 16 Октября, 2012 - 11:28:33 - перейти к сообщению
Ребят , помогите , уже весь мозг сломал
значит есть функция которая мониторит пользователей онлайн
PHP:
скопировать код в буфер обмена
  1.  
  2. function on_off_line ($time_out)
  3. {
  4. $id_session = session_id();
  5. $sql_update = "DELETE FROM `on_line_user` WHERE `time`+$time_out < ".time().
  6.               " OR `id_session` = '$id_session'";
  7. if (mysql_query ($sql_update)){//echo "грохнули неактивных и текущего";}
  8.  
  9. //отделим гостей от пользователя
  10. if (empty ($_SESSION['id']))
  11. {
  12. $user = 'Гость';
  13. $user_id = 0 ;
  14. }
  15. else
  16. {
  17. $user = $_SESSION ['login'];
  18. $user_id = $_SESSION['id'] ;
  19. }
  20. $time_viev = time();
  21. $url_viev= $_SERVER['REQUEST_URI']; // определяем запрашиваемую страницу
  22. $ip_host = $_SERVER['REMOTE_ADDR'];// айпи пользователя
  23. $brauzer = $_SERVER["HTTP_USER_AGENT"];// браузер
  24.  
  25. //запишим посетителя в таблицу
  26. $query = "INSERT INTO on_line_user VALUES ('$id_session','$user_id','$user','$time_viev','$url_viev','$ip_host','$brauzer')" ;
  27.               if (mysql_query ($query))
  28.               {
  29.                 //echo "записано в базу";
  30.               }
  31.               else
  32.               {
  33.                 //echo "<br>Ошибка записи в базу данных";
  34.                 exit (mysql_error());
  35.               }
  36. }
  37.  


проблема с записью $url_viev в базу, заключается в следующем
$url_viev= $_SERVER[REQUEST_URI] в моем случае равно /page_forms_edit/article/23
вывожу значение перед записью в базу и после выводит /page_forms_edit/article/23
тоесть как положенно
но в базу переменная переодически заносится как /page_forms_edit/article/favicon .ico
/favicon.ico - откуда берется я не пойму, как получается, что записывается какимто образом измененная переменная в которой числовой индекс страницы заменяется на favicon.ico
2. Мелкий - 16 Октября, 2012 - 11:33:39 - перейти к сообщению
Не "как", а ещё вдобавок. Смотрите соседние записи и логи веб-сервера.
Браузер пробует найти фавиконку, а по роутингу вашему - обращение тоже логируется.
3. Varan - 16 Октября, 2012 - 11:39:37 - перейти к сообщению
Мелкий пишет:
Не "как", а ещё вдобавок. Смотрите соседние записи и логи веб-сервера.
Браузер пробует найти фавиконку, а по роутингу вашему - обращение тоже логируется.

ну я то вывожу значение $url_viev через echo и никаких намеков на favicon.ico нет , ну ладно б если оно добавлялось бы к /page_forms_edit/article/23 а оно полностью заменяет последний идентификатор 23 (и любой другой), проблема видна только в при записи в базу , во всех других случаях отсутствует .
4. Мелкий - 16 Октября, 2012 - 12:05:43 - перейти к сообщению
Хорошо, я повторю более развёрнуто:
При загрузке страницы отрабатывает ваш скрипт, всё нормально пишет. Получив HTML, браузер её разбирает, подгружает другие файлы. А так же, если его местоположение не указано, ищет фавиконку favicon.ico. Ищет (если не ошибаюсь, зависит от браузера) в корне сайта, в текущей директории (тут и получаем урл, по которому у вас вопрос).
5. Varan - 16 Октября, 2012 - 12:16:09 - перейти к сообщению
Мелкий пишет:
Хорошо, я повторю более развёрнуто:
При загрузке страницы отрабатывает ваш скрипт, всё нормально пишет. Получив HTML, браузер её разбирает, подгружает другие файлы. А так же, если его местоположение не указано, ищет фавиконку favicon.ico. Ищет (если не ошибаюсь, зависит от браузера) в корне сайта, в текущей директории (тут и получаем урл, по которому у вас вопрос).

еще раз говорю, причем тут html заголовки
имеем переменную
$url_viev= $_SERVER['REQUEST_URI']; // определяем запрашиваемую страницу
выводим переменную echo $url_viev
результат
/page_forms_edit/article/23
записываем переменную $url_viev в базу (если переменная назначена и у нее есть значение меняться она не должна)
в базе получаем /page_forms_edit/article/favicon .ico
как , как может изменится значение переменной
если ей назначить $url_viev ='хрень' как она может поменять значение при записи в базу 'не хрень'
(Добавление)
я могу допустить что значение $_SERVER['REQUEST_URI']; могло какимто непонятным для меня образом изменится при прямом записи его в базу типа
"INSERT INTO on_line_user VALUES ('$id_session',' $_SERVER[REQUEST_URI]')
но я то записываю туда не $_SERVER['REQUEST_URI'] а уже переменную которой было передано значение , приэтом это значение я вывожу на экран и оно нормальное.
6. avtor.fox - 16 Октября, 2012 - 12:43:00 - перейти к сообщению
Varan ну што Вы. Што Вы.
Для прекращения whining, echo $query;
7. Мелкий - 16 Октября, 2012 - 12:44:08 - перейти к сообщению
Varan пишет:
имеем переменную
$url_viev= $_SERVER['REQUEST_URI']; // определяем запрашиваемую страницу

И чему же она, по-вашему, равна, когда браузер в попытке найти фавиконку запрашивает файлик в текущей директории?
Подскажу: /page_forms_edit/article/favicon .ico и есть. А то, что это - ни разу не фавиконка, а что-то невнятное браузер узнаёт уже после того, как скрипт отработал и записал обращение в базу. Потому что PHP.
8. ugin_root - 16 Октября, 2012 - 13:01:13 - перейти к сообщению
Varan
Покажите свой .htaccess, может у вас все что не найдено перенаправляется на [index.php], и там происходит запись в базу.

Ещё можно проверить посмотрев id строки в которую была произведена запись $url_viev, которая была "Хрень" а в базе оказалась "Не хрень"
PHP:
скопировать код в буфер обмена
  1. mysql_insert_id()//id последней вставленной записи (выполнять сразу после запроса)
9. Varan - 16 Октября, 2012 - 13:07:51 - перейти к сообщению
avtor.fox пишет:
Varan ну што Вы. Што Вы.
Для прекращения whining, echo $query;

чет меня вообще порвало нафик , результат с ног сшибателен
INSERT INTO on_line_user VALUES ('fb8bbd42088e73d15c0446983ff39cf1','1','Aleks','1350381645','/article/5','127.0.0.1','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4')
а в базе записано
`on_line_user`.`id_session` = 'fb8bbd42088e73d15c0446983ff39cf1'
AND `on_line_user`.`user_id` =1
AND `on_line_user`.`login` = 'Aleks'
AND `on_line_user`.`time` =1350381917
AND `on_line_user`.`url_page` = '/foto/_dsc7917.jpg'
AND `on_line_user`.`ip_host` = '127.0.0.1'
AND `on_line_user`.`brauzer` = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4';

,дайте мне пистолет или пристрелите чтоб не мучался, вообще не пойму что происходит
10. ugin_root - 16 Октября, 2012 - 13:11:07 - перейти к сообщению
Varan
Покажите свой .htaccess, может у вас все что не найдено перенаправляется на [index.php], и там происходит запись в базу.

добавте поле id в базу с параметром AUTO_INCREMENT
11. Varan - 16 Октября, 2012 - 13:13:46 - перейти к сообщению
разница во времени теперь еще обнаружилась в 272

хтачес стоит перенаправление на индексный файл, который в свою очередь и обрабатывает шаблоны
AddDefaultCharset UTF-8

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
12. avtor.fox - 16 Октября, 2012 - 13:13:49 - перейти к сообщению
Varan
Вас не смущает разница в столбце тайм на 272 секунды?
///
Посмотрите на время моего поста. Я всего лишь опоздал на 3 секунды. Ха-ха
13. Varan - 16 Октября, 2012 - 13:15:13 - перейти к сообщению
avtor.fox пишет:
Varan
Вас не смущает разница в столбце тайм на 272 секунды?

выше уже написал, смущает , увидел только после вашей посказки когда распечатал $query;
14. Мелкий - 16 Октября, 2012 - 13:20:07 - перейти к сообщению
Varan пишет:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Прочитайте ещё раз мои посты. Если не помогает - сходите отдохнуть, поспать, отвлечься.
Вы логируете в том числе 404 ошибки.
15. Varan - 16 Октября, 2012 - 13:23:42 - перейти к сообщению
Мелкий пишет:
Varan пишет:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Прочитайте ещё раз мои посты. Если не помогает - сходите отдохнуть, поспать, отвлечься.
Вы логируете в том числе 404 ошибки.



аааа нифига!!!, Мелкий я понял о чем вы говорите, как только какоето содержимое страницы не найдено идет запрос в индексный файл и он заного выполняет файл естественно с запросом на ненайденное содержимое и естественно выполняется все функции, все что мне барану надобыло, поместить функцию после обработки корректности запроса. Понял это только благодаря тому, что запрос попался со странице с указанием изображения отсутствующем в директории. А заодно показало мне, что не везде у меня корректно указан путь к иконкам )))

 

Powered by ExBB FM 1.0 RC1