Сделать блок невидимым для конкретного ip

Главные вкладки

Аватар пользователя clubwave.ru clubwave.ru 14 мая 2007 в 14:20

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

нужно условие:

если ip= конкретному значению то пусто если не равен показать блок..

Комментарии

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 14 мая 2007 в 15:31

Блин, ну вы батенька даёте : )

Во первых вам нужно использовать Суперглобальный массив $_SERVER.
Вот, лишь некоторые его возможности:

<?php
  echo "Имя сервера - ".$_SERVER['SERVER_NAME']."<br />";
  echo "IP-адрес сервера - ".$_SERVER['SERVER_ADDR']."<br />";
  echo "Порт сервера - ".$_SERVER['SERVER_PORT']."<br />";
  echo "Web-сервер - ".$_SERVER['SERVER_SOFTWARE']."<br />";
  echo "Версия HTTP-протокола - ".$_SERVER['SERVER_PROTOCOL']."<br />";
  echo "IP посетителя -".$ _SERVER["REMOTE_ADDR']."<br />";
?>

А во вторых, ip штука не серьёзная.
Так, он может быть как динамическим (читай всегда разным), так и проксёвым : )

Аватар пользователя clubwave.ru clubwave.ru 14 мая 2007 в 16:52

ip в моём случае штука единственно верная

а вас не затруднит целиком условие составить?

<?php
return = FALSE;

if (.$_SERVER['SERVER_ADDR'].) == '0.0.0.0')
return = TRUE;

?>

так?

Аватар пользователя igdrasil@drupal.org igdrasil@drupal.org 14 мая 2007 в 16:30

вопрос: а какая штука серьезная? ну не логин же... куки тоже чистятся на раз, а ИП зачастую постоянный, и как через проксю зайти - не все знают (я вот не знаю, где найти список прокси, где хоть 5% рабочих есть)

Аватар пользователя clubwave.ru clubwave.ru 15 мая 2007 в 11:24

блин если это в блок засунуть ничего работать не будет..

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

<?php

return = FALSE;

