Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2010, 09:40   #1
MaGiS
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 15
По умолчанию Подключение скрипта всем пользователям

Всем привет.
Есть сервер, есть десяток пользователей.
Каким образом мне можно подключить к ним PHP файл?
Думал сделать так - кидаю php скрипт в папку home, инклудю в скрипте "home/script.php", но не работает...
Как ещё можно?
Т.е. мне надо чтоб 1 пхп файлом пользовался весь сервер.
Спасибо.
MaGiS вне форума Ответить с цитированием
Старый 08.07.2010, 09:59   #2
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

либо папка закрыта, либо адрес битый, либо сервак так настроен...либо...либо..либо...
ответ таков, каков вопрос, перефразируйте, уточните, выложите код.
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 08.07.2010, 10:14   #3
MaGiS
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 15
По умолчанию

Задача изменилась..
Код:
<?php



/* Сообщение при банне ip */
define("bann_message", "Для вашего IP: %ip% доступ к сайту закрыт.");
 
/* Предупреждение о возможности банна по ip */
define("wrong_message", "Вы предупреждены администратором данного сайта о возможной блокировке вашего IP: %ip% в случае дальнейшего нарушения правил.");
 
/* массив с ip и типом блокировки. в ключе массива IP, в значении тип блокировки */
$bann_array = array(
"78.40.176.13"=>"bann", 

);
 
/* Функция для почти 100% определения IP адреса посетителя. */
/* Перебирает все возможные переменные с IP. */
function _ip()
{
  if(isset($HTTP_SERVER_VARS)) {
    if(isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])) {
    $realip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
    }elseif(isset($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])) {
      $realip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
    }else{
      $realip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
    }
  }else{
  if(getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
    $realip = getenv( 'HTTP_X_FORWARDED_FOR' );
  }elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
    $realip = getenv( 'HTTP_CLIENT_IP' );
  }else {
    $realip = getenv( 'REMOTE_ADDR' );
  }
}
return $realip;
}
 
/* Определяет, что делать с владельцем того или иного ip адреса */
function bann_on_not_to_bann()
{
    global $bann_array; // получаем массив с ip адресами
    $user_ip = _ip();   // получаем ip
 
/* разбираем массив на ключ и значение */
foreach($bann_array as $ip=>$type)
{
    if ($ip == $user_ip) // проверяем
    {
        switch($type) // если ip совпал то смотрим что делать
        {
            case "wrong": // предупреждение
            {
                echo str_replace("%ip%", $user_ip, wrong_message); // выводим предупреждение
                break; // выход из switch
            }
            case "bann": // блокировка
            {
                die(str_replace("%ip%", $user_ip, bann_message)); // Сообщение о том, что доступ закрыт + завершение работы php
                // break не требуется т.к. дальше уже ничего не выполняется
            }
        }
    }
}
}
 
/* проверяем владельца ip и блокируем\предупреждаем если это спамер */
bann_on_not_to_bann();
curl_close($cUrl);
?>
Скрипт блокирует указанный(е) IP.
Есть тут такой отрывок - $bann_array = array(
"78.40.176.13"=>"bann",
);

Надо бы сделать так, чтобы список IP хранился на site.ru/spisok.php и автоматом добавлял в список заблокированных.. т.е. результат таков - скрипт закачивается на site1.ru, а список берётся с site.ru ..
Сейчас мудрил с file_get_contents, ничего у меня не получилось, руки не из того места :-[
MaGiS вне форума Ответить с цитированием
Старый 08.07.2010, 10:27   #4
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

не вижу смысла в этом переборе:
Код:
/* разбираем массив на ключ и значение */
foreach($bann_array as $ip=>$type)
{
    if ($ip == $user_ip) // проверяем
    {
        switch($type) // если ip совпал то смотрим что делать
        {
            case "wrong": // предупреждение
            {
                echo str_replace("%ip%", $user_ip, wrong_message); // выводим предупреждение
                break; // выход из switch
            }
            case "bann": // блокировка
            {
                die(str_replace("%ip%", $user_ip, bann_message)); // Сообщение о том, что доступ закрыт + завершение работы php
                // break не требуется т.к. дальше уже ничего не выполняется
            }
        }
    }
}
не проще просто проверить ключ $realip на значение "bann"?
ifelse работает быстрее чем switch.
какой смысл весь массив перебирать? ведь он может быть в сотни тыс.
Цитата:
Сейчас мудрил с file_get_contents, ничего у меня не получилось, руки не из того места :-[
а где проблемный код?
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 08.07.2010, 10:45   #5
MaGiS
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 15
По умолчанию

Ну я вот сделал так:
Код:
$bann_array = file_get_contents('http://site.ru/spisok.php');
там текст:
Код:
"78.40.176.13"=>"bann",
Ведь не правильно?
MaGiS вне форума Ответить с цитированием
Старый 08.07.2010, 10:53   #6
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

spisok.php должен быть открытый для чтения, проверь chmod.
полученный текст нужно парсить.
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 08.07.2010, 10:54   #7
MaGiS
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 15
По умолчанию

Цитата:
Сообщение от LeoN Посмотреть сообщение
spisok.php должен быть открытый для чтения, проверь chmod.
полученный текст нужно парсить.

права на файлы 777 .. сейчас попробую переделать парсер под себя
MaGiS вне форума Ответить с цитированием
Старый 08.07.2010, 11:20   #8
MaGiS
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 15
По умолчанию

мне сервер вообще 404 выдаёт..

Warning: file_get_contents(http://sееу.ru/spisok.html) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/xexe/data/www/site.ru/script.php on line 12

хотя в браузере отображается, серв не правильно настроен?
MaGiS вне форума Ответить с цитированием
Старый 08.07.2010, 13:57   #9
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

возможно ограничения в .htaccess
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 08.07.2010, 15:41   #10
MaGiS
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 15
По умолчанию

Цитата:
Сообщение от LeoN Посмотреть сообщение
возможно ограничения в .htaccess
его снёс ещё до этого)
MaGiS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рассылка пользователям. (PHP) slavec PHP 4 22.03.2010 15:16
Изменять файл нескольким пользователям одновременно asale Microsoft Office Excel 2 20.04.2008 23:49
рассылка сообщений всем пользователям в чате, протокол UDP RKS Работа с сетью в Delphi 14 15.12.2007 11:36
Пользователям WebMoney и Яндекс - ??? нужен ли 'патч' Virtson Свободное общение 8 21.05.2007 12:43