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

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

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

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    Это то пробовал. Ну мне надо чтобы именно число заходов на страницу записывалось. чтобы когда открою страницу и запишится в text.txt цифра "1" открою ещё раз эту же страницу уже запишется "2" и т.д
     
    #13441 VladZombie, 8 Jan 2010
    Last edited: 8 Jan 2010
  2. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    PHP:
    ?php

    $file 
    file('text.txt'); 
    $a=count($file);

    $filelog fopen("text.txt","a+"); //открываем файл базы
    $a=$a+;
    fwrite($filelog,$a <br />"); //записываем всё

    fclose($filelog); //закрываем


    ?>

    тогда так
     
    #13442 Kusto, 8 Jan 2010
    Last edited: 8 Jan 2010
  3. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    Он записывает у тебя почемуто через одну цифру 2,4,6 и т.д а надо чтобы просто менялось значение
     
  4. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    подправил (пробелы лишние в строке были) счас попробуй (вот эту строчку замени fwrite($filelog," $a <br />"); (я у себя там подкорректировал)

    если надо чтоб несоздавались записи в файле а просто например была цифра 5- при следующем заходе поменялась на цифру 6 (И Т Д чтоб нераздувать файл) завтра если время будет напишу там надо просто регулярку составить и перезаписывать цифру в тот-же файл) счас просто голова неварит уже
     
    #13444 Kusto, 8 Jan 2010
    Last edited: 8 Jan 2010
  5. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    может этот код исправишь?

    PHP:
    <?php  if ($text==1) { $file=fopen("text.txt","a+"); flock($file,LOCK_EX);  $count=fread($file,100); $count++;  ftruncate($file,0);  fwrite($file,$count);  flock($file,LOCK_UN);  fclose($file);  }   ?> 
    он записывает только через переменную а надо чтобы когда открываешь страницу и сразу записалось
     
  6. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Пытаюсь авторизоваться на сайте скриптом.. Получаю в ответ требование включить куки в браузере... Пробовал курлом, пробовал сокетами - всё равно...

    Вопрос: как сервак проверяет включены ли у меня куки и самое главное как убедить его, что они у меня включены..?!

    ПС: Врядли это джава скрипт, так как с отключённым ждава скриптом в браузере нормально авторизовываюсь....
     
  7. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    держи- вроде то что ты хочеш (на денвере работает)
    PHP:
    <?php

    $file 
    file_get_contents('text.txt'); 
    preg_match('(.*)'$file$out) ;
    $a=$out[0];

    $filelog fopen("text.txt","w+"); //открываем файл базы
    $a=$a+1;
    fwrite($filelog,$a "); //записываем всё

    fclose($filelog); //закрываем


    ?>
     
  8. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    спс то что надо )))
     
  9. Maxxxtri23

    Maxxxtri23 New Member

    Joined:
    20 Dec 2008
    Messages:
    76
    Likes Received:
    1
    Reputations:
    0
  10. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    202
    Likes Received:
    18
    Reputations:
    1
    Подскажите где моя ошибка. Понадобился список пользователей, на локалке нормально разбирает, а с сайта тянуть страницы не хочет:
    PHP:
    $ot='1';
    $do='2';
    $filelog=fopen('logname-seo.txt','a+');
    function 
    curl_ini(){
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
        
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
        
    curl_setopt($chCURLOPT_TIMEOUT10);
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
    curl_setopt($ch,CURLOPT_VERBOSE,1);
        return 
    $ch;}
    function 
    get_by_curl($url,$refer){
        
    $useragent='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1) Gecko/20061010 Firefox/2.0;MEGAUPLOAD 1.0';
        
    $ch=curl_ini();
        
    curl_setopt($chCURLOPT_URL,$url);
        
    curl_setopt ($chCURLOPT_USERAGENT$useragent);
        
    curl_setopt($chCURLOPT_REFERER$refer);
        
    $result=curl_exec ($ch);
        return 
    $result;}

    for(
    $q=$ot;$q<=$do;$q++)
    {    
        
    $pagemail=get_by_curl("http://forum.searchengines.ru/memberlist.php?page=$q",'http://forum.searchengines.ru/');
        
    preg_match_all('|<a href="member.php(.?)u=([0-9]+)">(.*?)<\/a>|is',$pagemail,$resku);
        for(
    $y=0;$y<=count($resku[3]);$y++)
        {
        echo 
    $resku[3][$y]."<br>";
        
    fwrite($filelog,$resku[3][$y]."\n");
        }
    }

    fclose($filelog);

     
  11. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Maxxxtri23 Почему бы не использовать прекрасный пример из мануала, поддерживающий произвольное количество клиентов и обрабатывающий отключение/подключение? http://ru.php.net/manual/en/function.socket-select.php#56241
     
    _________________________
  12. admink1

    admink1 Member

    Joined:
    12 Jun 2009
    Messages:
    63
    Likes Received:
    21
    Reputations:
    1
    приветствую всех :)
    не могу понять как написать цикл, а именно чтоб выдергивал из файла каждый раз 3 строчки и пусть будет выводил на экран.
    допустим при первой работе цикла он выдернул 1-3 строчки, втрой раз 3-6 строчки и так далее.
    благодарю :)
     
  13. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    подключись к файлу с помощью file() у тебя образуеться массив с ключами, в цикле укажи вывод переменной на экран (ну или трех) и каждый раз ключи этих переменных увеличивай на 1
     
    #13453 Kusto, 8 Jan 2010
    Last edited: 8 Jan 2010
  14. admink1

    admink1 Member

    Joined:
    12 Jun 2009
    Messages:
    63
    Likes Received:
    21
    Reputations:
    1
    можно пожалуйста немного кода набрасать, трудновато пока

    вот то что сделал:
    PHP:
    $k "name.txt"
    $data file_get_contents($k); 
    $mas explode("\r\n",$data); 
    for (
    $i=0$i<count($mas); $i++) 
    {
    print 
    $mas[$i]";
    }
    а вот как +3 сделать не знаю
     
  15. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    блин- зачем так сложно? прийду через часик- набросаю
     
  16. svesve

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

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    Есть у когонить пример авторизации на Yandex.ru ?

    Задача такая, надо авторизоваться на yandex.ru и запостить запись в дневник.

    PHP:
    <?php
    $login
    ='user';
    $pass='pass';

    $ch curl_init('https://passport.yandex.ru/passport?mode=auth');
    curl_setopt ($chCURLOPT_HEADER1); 
    curl_setopt ($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
    curl_setopt ($chCURLOPT_POST1);
    curl_setopt ($chCURLOPT_COOKIEJAR'C:/wamp/www/default/ya/cookie.txt');
    curl_setopt ($chCURLOPT_COOKIEFILE'C:/wamp/www/default/ya/cookie.txt');
    curl_setopt ($chCURLOPT_POSTFIELDS'login='.$login.'&passwd='.$pass.'&twoweeks=yes&retpath=http://my.ya.ru/&timestamp=1262909700829&kspace=beta.ya.ru');
    curl_setopt ($chCURLOPT_RETURNTRANSFER0);
    curl_setopt ($chCURLOPT_FOLLOWLOCATIONtrue);
    curl_setopt ($chCURLOPT_SSL_VERIFYPEER0);
    curl_setopt ($chCURLOPT_SSL_VERIFYHOST0);
    $result curl_exec ($ch);
    curl_close ($ch);
    echo 
    $result;
    ?>
    после авторизации он мне говорит что куки у меня выключены, хотя файлик с куками не пустой.

    если постить запись в дневник с уже подставленными куками
    то все пашет норм.
    PHP:
    <?php
    $ch 
    curl_init('http://user.ya.ru/ajax/post_do_save.xml');
    curl_setopt ($chCURLOPT_HEADER1); 
    curl_setopt ($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
    curl_setopt ($chCURLOPT_POST1);
    curl_setopt ($chCURLOPT_COOKIE'тут подставленные куки');
    curl_setopt ($chCURLOPT_POSTFIELDS'access_type=public&replies=1&title=1&tags=&tag=&=%20%2B%20&=%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C&=%D0%9E%D1%82%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C&=&submit_btn=%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C&type=text&feed_id=81083193&body=1');
    curl_setopt ($chCURLOPT_RETURNTRANSFER1);
    curl_setopt ($chCURLOPT_FOLLOWLOCATIONfalse);
    $result curl_exec ($ch);
    curl_close ($ch);
    echo 
    $result;
    ?>
    Кто что может подсказать ?
    как можно аторизоваться и запостить одновременно?
     
    #13456 svesve, 8 Jan 2010
    Last edited: 8 Jan 2010
  17. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    То admink1 Вернулся я, держи свой скрипт
    PHP:
    <?php
    $k 
    file('name.txt');// получаем массив
    $a=array_chunk($k,3); // делим массив на подмассивы по 3 элемента
    foreach ($a as $c => $d){//выводим полученные тройки
    echo " Выводим $c -ый раз : <ul>";
    foreach (
    $d as $f) echo "<li> $f";
    echo 
    "</ul>"
    }
    ?>
    результат примерно такой

    Выводим 0 -ый раз :
    25
    456
    789
    Выводим 1 -ый раз :
    425
    456
    7851
    Выводим 2 -ый раз :
    54698
    52145
    25469

    там подправиш если что нетак
     
    #13457 Kusto, 8 Jan 2010
    Last edited: 8 Jan 2010
  18. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510

    посмотри мой курл (счас непроверял- раньше работал)
    PHP:
      
           
    function post($url,$post,$refer
        { 
           
    $ch curl_init($url); 
           
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4"); 
           
    curl_setopt($chCURLOPT_POST1); 
           
    curl_setopt($chCURLOPT_POSTFIELDS$post); 
           
    curl_setopt($chCURLOPT_REFERER$refer); 
           
    curl_setopt($chCURLOPT_COOKIEJAR"./cook"); 
           
    curl_setopt($chCURLOPT_COOKIEFILE"./cook"); 
           
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
           
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
           
    $result  curl_exec($ch); 
           return 
    $result;      
     
        }
     
    #13458 Kusto, 8 Jan 2010
    Last edited: 8 Jan 2010
  19. admink1

    admink1 Member

    Joined:
    12 Jun 2009
    Messages:
    63
    Likes Received:
    21
    Reputations:
    1
    результат вот такой:
    Code:
    Выводим 0 -ый раз : 
    1 
    2 
    3 
    Выводим 1 -ый раз : 
    4 
    5 
    7 
    Выводим 2 -ый раз : 
    8 
    9
    10
    
    блин, как я понимаю он выводит подмассивами, а некаждую строку отдельно.
    ps нужно чтоб вывел вначале 1, потом 2, 3. при следующем повторе цикла вначале 4, потом 5, 6
    спасибо, и сорри за настойчивость :)
     
  20. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Когда-то писал, сейчас незнаю работает или нет, проверь.

    PHP:
    function login($login,$pass)
    {

    $ch curl_init('https://passport.yandex.ru/passport?mode=auth');
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
    curl_setopt($chCURLOPT_REFERER'https://passport.yandex.ru/passport?mode=auth');
    curl_setopt($chCURLOPT_COOKIEJAR$_SERVER['DOCUMENT_ROOT'].'cook.txt');
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS"login=$login&passwd=$pass");
    curl_setopt($chCURLOPT_TIMEOUT10);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
    $res curl_exec($ch);
    if(
    preg_match('#https:\/\/passport\.yandex.ru\/passport\?mode=logout#',$res))
    return 
    true;    
    }
     
Thread Status:
Not open for further replies.