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

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

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

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Чето непойму где ошибка. хочу модернизировать свой скрипт чтобы вступал в группы по диапазону и добавлял фотку.

    вот скрипт
    PHP:
    <form method="POST">
    <center>
    Email:<input type="text" name="email"><br>
    Pass:<input type="text" name="pass"><br>
    Стартовать с ID:<input type="text" name="start"><br>
    Закончить на ID:<input type="text" name="end"><br>
    Таймаут:<input type="text" name="sleep"><br>
    <input type=submit value="НАчать РАботать!!!"></center>

    <?php

    //Бот для вступления в группы и встречи по диапазону...


    set_time_limit(0);

    function 
    curl($url,$post)
    {
    $cfile 'cookies.txt';
    $ch curl_init();
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    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_URL$url);
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_POSTFIELDS$post);
    curl_setopt($chCURLOPT_COOKIEJAR$cfile);
    curl_setopt($chCURLOPT_COOKIEFILE$cfile);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_POST1);
    $result curl_exec($ch);
    curl_close($ch);
    return 
    $result;
    };


    $start $_POST['start'];
    $end $_POST['end'];
    $email $_POST['email'];
    $pass $_POST['pass'];
    $sleep $_POST['sleep'];

    if(!
    $email||!$pass||!$start||!$end||!$sleep){exit;}
    $result curl("http://vkontakte.ru/login.php","email=$email&pass=$pass");

        for(
    $i=$start$i<=$end$i++)
    {
    //$rand = rand(1, 21);
    $foto 'C:\foto.jpg';

        
    $result curl("http://vkontakte.ru/club".$i,"");
        
    preg_match_all ('#</li><li><a href=\'(.*)\'>#iU'$result$regs);
        
    $ssil $regs[1][0];

        
    $result curl("http://vkontakte.ru".$ssil,"");


        
    preg_match_all ('#\/photos\.php\?act=add(.*)\"#iU'$result$regs);
        
    $photo $regs[0][0];
        
    $photo str_replace('"'''$photo);
        
    $photo "http://vkontakte.ru".$photo;

        
    $result curl($photo,"");

        echo 
    $result;

        
    preg_match_all ('#upload\" action=\"(.*)\"#iU'$result$regs);
        
    $ssil $regs[1][0];

        
    preg_match_all ('#name=\"id\" value=\"(.*)\"#iU'$result$regs);
        
    $id $regs[1][0];

        
    preg_match_all ('#name=\"mid\" value=\"(.*)\"#iU'$result$regs);
        
    $mid $regs[1][0];

        
    preg_match_all ('#name=\"hash\" value=\"(.*)\"#iU'$result$regs);
        
    $hash $regs[1][0];

        
    preg_match_all ('#name=\"rhash\" value=\"(.*)\"#iU'$result$regs);
        
    $rhash $regs[1][0];

        echo 
    "<br>".$ssil."<br>".$id."<br>".$mid."<br>".$hash."<br>".$rhash."<br>".$i."<br>";
         
    $result curl($ssil, array( 'act' => 'do_add',
                       
    'id' => $aid,
                       
    'aid' => $aid,
                       
    'gid' => $i,
                       
    'mid' => $mid,
                       
    'hash' => $hash,
                       
    'rhash' => $rhash,
                       
    'vk' => 0,
                       
    'file1' => "@".$foto));
      echo 
    $result;

    /*
    sleep(2);


    $result = curl("http://vkontakte.ru/events.php?act=s&gid=".$i,"");
        preg_match_all ('#<a href=\"events\.php\?act=enter\&gid=(.*)\">#iU', $result, $regs);
        $ssil = $regs[1][0];
    $result = curl("http://vkontakte.ru/events.php?act=enter&gid=".$ssil,"");
    sleep($sleep);
    */
    }
    ?>
    надаюсь поможете. а то завтра уезджаю, времени уже завтра небудет, а изза того что скрипт не закончил отдохгуть нормально не смогу :(
     
  2. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    zifanchuck
    каким образом ты пытаешся авторизироватся на вкантакте? Невижу просто парс сессии.
     
  3. TweakeR

    TweakeR Member

    Joined:
    6 Feb 2006
    Messages:
    54
    Likes Received:
    8
    Reputations:
    5
    Авторизация там проходит, вопрос как изображение загрузить.
     
  4. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Там ее и парсить ненадо, все норм работает. в группы вступает а вот картинку загружать нехочет((
     
  5. TweakeR

    TweakeR Member

    Joined:
    6 Feb 2006
    Messages:
    54
    Likes Received:
    8
    Reputations:
    5
    дошёл до такого результата:
    PHP:
    HTTP/1.1 100 Continue

    HTTP/1.1 302 Found
    Server
    nginx/0.7.59
    Date
    Tue13 Oct 2009 09:16:50 GMT
    Content
    -Typetext/htmlcharset=windows-1251
    Connection
    keep-alive
    X
    -Powered-ByPHP/5.2.0-8+etch13
    Pragma
    no-cache
    Cache
    -control: private, must-revalidate
    Location
    http://vk.com/photos.php?act=done_add&mid=11299865&aid=97211801&gid=0&server=4166&photos=8acc51df52x&hash=d133027aebf89a1c55163ddd4b3224bd
    Content-Length0
     
  6. [K4t]

    [K4t] New Member

    Joined:
    15 Feb 2009
    Messages:
    53
    Likes Received:
    4
    Reputations:
    1
    WVBR, спасибо. но мудрённо очень ) переменные непонять какие. но если долго посидеть...
     
  7. WVBR

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

    Joined:
    14 Feb 2008
    Messages:
    45
    Likes Received:
    17
    Reputations:
    0
    ты скинь полный вариант скрипта я заточу тебе под конкретную задачу, тебе нужен постраничный вывод, например по принципу выдачи серча в гугл я правильно понял?
     
  8. crazy~driver

    crazy~driver Member

    Joined:
    21 Dec 2008
    Messages:
    97
    Likes Received:
    14
    Reputations:
    4
    подскажите, при записи в txt файл все данные записываются в одну строку. как сделать перевод строки? Чтобы каждая новая запись производилась со следующей строки



    PHP:
    /*if (strtoupper(substr(PHP_OS,0,3)) === "WIN")
    {
    $per = 'rn'; // перевод строки для Windows-систем
    }
    else
    {
    $per = 'n'; // перевод строки для UNIX-систем
    }
    */

    $adres="http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    $file=fopen ("module/deystvie.txt","a");
    fwrite ($file,$adres);
    fclose ($file);
     
    #12208 crazy~driver, 13 Oct 2009
    Last edited: 13 Oct 2009
  9. wildshaman

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

    Joined:
    16 Apr 2008
    Messages:
    477
    Likes Received:
    483
    Reputations:
    99
    fwrite ($file,$adres."\r\n");
     
    1 person likes this.
  10. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    PHP:
    fwrite ($file,$adres."\r\n");
     
    3 people like this.
  11. REBUUS

    REBUUS Active Member

    Joined:
    6 Apr 2009
    Messages:
    314
    Likes Received:
    111
    Reputations:
    9
    ПХП злодей, у меня такой вопрос, есть БД ну допусти чата где хранятся к слову (ник,сообщение) надо мне вывести тор-10 у кого сумма сообщений больше всего , какой ни будь кривой скрипт но рабочий я сам могу, надо что бы быстро выводил и не перебирал базу по сто раз
    или может как то в одном запросе к БД можно сделать это. на пример:
    select nic , count(mes) from ... order by count(mes) limit 10
     
    1 person likes this.
  12. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    PHP:
    select nickcount(mes) as cnt from таблица group by nick order by cnt desc limit 0,10
     
    2 people like this.
  13. -Денис-

    -Денис- Elder - Старейшина

    Joined:
    26 Aug 2008
    Messages:
    79
    Likes Received:
    13
    Reputations:
    0
    Вопрос такой, мне необходимо периодически с сайта (гдето раз в 5 сек) подгружать определенную информацию (несколько цифровых значений) для отображения этих данных на странице, обновлять всю страницу будет слишком долго и будет расходоваться много трафика. Т.е. это должно быть чтото наподобии регистрации на mail.ru, когда производится проверка занятости ящека. Интересует как это можно организовать на php с учетом того что это выполнять будет самописный компонент для joomla
     
  14. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    Используй технологию AJAX (на JS).
    Например, подключаешь к странице js-фреймворк jQuery (jquery.com), затем в коде пишешь:

    PHP:
    $.getJSON("http://site.com/page.php?get_json_data", function(data) {
        
    // Операции с объектом data 
        // (берёшь его поля и рассовываешь по нужным тегам)
        
    $("#имя_элемента").text(data.SomeField);
    });
    Ссылка http://site.com/page.php?get_json_data должна отсылать клиенту объект с данными в формате json.

    Как выставить периодическое выполнение - почитай в мануале.
     
    #12214 [х26]VОLАND, 14 Oct 2009
    Last edited: 14 Oct 2009
  15. Patronik

    Patronik Member

    Joined:
    16 Mar 2009
    Messages:
    111
    Likes Received:
    12
    Reputations:
    0
    Есть проблема с сесиями в пхп. На локалхосте написал сценарий для хранения в сесии некоторых даных, и все прекрасно работало, но после закачки на хостинг сесии почему то не работают нормально. Ошыбки не выдает, а просто не работает.
    Листинг файла таков
    PHP:
    <?php
    session_start
    ();
        
    $id $_GET['id'];

           if(
    $id)
        {

                
    $cart = array();
                
    $totalPrice 0;
                
    $_SESSION['totalPrice'];

            if(
    $_SESSION['cart'][$id]) // если есть такой тогда увеличиваем на единицу
            
    {
            
    $_SESSION['cart'][$id]++;
            }
            else    
    // Если нет тогда создаем
            
    {
                
    $_SESSION['cart'][$id]=1;
            }


        }

    ?>
    проблема в том что новые елементы масива cart не создаються так как будто они храняться не в масиве сесий а в обычном масиве. То есть они не сохраняються после перехода между страницами. Непойму в чем дело. Могут ли настройки на хостинге влиять на работу сесий?
     
  16. Patronik

    Patronik Member

    Joined:
    16 Mar 2009
    Messages:
    111
    Likes Received:
    12
    Reputations:
    0
    PHP код:
    $cart = array();
    $totalPrice = 0;
    $_SESSION['totalPrice']

    Что делает 3 строка? оО
    В етой строке об`вляеться переменная totalPrice. Но дело не в етом. А дело в том что на локалхосте все пашет и нормально создаються переменние и передаються сесией по страницам. А на хостинге виглядит как обычный масив и каждий раз просто создает в масиве $_SESSION один елемент как будто ето обычный масив а не масив сесии, и после вихода не сохраняет.
     
  17. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    session_start();
    юзай перед использованием массива сессий
     
  18. Patronik

    Patronik Member

    Joined:
    16 Mar 2009
    Messages:
    111
    Likes Received:
    12
    Reputations:
    0
    я использую, полний код два поста више
     
  19. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    А где у вас
    PHP:
    $_SESSION['cart']=$cart;
    ?
     
  20. Patronik

    Patronik Member

    Joined:
    16 Mar 2009
    Messages:
    111
    Likes Received:
    12
    Reputations:
    0
    А зачем ето делать?
    У меня так
    PHP:
    <?php
    session_start
    ();
        
    $id $_GET['id'];

           if(
    $id)
        {

                
    $cart = array();
                
    $totalPrice 0;
                
    $_SESSION['totalPrice'];

            if(
    $_SESSION['cart'][$id]) // если есть такой тогда увеличиваем на единицу
            
    {
            
    $_SESSION['cart'][$id]++;
            }
            else    
    // Если нет тогда создаем
            
    {
                
    $_SESSION['cart'][$id]=1;
            }


        }

    ?> 
    У меня сначала обявляеться
    $cart = array();
    Потом он стает елементом масива $_SESSION (получаеться многомерный масив) А потом просто циклом прохожу по $_SESSION['cart'].
    foreach ($_SESSION['cart'] as $item=>$countitems)
    {
    echo ' Товар '.$item.' Количество '.$countitems.' ';
    }

    И все работает на денвере. А на хостинге в $_SESSION['cart'] не сохраняеться ничего, а каждий раз просто новый елемент появляеться.
    На всех старницах где требуеться использовать $_SESSION['cart'] стартует сесия сначала типа так:
    <?php
    session_start();
    ?>
     
Thread Status:
Not open for further replies.