Автор Тема: А можно определить откуда пришел человек...  (Прочитано 8261 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Eugene2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
А можно определить с какой страницы пришел человек и зависимости от ее адреса (тот, который нужен или любой другой) вы вести ему одну из 2-х html страницу:

если зашел с нужного адреса - то первую страницу,
если с любого другого - то вторую...


или это не относится к cgi?

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
А можно определить откуда пришел человек...
« Ответ #1 : 01 Августа 2002, 18:58:34 »
$ENV{HTTP_REFERER}
Ну к чему все это, лучше бы водки выпили...

Оффлайн Eugene2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
А можно определить откуда пришел человек...
« Ответ #2 : 01 Августа 2002, 19:22:00 »
как бы мне хотелось, что бы мне это о чем-то сказало...

я только догадываюсь, что надо писать, что-то типа "Если $ENV{HTTP_REFERER} = "нужный адрес", то делать то-то, если...

но я совсем не разбираюсь в скриптах (максимум, что я могу так это установить уже готовый...)
...


большая просьба, если этот код займет всего несколько строчек и отнимет пару минут вашего времени, то, пожалуйста, приведите его в форуме или мне на почту veb@zmail.ru


заранее спасибо,

с уважением,
Евгений

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
А можно определить откуда пришел человек...
« Ответ #3 : 01 Августа 2002, 19:32:04 »
$etalon_url="http://vasia.doma.net";#Эталон url
$client_url=$ENV{\'HTTP_REFERER\'};# Откуда пришел
if ($etalon_url eq $client_url){&ok}
else {&no_ok}
sub ok{
print "Location: http://vasia.doma.net/ok.htm\\n\\n";#куда идти если все ок
}
sub no_ok{
print "Location: http://vasia.doma.net/no_ok.htm\\n\\n";# куда идти в случае неудачного захода
}


в 99% будет работать
(не всегда удается поймать этот HTTP_REFERER)
У програмиста две руки: левая и !левая
welcome

Оффлайн Eugene2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
А можно определить откуда пришел человек...
« Ответ #4 : 01 Августа 2002, 19:33:59 »
СУПЕР!, спасибо!

поеду домой пробовать...

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
А можно определить откуда пришел человек...
« Ответ #5 : 01 Августа 2002, 19:38:46 »
Цитировать
я совсем не разбираюсь в скриптах (максимум, что я могу так это установить уже готовый...)

Не забудь начать скрипт с #!/usr/bin/perl
 :)
У програмиста две руки: левая и !левая
welcome

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
А можно определить откуда пришел человек...
« Ответ #6 : 01 Августа 2002, 19:56:38 »
Цитировать
if ($etalon_url eq $client_url){&ok}
...
(не всегда удается поймать этот HTTP_REFERER)

:) А последний процент?
....
if (($etalon_url eq $client_url) and ($client_url ne \'\')){&ok}
...
The documentations is your friend

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
А можно определить откуда пришел человек...
« Ответ #7 : 01 Августа 2002, 20:25:02 »
А, ну да :)
Хотя подожди, если эталон совпал с визитером то визитер уже не может быть \'\' Не прав?ИМХО прав! Следовательно, я подозреваю что это была очепятка вместо and нужен or а вместо ne -> eq!
Во блин, чисто писание

А вообще вот что мне удалось как-то выудить на этот HTTP_REFERER -> Field blocked by Outpost (http://www.agnitum.com)
Тоесть я так понял, последнее время люди стремятся всячески себя "зашифровать" в сети
« Последнее редактирование: 01 Августа 2002, 20:32:55 от ESE »
У програмиста две руки: левая и !левая
welcome

Оффлайн Eugene2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
А можно определить откуда пришел человек...
« Ответ #8 : 01 Августа 2002, 20:27:29 »
спасибо всем за помощь!

тут возник еще один маленький вопрос по модификации этого скрипта...

а можно ли сделать так чтобы эти две страница (когда какая нужна, конечно) грузились бы с ОДНОГО И ТОГО ЖЕ адреса, например, http://vasia.doma.net/check.htm, а не редиректилось на
http://vasia.doma.net/ok.htm или http://vasia.doma.net/no_ok.htm


или это нельзя сделать с помощью cgi?

---
Евгений

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
А можно определить откуда пришел человек...
« Ответ #9 : 01 Августа 2002, 20:43:54 »
Ну почему нельзя, можно! Фреймом или
предположим, что check.htm содержит всего одну строку

где check.pl и есть твой новый скрипт
модифицируем скрипт вот так:
print "Content-type: text/html\\n\\n";
$etalon_url="http://vasia.doma.net";#Эталон url
$client_url=$ENV{\'HTTP_REFERER\'};# Откуда пришел
if (($etalon_url eq $client_url) or (!$client_url)){&ok}
else {&no_ok}
sub ok{
open C,"../ok.htm";# ну вот тут надо правильно расчитать путь к ok.htm
print ;close C
}
sub no_ok{
open C,"../no_ok.htm";и соответственно к no_ok.htm
print ;close C
}

все, работает 100% :)
варианты от папки cgi-bin - 1) ../ok.htm
2) ../www/ok.htm
3) ../html/ok.htm
4) ../htmldoc/ok.htm
У програмиста две руки: левая и !левая
welcome

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
А можно определить откуда пришел человек...
« Ответ #10 : 01 Августа 2002, 20:48:33 »
Цитировать
грузились бы с ОДНОГО И ТОГО ЖЕ адреса, например, http://vasia.doma.net/check.htm, а не редиректилось на
http://vasia.doma.net/ok.htm или http://vasia.doma.net/no_ok.htm

Так - нет.
Но можно сделать страницу:
http://vasia.doma.net/cgi-bin/check.cgi
В этом случае страница динамически генерируется скриптом. В зависимостит от полученных данных
Хотя... можно инклудить скрипт, но тогда придётся использовать Явускрипт и это не есть очень большой гут (у юзверя он может быть отключён).
Ну к чему все это, лучше бы водки выпили...

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
А можно определить откуда пришел человек...
« Ответ #11 : 01 Августа 2002, 20:53:21 »
Ну я несколько другой вариант предлагаю, забирать готовую страницу и выводить ее. Причем можно их в каталог cgi-bin поместить вместе с скриптом. Тогда путь убираем вообще и пишем
open C,"ok.htm";
print ;
close C;
У програмиста две руки: левая и !левая
welcome

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
А можно определить откуда пришел человек...
« Ответ #12 : 01 Августа 2002, 20:54:09 »
ESE контакт:-)
Цитировать
$client_url=$ENV{\'HTTP_REFERER\'};# Откуда пришел

гм. а разве при инклуде скрипт не выдаёт страницу, в которую он инклудится?
Ну к чему все это, лучше бы водки выпили...

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
А можно определить откуда пришел человек...
« Ответ #13 : 01 Августа 2002, 20:56:27 »
Цитировать
Ну я несколько другой вариант предлагаю

Я тебя понял, просто не успел прочесть твою мессагу:-)
Просто я думаю что при инклуде в $ENV{\'HTTP_REFERER\'} будет check.htm? Хотя я могу очень глубоко заблуждаться.
Ну к чему все это, лучше бы водки выпили...

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
А можно определить откуда пришел человек...
« Ответ #14 : 01 Августа 2002, 20:57:17 »
Во блин, а ведь ты прав! Все подаю в отставку :)
[застрелился :) ]
У програмиста две руки: левая и !левая
welcome

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28