Просмотр полной версии : http referer
Здрасти, я нуб в пхп но на страничке хочу поставить надпись типа "Вы нашли нас по запросу "таряляля" ", вот траляляля должно браться из referer. Если подскажите буду благодарен, если не хотите так подсказывать дам на пиво)
shellz[21h]
13.11.2009, 23:01
<? echo "Вы нашли нас по запросу: ".$_SERVER['HTTP_REFERER']; ?>
Ой, а вот как оттуда выкинуть http://yandex.ru/ И всякие %20%352 переделать в русские буковки?)
ТОесть если я ввел запрос в поисковике "шлак", то у меня на сайте появляется
Вы нашли нас по запросу "шлак"
Deathdreams
13.11.2009, 23:10
urldecode() ?
Ну я же говорю я нуб) я не знаю как этим пользоваться... (
ТС, ты уверен, то на твой сайт будут заходить только лишь после какого-либо запроса на яндексе..?!
ТС, ты уверен, то на твой сайт будут заходить только лишь после какого-либо запроса на яндексе..?!
нет, ну я это в сторонке сделаю...
я прошу помочь, думаю это не очень сложно и есть куча готового, за хороший ответ я даже заплачу
shellz[21h]
13.11.2009, 23:27
<? echo "Вы нашли нас по запросу: ".urldecode($_SERVER['HTTP_REFERER']); ?>
']<? echo "Вы нашли нас по запросу: ".urldecode($_SERVER['HTTP_REFERER']); ?>
неа, тоже вставляет http://www.google.ru/url?sa=t&source=web&ct=res&cd=1&ved=0CAcQFjAA&url=http: и т.д.
Ну если чисто под яндекс, то как-то так:
<?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
preg_match("#http://(.*)/#i", $_SERVER['HTTP_REFERER'], $url);
echo 'Вы пришли на сайт по запросу '.$url[0];
?>
$url = parse_url($_SERVER['HTTP_REFERER']);
echo 'Вы пришли на сайт по запросу '.$url['host'];
Не нужно везде сувать регулярки.
shellz[21h]
14.11.2009, 00:02
ну если без регулярок, то можно и кароче)
<?php
echo 'Вы пришли на сайт по запросу '.parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
?>
']ну если без регулярок, то можно и кароче)
<?php
echo 'Вы пришли на сайт по запросу '.parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
?>
Конфету на полке возьмеш. :/
Ну если чисто под яндекс, то как-то так:
<?php
$url = $_SERVER['HTTP_REFERER'];
preg_match("/(?<=text\=)(.*?)(?=\&)/", $url, $txt);
$text = iconv('UTF-8', 'Windows-1251', urldecode($txt[0]));
echo 'Вы пришли на сайт по запросу <b>'.$text.'</b>';
?>
спасибо)
парни совсем забыли про xss)
парни совсем забыли про xss)
Не хочу врать,но помоему, parse_url не сработает,если в хосте будут спец-символы.+ выводиться только он - значит хсс нет.Но Если ф-ция считает валидным все подряд... :)
strip_tags в руки
Не хочу врать,но помоему, parse_url не сработает,если в хосте будут спец-символы.+ выводиться только он - значит хсс нет.Но Если ф-ция считает валидным все подряд... :)
strip_tags в руки
Через parse_url, реально провести xss.
http://<HTML><BODY ONLOAD=alert(document.cookie)>/
P.S. будь по проще.
Обращайте внимание пожалуйста на безопасность.
Через parse_url, реально провести xss.
P.S. будь по проще.
Ну вот про это я и говорил.Тогда,все можно,согласен.Думал парсе_урл,кагбе еще и проверяет валидность.
+.
PS.Проще не хочу.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot