Автор Тема: Как проверить...  (Прочитано 3919 раз)

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

Оффлайн Tol

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как проверить...
« : 11 Ноября 2002, 16:24:24 »
Подскажите пожалуйста как проверить пришел ли юзер с нужной мне страницы или нет ?
Заранее благодарю.

http://www.tak-news.com

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Как проверить...
« Ответ #1 : 11 Ноября 2002, 16:39:08 »
Ловить HTTP_REFERER
AS IS...

Оффлайн Tol

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как проверить...
« Ответ #2 : 11 Ноября 2002, 16:45:02 »
ну а как словить его ?

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Как проверить...
« Ответ #3 : 11 Ноября 2002, 16:50:03 »
$HTTP_SERVER_VARS["HTTP_REFERER"]
$SERVER["HTTP_REFERER"]
http://www.php.net/manual/en/reserved.variables.php#reserved.variables.server
AS IS...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как проверить...
« Ответ #4 : 11 Ноября 2002, 17:13:42 »
правильный ответ:
getenv("HTTP_REFERER");

Оффлайн Tol

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как проверить...
« Ответ #5 : 11 Ноября 2002, 17:39:46 »
if ((getenv("HTTP_REFERER")<>"http://localhost/admin/")||(getenv("HTTP_REFERER")<>"http://localhost/admin/mySite.php"))
{
echo "

Access denied!

";
}
else
{
echo "

вот так делаю и реферер правильный 100% - все ровно ACCESS DENIED !!! Почмеу ?

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Как проверить...
« Ответ #6 : 11 Ноября 2002, 17:46:03 »
Если заход извне, то переменная пуста:

<?
print(\
'getenv
\');
print(getenv("HTTP_REFERER"));
print(\'HTTP:
\');
print($HTTP_SERVER_VARS["HTTP_REFERER"]);
print(\'<a href="test.php">test</a>\');
?>
AS IS...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Как проверить...
« Ответ #7 : 11 Ноября 2002, 20:45:34 »
Tol
забей, такая проверка взламывается очень просто.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Alexey333

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 107
  • +0/-0
  • 0
    • Просмотр профиля
Как проверить...
« Ответ #8 : 12 Ноября 2002, 07:25:24 »
Цитировать
if ((getenv("HTTP_REFERER")<>"http://localhost/admin/")||(getenv("HTTP_REFERER")<>"http://localhost/admin/mySite.php"))
{
echo "

Access denied!

";
}
else
{
echo "

вот так делаю и реферер правильный 100% - все ровно ACCESS DENIED !!! Почмеу ?

У тебя проблемы с условным оператором. Ведь если ты заходишь с http://localhost/admin/mySite.php то реферер будет равен этому адресу и выполнится первое условие (несоответствие первому адресу) и выдаст сообщение Access denied! Аналогично и с первым адресом.
Вместо "или" (||) тебе надо поставить "и" (&&). Тогда все должно быть правильно, так как зайдя хотя бы с одной нужной страницы не будет выполнено условие Access denied!

 

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