 |
|

15.12.2008, 17:37
|
|
Участник форума
Регистрация: 05.08.2007
Сообщений: 236
С нами:
9877346
Репутация:
457
|
|
Сообщение от m0Hze
хм,собственно вопрос.Как сделать такую фичу: человек обращаться к http://mysite.ru/index.php, если реферер с которого он пришел,равен например http://antichat.ru то ему выводиться "Античат",если реферер равен злой.орг то ему выволиться злой. Собственно можноли ето обставить например с помощью if или switch? Главный вопрос скорее как выглядит етот сам реферер?ТОчнее как его отловить?
не стоит забывать о том что, рефер легко подделывается, либо вабще может быть пустым...А так можно делать как написал Vid0k.
|
|
|

15.12.2008, 17:38
|
|
Познающий
Регистрация: 04.12.2008
Сообщений: 46
С нами:
9176631
Репутация:
57
|
|
$_SERVER['HTTP_REFERER'] - в этой переменной лежит страничка, с которой был сделан переход на текущюю.
а потом парсишь этот url
результатом будет ассоциативный массив вида
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
потом парсишь host и отсекаешь домен
|
|
|

15.12.2008, 20:21
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами:
9223466
Репутация:
3171
|
|
А если,например,человек сам вбивает ссылку в браузер.То как тогда будет выглядеть реферер?Пустой,или может локалхост?)
|
|
|

15.12.2008, 20:43
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
Сообщение от m0Hze
хм,собственно вопрос.Как сделать такую фичу: человек обращаться к http://mysite.ru/index.php, если реферер с которого он пришел,равен например http://antichat.ru то ему выводиться "Античат",если реферер равен злой.орг то ему выволиться злой. Собственно можноли ето обставить например с помощью if или switch? Главный вопрос скорее как выглядит етот сам реферер?ТОчнее как его отловить?
PHP код:
<?
$otkuda=getenv("HTTP_REFERER");
$otkuda = preg_match("/^(http:\/\/)?([^\/]+)/i", $otkuda, $rez);
echo $rez[2];
?>
|
|
|

15.12.2008, 20:50
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами:
9223466
Репутация:
3171
|
|
Да ето мы уже решили сообща с античатом,а вот вопрос из предидущего моего поста мне интересней...
|
|
|

15.12.2008, 20:58
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
Сообщение от m0Hze
А если,например,человек сам вбивает ссылку в браузер.То как тогда будет выглядеть реферер?Пустой,или может локалхост?)
Никак. Просто будет пусто. Вот и задай условие для пусто.
|
|
|

15.12.2008, 21:01
|
|
Участник форума
Регистрация: 11.12.2005
Сообщений: 160
С нами:
10743646
Репутация:
159
|
|
прошу обратить внимание что с https ссылок реферер не передаеться
|
|
|

15.12.2008, 22:50
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
С нами:
9702986
Репутация:
479
|
|
Сообщение от NuR
прошу обратить внимание что с https ссылок реферер не передаеться
вообще ссылки с античата не отправляют заголовок реферер
|
|
|

16.12.2008, 01:34
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами:
9223466
Репутация:
3171
|
|
Вот вопросец 
Имеем условие
PHP код:
switch (email_domain){
case 'yandex' : $from = "Yandex.Support <support@corp.yandex.ru>";
break;
}
Как бы мне указать,что нужно не только $from изменять но например еще и $out? Чтобы все в одном поле какбе.В одно выражении case '' : и вот тут сразу 2 переменные.
|
|
|

16.12.2008, 01:42
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
С нами:
9185589
Репутация:
128
|
|
Сообщение от m0Hze
Вот вопросец 
Как бы мне указать,что нужно не только $from изменять но например еще и $out? Чтобы все в одном поле какбе.В одно выражении case '' : и вот тут сразу 2 переменные.
PHP код:
switch (email_domain){
case 'yandex' :
{
$from="Yandex.Support<support@corp.yandex.ru>";
$out="поменять $out";
break;
}
}
если я правильно понял вопрос... Хотя скобки ставить необязательно, главное, чтобы был break, а то оно пробежится и по следующим сравнениям, пока не встретит этот оператор или просто до конца switch
Последний раз редактировалось ss88; 16.12.2008 в 01:44..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|