Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Что написанно в адресной строке


Автор: NNaarreekk 23.1.2009, 19:44
Есть ли функция которая возвращает то что написанно в адресной строке полностью??
 smile  smile  smile 

Автор: skyboy 23.1.2009, 19:49
нет.

Автор: NNaarreekk 23.1.2009, 19:51
Цитата(skyboy @  23.1.2009,  21:49 Найти цитируемый пост)
нет.

И че никак нельзя узнать?

Автор: skyboy 23.1.2009, 19:55
если ты имеешь в виду запрос, с которым обратился к серверу клиент, то $_SERVER['REQUEST_URI'].
однако, там не будет значения закладки(то, что после символа "#" в адресной строке) и хоста(если одна и та же страница может быть доступна через разные доменные имена - впрочем, это можно получить через $_SERVER['HOST'] - вот только доверять нельзя этим данным, так как берется из заголовков, присланных клиентом)

Автор: NNaarreekk 23.1.2009, 20:02
skyboy, мне именно этот $_SERVER['REQUEST_URI'] и был нужен, просто если какой нибудь узер решит похакерит я хочу знать что за инйекцию он пытался делать;)

Спасибо за ответ!

Автор: skyboy 23.1.2009, 20:36
NNaarreekk, научись отмечать вопрос решенным и формировать задачу. Под четыреста сообщений, как-никак.

Автор: NNaarreekk 23.1.2009, 23:58
Цитата(skyboy @  23.1.2009,  22:36 Найти цитируемый пост)
NNaarreekk, научись отмечать вопрос решенным и формировать задачу. Под четыреста сообщений, как-никак. 

Я нигде не вижу как можно взять значение адресной строки, а ты?
А до этого вопрос должен оставаться открытым.

А про формирование задачи, то я никогда не умел писать сочинения, хотя считаю что именно в этом вопросе задача очень даже понятная.

По вопросу
Нашел:
Код

$address = $_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].$_SERVER['QUERY_STRING'];

Написанно было что будет работать если нету mod_rewrite-a

А еще на крайний случай:
Код

window.location.href


Хотя сомневаюсь что нету чего-то конкретного в РНР который возвращал все содержимое сразу smile 

Автор: bars80080 24.1.2009, 01:26
Цитата(NNaarreekk @  23.1.2009,  22:58 Найти цитируемый пост)
Хотя сомневаюсь что нету чего-то конкретного в РНР который возвращал все содержимое сразу 

чистый якорь при всём желании получить не сможешь. т.е. только специально преобразовав его на клиенте в тот же query string

в этом аспекте, на твой вопрос: 
Цитата(NNaarreekk @  23.1.2009,  18:44 Найти цитируемый пост)
Есть ли функция которая возвращает то что написанно в адресной строке полностью??

есть всего один ответ 
Цитата(skyboy @  23.1.2009,  18:49 Найти цитируемый пост)
нет


а если тебе нужен REQUEST_URI, то так бы и спрашивал ($_SERVER['QUERY_STRING']). а самое простое правильно спросить - привести пример чего ты хочешь получить


Цитата(NNaarreekk @  23.1.2009,  22:58 Найти цитируемый пост)
window.location.href

а это как должно помочь?

Автор: NNaarreekk 24.1.2009, 01:40
Цитата(bars80080 @  24.1.2009,  03:26 Найти цитируемый пост)
window.location.href

а это как должно помочь?

А в нем что не хранится содержимое адресной строки?

Автор: skyboy 24.1.2009, 09:49
Цитата(NNaarreekk @  24.1.2009,  00:40 Найти цитируемый пост)
А в нем что не хранится содержимое адресной строки? 

и как ты хочешь получить значение переменной javascript в РНР?
Цитата(NNaarreekk @  23.1.2009,  22:58 Найти цитируемый пост)
Написанно было что будет работать если нету mod_rewrite-a

или редиректа. или доменного алиаса.

