[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    незнаю как остальные, но я нечё не понял из того что ты хочешь,
    в любом случае,
    1) строка это массив из char, так что составляй нужное условие и юзай как массив, или
    2) используй explode если нужно занести в массив отдельно каждое слово
     
  2. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    заметил что в логах не у всех фиксируется хост, вместо имени провайдера пишется Ip.
    из за чего такое может быть ? и как определить хост у них ?
    например вместо ppp158-255-172-189.pppoe.spdop.ru показывается обычный ip 107.170.106.236 - такой же как если бы определял только ip

    определяю так:
    PHP:
    <?php echo $host gethostbyaddr($_SERVER['REMOTE_ADDR']);?>
     
  3. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    910
    Reputations:
    863
    Обычный массив данных, работай как с массивом многоуровневым!
     
    _________________________
  4. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    чем можно отличить, посещение сайта ботом, если useragent пользовательский ?
    есть страница в которую вставлен iframe
    страница ведёт логирование, нужно фиксировать в логи прочитан был ли iframe при загрузки данной страницы

    нужно всё сделать без cookies и js.
    можно ли реализовать такую проверку только на php без cookies?
     
    #22284 GAiN, 18 Sep 2014
    Last edited: 28 Sep 2014
  5. RazArt

    RazArt New Member

    Joined:
    15 Jun 2009
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    gain, временем между запросами, как вариант
     
  6. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    проверяю работу блокировки по реферер, если например запретить в списке доступ с домена первго уровня .uk, то блокирует кроме него любой url где содержится uk слово
    в списке прописано всё с маской:
    *.uk
    должно блокировать все домены заканчивающиеся на .uk
    PHP:
    <php?
    //проверка referer
    $mask_ref_dir $_SERVER['DOCUMENT_ROOT'] .'/spisok/'.'referers.txt';
    $a001 '1';
    $b002 '0';
         
    $file_ref_mask array_map('trim'file($mask_ref_dir)); #загоняем файл в массив 
         
    foreach ($file_ref_mask as $expression_ref#цикл - обработка каждого элемента массива 

         
    {
             
    $expression_ref str_replace('.''\.'$expression_ref);    #подгоняем строку под регулярку 
             
    $expression_ref str_replace('/''\/'$expression_ref);    #подгоняем строку под регулярку 
             
    $expression_ref str_replace('*''(.*)'$expression_ref); #подгоняем строку под регулярку
             
    if (preg_match('#' $expression_ref '#'$_SERVER['HTTP_REFERER'])) #проверяем реферер по регулярке
             
    {
    header("X-Frame-Options: DENY");
    header('Content-Type: text/html; charset=UTF-8');
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache"); // HTTP/1.1 
    header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
    header('X-Powered-By: BAN REFERER');
    header($_SERVER['SERVER_PROTOCOL'] . '404 Not Found');
    header('HTTP/1.1 404 Not Found');
    header('Status: 404 Not Found');
    echo 
    '<meta http-equiv="refresh" content="0; url='.$redirect.'">';
    exit();
    $b002='1';
             }
         }
    if (
    $a001 $b002)
    {
    //
    }
    ?>
    поправьте пожалуйста
     
  7. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Так не легче?
    PHP:
    if(end(explode('.'parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST))) == 'ru')
    $ban true;
     
  8. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    нужно что бы была возможность постановки маски, что бы блокировать домены, поддомены, часть имени домена, корневой домен, в моём коде маска не действует...
     
  9. RazArt

    RazArt New Member

    Joined:
    15 Jun 2009
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    Так разбей просто на составляющие и бегай по массиву, сравнивая с регуляркой каждый домен, только сделай реверс массива
     
  10. hpol

    hpol Elder - Старейшина

    Joined:
    11 Dec 2013
    Messages:
    62
    Likes Received:
    16
    Reputations:
    15
    Как взять произвольный файл из директории не зная его названия, и занести дату его создания в переменную.
     
  11. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75

    http://www.php.su/readdir
    http://php.net/manual/ru/book.filesystem.php
     
  12. hpol

    hpol Elder - Старейшина

    Joined:
    11 Dec 2013
    Messages:
    62
    Likes Received:
    16
    Reputations:
    15
    Code:
    $filename = 'index.php';
    if (file_exists($filename)) {
    filemtime($filename));
    }
    touch ('file.php', strtotime('$filename'));
    
    почему то вместо даты изменения индекса , 1969 год ставит
     
  13. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    910
    Reputations:
    863
    Читай справочник, все корректно расписано с примером!
    http://ru2.php.net/manual/ru/function.filemtime.php

    P.S: Чуствую еще может возникнуть вопрос по strtotime, об этом также читаем в справочнике с примерами http://ru2.php.net/manual/en/function.strtotime.php
     
    _________________________
    #22293 winstrool, 26 Sep 2014
    Last edited: 26 Sep 2014
  14. hpol

    hpol Elder - Старейшина

    Joined:
    11 Dec 2013
    Messages:
    62
    Likes Received:
    16
    Reputations:
    15
    Code:
    <?php
    $filename = 'index.php';
    $date = 'echo "". date ("Y-m-d H:i:s", filemtime($filename))';
    touch ('file.php', strtotime('$date'));
    ?>
    что не так не могу понять
     
  15. t3zo

    t3zo Member

    Joined:
    18 Feb 2010
    Messages:
    51
    Likes Received:
    14
    Reputations:
    5
    имеется поле test, utf8-generalci
    2C - записывается как 2\u0<какие-то еще цифры, не помню>- странно,
    Ну это ладно.... Проблема в том, что: Делаю выборку из БД и перезаписываю параметр - "\" исчезает...
    Если добавить функцию mysql_escape_string, то раз через раз, появляется слеш
    Как с этим побороться?
     
  16. Грабитель

    Joined:
    5 Mar 2013
    Messages:
    196
    Likes Received:
    12
    Reputations:
    -7
    $param_test = text'; М?
    Может очепятка или у тебя в скрипте это? Тогда синтаксическая ошибка. Даже античатовский синтаксис подсвечивает.
     
  17. t3zo

    t3zo Member

    Joined:
    18 Feb 2010
    Messages:
    51
    Likes Received:
    14
    Reputations:
    5
    Слабо понял, чего ты хочешь.... Но вдруг угадаю, твой вопрос
    $a = 1
    echo 'var: $a'; // выведет var: $a
    echo 'var: '.$a; // выведет var: 1
    echo "var: $a"; // выведет var: 1

    p,s, к постуу выше
     
  18. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    php код в htaccess

    можно ли исполнять php код в .htaccess ?

    нужно подключить geoip, и редиректить не phpшными страницами а через apache
    или как взаимодействовать на .htaccess через php, что бы каждый запрос - проверяется через api и если не соответствует то .htaccess выдаёт код 404 и редиректит на соответственную страницу
     
  19. Todin

    Todin Member

    Joined:
    28 Jan 2011
    Messages:
    47
    Likes Received:
    7
    Reputations:
    0
    GAiN, как вариант установить mod_geoip
    и тогда можно редиректить через .htaccess

    RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^RU$
    RewriteRule ^(.*)$ http://www.canada.com$1 [L]
     
    1 person likes this.
  20. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    нужно проверить реферер по шаблону, например если в txt списке файлов реферер, а именно не полный реферер, а часть его, например forum. совпадёт по части и будет содержаться в переменной http_referer то отфильтровать, скрипт должен выдать вхождение найдено.
    как проводить разделение переменной $_SERVER[" HTTP_REFERER"] на состовляющие ?


    PHP:
    <?php
    header
    ("Content-Type: text/html; charset=utf-8");

    $file_content file_get_contents($_SERVER['DOCUMENT_ROOT'] .'/referer.txt');
    $word_name $_SERVER[" HTTP_REFERER"];
    $search_fraza $file_content;
    if (
    preg_match("/\b$word_name\b/i""$search_fraza")) {
        echo 
    "Вхождение найдено.";
    } else {
        echo 
    "Вхождение не найдено.";
    }
    сейчас код работает если совпадает полностью реферер со списком
     
Thread Status:
Not open for further replies.