if $_SERVER['SERVER_ADDR == '0.0.0.0'

return = TRUE;

?>

тут есть ошибка?

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 15 мая 2007 в 11:43

Вы, в вашем примере проверяете IP сервера, а надо пользователя.
И возвращать (return) нужно не булевское значение а ноду.
Т.е. если не запрещённый IP возвращаем содержимое материала.

Аватар пользователя clubwave.ru clubwave.ru 15 мая 2007 в 12:45

да ip сервера я туда зря написал

но блин мне нужно написать условие видимости блока..

они пишутся примерно так -

<?php
global $user;
if (in_array('Approved Role',$user->roles)) {
return TRUE;
} else {
return FALSE;
}
?>

а моя задача спрятать блок от одного конкретного ip

вот что я пишу в правило видимости блока:

<?php
return = TRUE;

if $_SERVER['REMOTE_ADDR'] == '0.0.0.0'

return = FALSE;
?>

всместо 0.0.0.0 указан мой ip

и вопрос - почему я продолжа видеть этот блок?

Аватар пользователя Leon_mc_Lenon Leon_mc_Lenon 16 ноября 2012 в 8:49

Пробовал

<?php if $_SERVER["REMOTE_ADDR'] == '0.0.0.0' { echo "Premission denied"} ?> не выходит...Никто блок не видит

<?php
if ($_SERVER['REMOTE_ADDR'] == '0.0.0.0') return = FALSE;
else return true;
?> не выходит...Никто блок не видит

<?php
return = TRUE;

if $_SERVER['REMOTE_ADDR'] == '0.0.0.0'

return = FALSE;
?> не выходит...Никто блок не видит

Как быть?

Аватар пользователя sg85 sg85 17 ноября 2012 в 15:40

"Dan" wrote:
Учить PHP.

+1

а так же для слепых

"Dan" wrote:
return ($_SERVER['REMOTE_ADDR'] != '0.0.0.0');

А по

"<a href="mailto:igdrasil@drupal.org">igdrasil@drupal.org</a>" wrote:
а ИП зачастую постоянный

ага, в Москве у меня IP меняется при каждой перезагрузке роутера, в подмосковье он у меня вообще серый, про GSM вообще молчу, а В Сахалинской обл.(чуть по дальше от областного центра), например, вообще 1 IP на провайдера, забанить 1 комп == забанить весь город. А еще не забываем про макдак и интернет кафе.

Аватар пользователя sg85 sg85 19 ноября 2012 в 8:00

"Leon_mc_Lenon" wrote:
С острил...Ничего не скажешь!

ни капли:
"Leon_mc_Lenon" wrote:

Пробовал
<?php if $_SERVER["REMOTE_ADDR'] == '0.0.0.0' { echo "Premission denied"} ?> не выходит...Никто блок не видит
<?php
if ($_SERVER['REMOTE_ADDR'] == '0.0.0.0') return = FALSE;
else return true;
?>
не выходит...Никто блок не видит
<?php
return = TRUE;

if $_SERVER['REMOTE_ADDR'] == '0.0.0.0'

return = FALSE;
?>
не выходит...Никто блок не видит


Ни один из способов не имеет почти ничего общего с PHP

Аватар пользователя Leon_mc_Lenon Leon_mc_Lenon 19 ноября 2012 в 10:10

Ни один из способов не имеет почти ничего общего с PHP[/quote]

Просто интересно...Смысл тогда в этом форуме, если вы стебетесь на людьми, которые не совсем владеют навыками программирования и обратились за помощью...Как бы то, что нужно что-то учить, это и без вас понятно...Я второй раз обращаюсь тут с вопросом и второй раз попадаю на стеб...Вы кайф от этого ловите? Трудно дать пару советов???Если не хотите, лучше промолчите...не стоит показыывать какие вы все умные, а все остальные тупые...

Аватар пользователя sg85 sg85 19 ноября 2012 в 13:23

"Leon_mc_Lenon" wrote:
Смысл тогда в этом форуме, если вы стебетесь на людьми, которые не совсем владеют навыками программирования и обратились за помощью

вопрос:

"Leon_mc_Lenon" wrote:
Как быть?

ответ(причем он находится выше вопроса):
"Dan" wrote:
return ($_SERVER['REMOTE_ADDR'] != '0.0.0.0');

а это

"Leon_mc_Lenon" wrote:
Пробовал
<?php if $_SERVER["REMOTE_ADDR'] == '0.0.0.0' { echo "Premission denied"} ?> не выходит...Никто блок не видит
<?php
if ($_SERVER['REMOTE_ADDR'] == '0.0.0.0') return = FALSE;
else return true;
?>
не выходит...Никто блок не видит
<?php
return = TRUE;

if $_SERVER['REMOTE_ADDR'] == '0.0.0.0'

return = FALSE;
?>
не выходит...Никто блок не видит


следовало задавать на форуме по PHP, ибо к друпалу не имеет никакого отношения, так что, другая реакция была бы удивительна.

Аватар пользователя Dan Dan 20 ноября 2012 в 23:31

"Leon_mc_Lenon" wrote:
С острил...Ничего не скажешь!

Это не шутка, это приказ.

"Leon_mc_Lenon" wrote:
Как бы то, что нужно что-то учить, это и без вас понятно...

И почему не учим?

"Leon_mc_Lenon" wrote:
Я второй раз обращаюсь тут с вопросом и второй раз попадаю на стеб...Вы кайф от этого ловите?

Может пора сделать выводы?

"Leon_mc_Lenon" wrote:
Трудно дать пару советов???

Трудно ознакомиться с комментами выше (а их совсем немного), прежде чем задавать вопрос?

"Leon_mc_Lenon" wrote:
не стоит показыывать какие вы все умные, а все остальные тупые...

Умных к умным, а меня - к вам. Заметь, ты сам себя назвал тупым, больше никто не догадался.

А теперь по делу, раз ты так этого жаждешь.
Ты скопипастил код из комментария, в котором автор жалуется, что код у него работает неверно. В следующем комменте написано, что не работает из-за PHP-ошибки. Скажи честно, ты думаешь, что ты - избранный и любой код, который ты используешь, включая априори неверный, будет работать?
Далее идёт небольшая правка и есть рабочий код, в том числе от меня. Но ты видимо уже до этого не дочитал - многа букафф? То есть нам должно быть отвечать не сложно, но тебе не читать - можно, так, мистер Лентяй?
Ну и напоследок, тебя, не совсем учтиво, без должных для тебя почестей, таки ткнули в код, но ты всё ежё недоволен? Что нам нужно сделать? Извиниться за твою невнимательность, лень и нежелание учить PHP?