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

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

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

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Пишу код, который должен выводить пользователю определенный код каждые 20 минут.
    Тоесть код выведен, проходит 5 минут, код убирается. Когда после первого вывода прошло 20 минут - код появляется снова.
    PHP:
    <?php

    $code
    =file_get_contents('code.txt'); //Получаем нужный код для вывода
    $ip=$_SERVER['REMOTE_ADDR']; //Получаем IP адрес пользователя
    #####
    if(@filesize('base.txt')=='0'){
    $base[]=$ip.'|'.date('U')."|\n";
    echo 
    $code//Выводи код на страницу
    }else{
    $base=file('base.txt');
    foreach(
    $base as $line){
    $l=explode('|'$line);
    $ips[]=$l[0];
    $times[]=$l[1];
    }

    if(
    in_array($ip$ips)){
    $key=array_search($ip$ips);
    $d=$times[$key];
    if(
    date('U')>=$d 12){
    $base[$key]=$ip.'|'.date('U')."|\n";
    echo 
    $code;
    }

    }else{
    $base[]=$ip.'|'.date('U')."|\n";
    echo 
    $code;
    }
    }
    file_put_contents('base.txt'$base); //Записываем в файл

    ?>
    Прошу помочь подправить код, а то голова с утра не соображает вообще.
     
  2. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    <?php

    $Base 
    unserialize(file_get_contents('base.txt'));

    if(!
    array_key_exists($_SERVER['REMOTE_ADDR'], $Base))
    {
        
    $Base[$_SERVER['REMOTE_ADDR']] = time();
        
        echo 
    'код';
    }
    else
    {
        if(((
    time() - $Base[$_SERVER['REMOTE_ADDR']])/60)%20 5)
            echo 
    'код';
        else
            echo 
    'не код';
    }

    file_put_contents('base.txt'serialize($Base));
    так попробуй
     
  3. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    отправляю пост с использованием сурла пас и логин скрипту логин.пхп все проходит успешно.попадаю на страницу со строкой переадресации.отправляю опять курлом запрос уже гет на главную с рефером со скрипта логин.пхп.
    В ответ получаю вот такой текст ”No input file specified.”
    сразу поясню делаеться это не для плохого чего то...
    Что не так?
    Куки вписал от старой сессии.
     
  4. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    petryxa-mixa
    У меня есть скрипт он не работает так как в нем есть ошибка. Скажите что я делаю не так?
     
  5. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    сорри я писал в предыдущем посту.
    Скрипт авторизации на ачате.
    Скрипт не стал выкладывать потому что подумал что администрация не одобрит.
    Выкладывать?подскажешь?
     
  6. InSys

    InSys Member

    Joined:
    2 Feb 2012
    Messages:
    24
    Likes Received:
    20
    Reputations:
    31
  7. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Code:
    POST http://forum.antichat.ru/login.php HTTP/1.1
    Host: forum.antichat.ru
    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
    Connection: close
    Referer: http://forum.antichat.ru/index.php
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 137
    vb_login_username=Chaak&vb_login_password=&cookieuser=1&s=&do=login&forceredirect=1&vb_login_md5password=35bf8e958cde34282ea262a2d31b6e7b
    Отправь данные заголовки, должно сработать
     
  8. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Интересный пароль ты ввёл:D

    petryxa-mixa
    Если мне не изменяет память, то вроде бы пароль надо хэшировать так: md5(md5($password))

    update:
    Нет, хватает только одного md5($password)
     
    #20208 daniel777, 11 Mar 2012
    Last edited: 11 Mar 2012
    1 person likes this.
  9. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Не чисто мд5 это на булке, если на ачате все по дефолту то мд5.
    Полный url вроде только для хттп прокси надо?
     
  10. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    согласен так работает.
    Вот только что делать дальше?
    Там появляется страница с переадресацией.типа спасибо что зашли ник.если ваш браузер не поддерживает искуственной переадресации то нажите ссылку.я ее опять же нажимаю(гет способом соответственно) передовая реферрер как положе и в ответ выжу надпись пустой входной файл.
    Вот в этом и загвостка у меня.
    Я конечно понимаю что ты не эстрасен,но может кто писал такое дело или просто сталкивался.
    Если что то непонятно обрисовал спрашивайте.
     
    #20210 petryxa-mixa, 11 Mar 2012
    Last edited: 11 Mar 2012
  11. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    curl_setopt ($ch,CURLOPT_FOLLOWLOCATION,1);
     
  12. explosm

    explosm New Member

    Joined:
    9 Aug 2010
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    подскажите есть например число $y = 2412518
    Какой функцией мне достать оттуда (две последних цифры, если длинна переменной неизвестна ) чтобы например можно было записать так

    $z = 1, $m=8, $zm=18 (ну можно конечно конкатенацией $z.$m)

    :rolleyes: сорри нуб сижу с книгой но чет найти не могу норм
     
  13. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    explosm
    PHP:
    $var 2412518;
    echo (
    $var%100);
     
    _________________________
    2 people like this.
  14. explosm

    explosm New Member

    Joined:
    9 Aug 2010
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    УРА РАБОТАЕТ - просмотрит пожалуйста как работает код - вроде бы чудесно написано -если есть замечания напишите пожалуйста

    PHP:
    <?php  
    function nomer4 ($item) {  
    $kor"товар";  
    $ok1 "а";  
    $ok2 "ов";  
    print(
    $item);  


    $item1 substr($item, -1);  //тут требуется достать 1-ю цифру  
    $item2 $item%100;  // достаем 2 последние цифры  

    if ($item1 == and $item2 != 11)   
       { 
    $kor $kor; }  
            else {  
                    if (
    $item1 and $item1 and $item2 != 12 and $item2 != 13 and $item2 != 14) {  
                    
    $kor $kor.$ok1; } 
                                else  {
    $kor $kor.$ok2;} 
                 }  
    print (
    "<br>");
    print (
    $kor); 

    $item 21455541;  
    nomer4 ($item);  
    ?>

     
    #20214 explosm, 11 Mar 2012
    Last edited: 11 Mar 2012
  15. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    PHP:
    <?php
    $var 
    2412518;
    $m substr($var, -1);
    $z substr($var, -21);
    echo 
    $z.$m;
    ?>
    Если длина числа (в символах) будет меньше двух, то вывалится ошибка. Если такое возможно, надо организовать проверку.
     
    2 people like this.
  16. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    непомогает
     
  17. Dr.Z3r0

    Dr.Z3r0 Leaders of the World

    Joined:
    6 Jul 2007
    Messages:
    284
    Likes Received:
    595
    Reputations:
    567
    Нет, ошибка не вывалится, substr будет правильно обрабатывать такие позиции. Но на самом деле все гораздо проще, вычисляем остаток от деления на 100:
    PHP:
    $var=2412518;
    $sumb=$var 100;
     
  18. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Автор вопроса в предыдущем посте (который сам удалил почему-то) писал, что ему нужно узнать как последнюю, так и предпоследнюю цифры по отдельности, и что вариант остатка от деления на 100 ему не подходит поэтому. Хотя это тоже можно сделать полностью с помощью математики:

    PHP:
    $var 2412518;
    $z = (int)($var 100 10);
    $m $var 10;
    echo 
    $z.$m;
     
    1 person likes this.
  19. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    GRRRL Power На самом деле он хочет научиться получать множественную форму слов в зависимости от числа. Правда делает это через задницу.
     
    _________________________
  20. InSys

    InSys Member

    Joined:
    2 Feb 2012
    Messages:
    24
    Likes Received:
    20
    Reputations:
    31
    Кстати для этих целей я как раз писал свой класс StringPluralClass с поддержкой 120 различных языков мира. Использовать его так:
    PHP:
    echo("В вашей корзине " $count StringPlural::Plural($count, array('заказ''заказа''заказов')) . ".");
    echo(
    "На сумму " $price StringPlural::Plural($price, array('рубль''рубля''рублей')) . ".");
     
    2 people like this.
Thread Status:
Not open for further replies.