За последние 24 часа нас посетили 16763 программиста и 1694 робота. Сейчас ищут 868 программистов ...

помогите, не могу понять почему скрипт так себя ведет :(

Тема в разделе "Прочие вопросы по PHP", создана пользователем feniks_iopok, 28 апр 2011.

  1. feniks_iopok

    feniks_iopok Активный пользователь

    С нами с:
    28 апр 2011
    Сообщения:
    3
    Симпатии:
    0
    PHP:
    1. function GetRealIp()
    2. {
    3.  if (!empty($_SERVER['HTTP_CLIENT_IP']))
    4.  {
    5.    $ip=$_SERVER['HTTP_CLIENT_IP'];
    6.  }
    7.  elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    8.  {
    9.   $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    10.  }
    11.  else
    12.  {
    13.    $ip=$_SERVER['REMOTE_ADDR'];
    14.  }
    15.  return $ip;
    16. }
    17.  
    18. $ip = getRealIp();
    19.  
    20.  
    21.  
    22.  
    23. $ips = file("ip.txt");
    24. $i=0;
    25. $j=0;
    26.  
    27.     foreach ($ips as $value) {
    28.     if ($value == $ip) { $i=$i+1; }
    29.    
    30. }
    31. echo $i;
    вообще мне нужно сделать так:
    пользователь зашел на страницу, его айпи занесся в переменную. затем проверяется сколько раз его айпи повторяется в документе (ip.txt). если меньше 5 то его айпи заносится в этот документ, и он пропускается к дальнейшим действиям на сайте. в обратном случае выдается сообщение что вы привысили лимит. знаю как сделать все это, кроме этого счетчика. как узнать сколько раз айпи пользователя повторяется в документе? (в одной строке один айпи)

    этот скрипт работает не корректно, он считает только последнюю строку в документе и выдает либо 1 либо 0. если в последней строке мой айпи то 1 , если что-то другое то 0. а повторения в середине документа он не считает :(

    помогите исправить этот скрипт или предложите альтернативу. пожааалуйста.
     
  2. feniks_iopok

    feniks_iopok Активный пользователь

    С нами с:
    28 апр 2011
    Сообщения:
    3
    Симпатии:
    0
    там переменная j лишняя, не обращайте внимания.
     
  3. ritkir

    ritkir Активный пользователь

    С нами с:
    22 апр 2011
    Сообщения:
    3
    Симпатии:
    0
    $ips = file_get_contents("ip.txt");
    $ips = explode("\r\n",$ips);

    $i=0;

    foreach ($ips as $value)
    {

    if ( strcasecmp($value,$ip) == 0 ) { $i++; }
    }
    echo $i;