Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   http referer (https://forum.antichat.xyz/showthread.php?t=156360)

dddtt 13.11.2009 22:56

http referer
 
Здрасти, я нуб в пхп но на страничке хочу поставить надпись типа "Вы нашли нас по запросу "таряляля" ", вот траляляля должно браться из referer. Если подскажите буду благодарен, если не хотите так подсказывать дам на пиво)

shellz[21h] 13.11.2009 23:01

<? echo "Вы нашли нас по запросу: ".$_SERVER['HTTP_REFERER']; ?>

dddtt 13.11.2009 23:09

Ой, а вот как оттуда выкинуть http://yandex.ru/ И всякие %20%352 переделать в русские буковки?)
ТОесть если я ввел запрос в поисковике "шлак", то у меня на сайте появляется

Вы нашли нас по запросу "шлак"

Deathdreams 13.11.2009 23:10

urldecode() ?

dddtt 13.11.2009 23:13

Ну я же говорю я нуб) я не знаю как этим пользоваться... (

Fepsis 13.11.2009 23:22

ТС, ты уверен, то на твой сайт будут заходить только лишь после какого-либо запроса на яндексе..?!

dddtt 13.11.2009 23:26

Цитата:

Сообщение от Fepsis
ТС, ты уверен, то на твой сайт будут заходить только лишь после какого-либо запроса на яндексе..?!


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

shellz[21h] 13.11.2009 23:27

<? echo "Вы нашли нас по запросу: ".urldecode($_SERVER['HTTP_REFERER']); ?>

dddtt 13.11.2009 23:47

Цитата:

Сообщение от shellz[21h]
<? echo "Вы нашли нас по запросу: ".urldecode($_SERVER['HTTP_REFERER']); ?>

неа, тоже вставляет http://www.google.ru/url?sa=t&source=web&ct=res&cd=1&ved=0CAcQFjAA&url= http: и т.д.

Fepsis 13.11.2009 23:47

Ну если чисто под яндекс, то как-то так:
PHP код:

<?php
$url 
$_SERVER['HTTP_REFERER'];
preg_match("/(?<=text\=)(.*?)(?=\&)/"$url$txt);
$text iconv('UTF-8''Windows-1251',  urldecode($txt[0]));
echo 
'Вы пришли на сайт по запросу <b>'.$text.'</b>';
?>


shellz[21h] 13.11.2009 23:55

Еще вариант, будет выводить только хост
PHP код:

<?php
preg_match
("#http://(.*)/#i"$_SERVER['HTTP_REFERER'], $url);
echo 
'Вы пришли на сайт по запросу '.$url[0]; 
?>


m0Hze 13.11.2009 23:58

PHP код:

$url parse_url($_SERVER['HTTP_REFERER']);
echo 
'Вы пришли на сайт по запросу '.$url['host']; 

Не нужно везде сувать регулярки.

shellz[21h] 14.11.2009 00:02

ну если без регулярок, то можно и кароче)
PHP код:

<?php
 
echo 'Вы пришли на сайт по запросу '.parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST); 
?>


m0Hze 14.11.2009 00:06

Цитата:

Сообщение от shellz[21h]
ну если без регулярок, то можно и кароче)
PHP код:

<?php
 
echo 'Вы пришли на сайт по запросу '.parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST); 
?>


Конфету на полке возьмеш. :/

dddtt 14.11.2009 00:13

Цитата:

Сообщение от Fepsis
Ну если чисто под яндекс, то как-то так:
PHP код:

<?php
$url 
$_SERVER['HTTP_REFERER'];
preg_match("/(?<=text\=)(.*?)(?=\&)/"$url$txt);
$text iconv('UTF-8''Windows-1251',  urldecode($txt[0]));
echo 
'Вы пришли на сайт по запросу <b>'.$text.'</b>';
?>


спасибо)

(Dm) 14.11.2009 01:39

парни совсем забыли про xss)

m0Hze 14.11.2009 01:46

Цитата:

Сообщение от (Dm)
парни совсем забыли про xss)

Не хочу врать,но помоему, parse_url не сработает,если в хосте будут спец-символы.+ выводиться только он - значит хсс нет.Но Если ф-ция считает валидным все подряд... :)
strip_tags в руки

(Dm) 14.11.2009 02:04

Цитата:

Сообщение от m0Hze
Не хочу врать,но помоему, parse_url не сработает,если в хосте будут спец-символы.+ выводиться только он - значит хсс нет.Но Если ф-ция считает валидным все подряд... :)
strip_tags в руки

Через parse_url, реально провести xss.
Цитата:

http://<HTML><BODY ONLOAD=alert(document.cookie)>/
P.S. будь по проще.
Обращайте внимание пожалуйста на безопасность.

m0Hze 14.11.2009 02:11

Цитата:

Сообщение от (Dm)
Через parse_url, реально провести xss.


P.S. будь по проще.

Ну вот про это я и говорил.Тогда,все можно,согласен.Думал парсе_урл,кагбе еще и проверяет валидность.
+.
PS.Проще не хочу.


Время: 16:12