Автор: NNaarreekk 24.1.2009, 14:13
Цитата(skyboy @  24.1.2009,  11:49 Найти цитируемый пост)
и как ты хочешь получить значение переменной javascript в РНР?

Есть такая вещь как АЯКС;)
Этот вариант не удобный, но тоже вариант.

Автор: skyboy 24.1.2009, 14:35
Цитата(NNaarreekk @  24.1.2009,  13:13 Найти цитируемый пост)
Есть такая вещь как АЯКС;)

я думал, тебя интересует, как сделать нужное средствами РНР. а коль уже пошла такая пьянка, то можно и пользователя просить в поле формы копировать адрес из адресной строки и тогда тебе даже javascript не нужен для реализации.
вот только РНР тут будет ни при чем  smile 

Автор: NNaarreekk 24.1.2009, 17:06
Цитата(skyboy @  24.1.2009,  16:35 Найти цитируемый пост)
я думал, тебя интересует, как сделать нужное средствами РНР

Просто РНР самое удобное, не если нужно по другому то что делать smile 

Цитата(skyboy @  24.1.2009,  16:35 Найти цитируемый пост)
можно и пользователя просить в поле формы копировать адрес из адресной строки

Да хакеры от смеха описаются... Представляешь пытаются сделать SQL инекцию и вдруг появляется текст 
Код

Вы ввели запрещенные символы в адресную строку! По всей вероятности вы хакер! 
Пожалуста скопируйте содержимое адресной строки в поле ниже, и не забудьте указать ваш е-маил и место жительства

Автор: skyboy 24.1.2009, 18:53
вообще, странно. 
для избежания sql-injection достаточно использовать функцию http://php.net/mysql_real_escape_string. зачем эти дополнительные проверки?

Автор: NNaarreekk 24.1.2009, 19:27
Цитата(skyboy @  24.1.2009,  20:53 Найти цитируемый пост)
зачем эти дополнительные проверки? 

Это не проверка, просто хочется знать что пытался делать хакер.

Автор: enof 24.1.2009, 21:13
Цитата(NNaarreekk @  24.1.2009,  19:27 Найти цитируемый пост)
Это не проверка, просто хочется знать что пытался делать хакер. 

Чем не устраивает лог сервера?

Автор: NNaarreekk 24.1.2009, 21:29
Цитата(enof @  24.1.2009,  23:13 Найти цитируемый пост)
Чем не устраивает лог сервера? 

А что в логе пишется какую инйекцию пытался делать хакер?

Автор: enof 24.1.2009, 21:53
NNaarreekk, 
серв апач?
вот пример из CustomLog:
Код

127.0.0.2 - - [24/Jan/2009:21:04:59 +0300] "GET /edit_message.php?id=184 HTTP/1.1" 200 732

ip с которого был запрос,дата,сам запрос,протокол ,код и размер.
Можно на том же пхп парсить этот лог.
Например если кавычка в запросе обнаружится сообщить на маил или как-нибудь еще.

http://httpd.apache.org/docs/2.2/mod/mod_log_config.html

Автор: NNaarreekk 24.1.2009, 22:23
enof, Спасиб я именно это и искал!

Автор: getme 24.1.2009, 22:58
Цитата(skyboy @  24.1.2009,  18:53 Найти цитируемый пост)
вообще, странно. 
для избежания sql-injection достаточно использовать функцию mysql_real_escape_string. зачем эти дополнительные проверки? 


а еще лучше работать на более высоком уровне, PDO и тп.


Цитата(NNaarreekk @  24.1.2009,  19:27 Найти цитируемый пост)
Это не проверка, просто хочется знать что пытался делать хакер. 


лучше лог апача тогда

Автор: skyboy 25.1.2009, 00:16
Цитата(getme @  24.1.2009,  21:58 Найти цитируемый пост)
лучше лог апача тогда 

ага. зачем ещё раз записывать по сути тот же лог, но средствами PHP?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)