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

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

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

    Tesson Banned

    Joined:
    27 Dec 2009
    Messages:
    164
    Likes Received:
    43
    Reputations:
    0
    Ищу скрипт закидать окнами
    может у кого есть? :)
     
  2. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    warlok, вот это близко к правде... но думаю, я не заметил еще какую-то проверку( завтра попробую еще поковырять
    PHP:
    <?php

    #---------------------------------------------------------------------------
    function noPost($url)
        {
           
    $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_COOKIEJAR"./cook");
           
    curl_setopt($chCURLOPT_COOKIEFILE"./cook");
           
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
           
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
           
    $result  curl_exec($ch);
           return 
    $result;
        }
    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;
        }
    #---------------------------------------------------------------------------
        
    $first noPost('http://digg.com/register/','','http://digg.com/register/');
    preg_match("#/captcha/(.*?).jpg#",$first,$capcha);
    //адрес картинки
    $Capch 'http://digg.com' $capcha['0'];
    //получаем картинку
    $img noPost($Capch,'','');
    //сохраняем в файл
    file_put_contents('captcha.jpg',$img );

    #---------------------------------------------------------------------------

    if(isset($_POST['captcha']))
    {
        echo 
    post('http://digg.com/register/',$_POST['captcha'] ,'http://digg.com/register/');
    }
    else
    {
        echo 
    '<img src="captcha.jpg"> <br />
        <form id="form1" name="form1" method="post" action="">
        <label>
            <input type="text" name="captcha[input]" id="captcha[input]" />
        </label>
        <input type="hidden" id="captcha[id]" name="captcha[id]" value="'
    .$capcha['1'].'" />
        <label>
            <input type="submit" name="button" id="button" value="Отправить" />
        </label>
        </form>'
    ;
    }

    ?>
    Tesson, пробей в гугле "javascript создание окон"
     
    1 person likes this.
  3. Опухоль

    Опухоль New Member

    Joined:
    23 May 2009
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    PHP:
    <?

    $fofopen("1.txt""a+");

     
    $file_array_dic file"slov.txt" );                                              // перевод строк в массив
     
    $file_array_basa file"basa.txt" );





     
    $s_s count($file_array_dic);                                                   //кол-во строк
     
    $s_b count($file_array_basa);




         for(
    $d=0$d <= $s_s$d++) {                                                    // пробегаем по словарю

         

             
    for ($b=0$b <= $s_b$b++){                                                // пробегаем по базе

                  
    $var=strpos($file_array_basa[$b], $file_array_dic);                     // проверка принадлежности подстроки к строке

                  
    if ($var 0)
                  
    fwrite($fo$file_array_basa[$b]. "PASS: "$file_array_dic[$d]. "\r\n" );  // если есть совпадение записывает в файл эти элементы
                 



             
    }

         }

         
    ?>
    Суть проблеммы в том, что программа видит совпадения только в последней строке словоря(судя по тому что она выводит в текстовой документ), если выводить весь лог операций видно что цикл построен правильно. тоесть программа способна увидеть совпадения только с последней строкой словоря. Я уже 4ый день туплю. буду очень благодарен тому кто поможет дописать\исправить программку что бы та проверяла на совпадение каждую строку базы с каждой строкой словоря.
     
  4. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    1)
    счетчик по file_array_basa используется, а счетчик по file_array_dic - нет
    как оно будет искать массив в строке?

    2)если искомое будет в начале строки, то $var будет 0 и условие не выполнется.
    можно сделать так:
    PHP:
    strpos('##' $file_array_basa[$b], $file_array_dic[$d], 2);
    (если у тебя не будет нигде строки, начинающейся с ##)

    3)переменная var не нужна...
    PHP:
    if( strpos('##' $file_array_basa[$b], $file_array_dic[$d], 2) )
          
    fwrite($fo$file_array_basa[$b]. "PASS: "$file_array_dic[$d]. "\r\n" );
     
  5. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    warlok, получай ручной авторегер
    PHP:
    <?php
    #-----------------------------------------
    #    Полуавтоматический авторегер digg.com 
    #    Автор phpdreamer
    #    03.04.10
    #-----------------------------------------

    function noPost($url//для получения данных по кукисам
    {
        
    $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_COOKIEJAR$_SERVER['DOCUMENT_ROOT'].'/cook.txt');
        
    curl_setopt($chCURLOPT_COOKIEFILE$_SERVER['DOCUMENT_ROOT'].'/cook.txt');
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    $result  curl_exec($ch);
        return 
    $result;
    }
    function 
    post($url,$post,$refer//для отправки post
    {
        
    $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$_SERVER['DOCUMENT_ROOT'].'/cook.txt');
        
    curl_setopt($chCURLOPT_COOKIEFILE$_SERVER['DOCUMENT_ROOT'].'/cook.txt');
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    $result  curl_exec($ch);
        return 
    $result;
    }
        
    function 
    generate($number//для генерации случайных строк
    {
        
    $arr = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','v','x','y','z',
                     
    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','R','S','T','U','V','X','Y','Z',
                     
    '1','2','3','4','5','6','7','8','9','0');
        
    $pass '';
        for(
    $i 0$i $number$i++)
        {
          
    $index rand(0count($arr) - 1);
          
    $pass .= $arr[$index];
        }
        return 
    $pass;
    }

    #---------------------------------------------------------------------------

    if(isset($_POST['captcha']) && isset($_POST['mail']))
    {
        
    $user generate(10);
        
    $password generate(12);
        
    //$email = $user '@gmail.com'; //мыла можно сочинять на ходу, вводить каждый раз, брать из файла или прикрутить авторегер мыл
        
    $email $_POST['mail'];
        
        
    $postQ 'username=' $user '&password[a]=' $password '&password[b]=' $password '&email=' $email '&newsletter=on&bestofdiggweekly=on&birthday[Month]=01&birthday[Day]=02&birthday[Year]=1970&captcha[input]=' $_POST['captcha'] . '&captcha[id]=' trim(file_get_contents('captcha.txt.tmp') );
        
    $res post('http://digg.com/register/',$postQ ,'http://digg.com/register/');
        
    file_put_contents($_SERVER['DOCUMENT_ROOT'].'/cook.txt','');//чистка кукисов
        
    if(strpos($res,'Now, please check your email'))
        {
            
    $fo fopen("accounts.txt""a+"); 
            
    fwrite($fo"$user;$password;$email\n" );
            
    fclose($fo);
            echo 
    'Успешно! <a href="'.$_SERVER['PHP_SELF'].'">нажмите для продолжения.</a>';
        }
        else
        {
        die(
    $res);
        }
    }
    else
    {
        
    $first noPost('http://digg.com/register/','','http://digg.com/register/');
        
    preg_match("#/captcha/(.*?).jpg#",$first,$capcha);
        
    //адрес картинки
        
    $Capch 'http://digg.com' $capcha['0'];
        
    //получаем картинку
        
    $img noPost($Capch);
        
    //сохраняем в файл
        
    file_put_contents('captcha.jpg',$img );

        
    ///test - вторая картинка
        
    $img noPost($Capch);
        
    file_put_contents('captcha2.jpg',$img );
        
    //записываем id капчи
        
    file_put_contents('captcha.txt.tmp',$capcha['1'] );
    #---------------------------------------------------------------------------


        
    echo '<img src="captcha.jpg"> <br /><img src="captcha2.jpg"> <br />
        <form id="form1" name="form1" method="post" action="">
        <label>
            <input type="text" name="captcha" />
        </label>
        <label>
            <br />email<input type="text" name="mail" value="'
    .generate(10).'@gmail.com" />
        </label>
        <label>
            <input type="submit" name="button" id="button" value="Отправить" />
        </label>
        </form>'
    ;
    }

    ?>
    Файлы:
    в accounts.txt будут записываться учетки (логи;пароль;мыло)
    captcha.jpg и captcha2.jpg - будет 2 экземпляра капчи (если на одной какой-то символ плохо видно, то его видно на другой)
    captcha.txt.tmp - временный файл с id капчи (в принципе, можно от него избавится, если добавить hiddenfield)
    в cook.txt (в корне сервера) будут куки
     
    #14705 phpdreamer, 3 Apr 2010
    Last edited: 3 Apr 2010
    1 person likes this.
  6. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    PHP:
    <?php
    if(isset($_POST['str']) && !empty($_POST['str']) && !is_array($_POST['str']) && strlen($_POST['str']) == 8)
    {
        
    $str $_POST['str'];
        for(
    $i=2,$j=strlen($str);$i<=$j;$i+=2)
            print 
    substr($str, -$i2);
    }
    else
    {
    print<<<HERE
    <form method="post">
        <input type="text" name="str">
        <input type="submit" value="OK">
    </form>
    HERE;
    }
    ?>
     
    _________________________
    1 person likes this.
  7. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    PHP:
    $string '9507F007';
    //проверка
    if(strlen($string) != 8)
        die(
    'должно быть 8 символов');
        
    $str1 substr($string,0,2);//вырезаем первые 2 символа    
    $str2 substr($string,2,2);//вырезаем 2-ые 2 символа    
    $str3 substr($string,4,2);//вырезаем 3-ые 2 символа
    $str4 substr($string,6,2);//вырезаем 4-ые 2 символа    

    $string $str4 $str3 $str2 $str1;
    echo 
    $string;
     
    1 person likes this.
  8. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Интересно, почему вы все стремитесь работать с числом как со строкой?
    Банально мыслите, господа.

    PHP:
    <?php 
    $num 
    123456789;
    while( ( int )
    $num )
        {
            
    $number = ( int )$num 10;
            
    $num /= 10;
            echo 
    $number;
        }
    ?>
     
  9. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    В задаче было поставлено "не только числа, но и буквы"
     
  10. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Хорошо, Я не обратил внимания. Возможно это произошло по той причине, что задание куда то пропало.
     
  11. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    не вежливо со стороны человека, который этот вопрос задавал :-\
     
  12. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Скажите мне задание =(
     
  13. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Даже с символами можно на много проще сделать:

    PHP:
    <?php 
    $num 
    '1a2b3c4d';
    $min strlen$num );

    for( 
    $i 0$min >= $i$min-- )
        {
            echo 
    $num[$min];
        }
    ?>
    --
    UPD: Хорошо было бы задание узнать.
     
    #14713 Ins3t, 3 Apr 2010
    Last edited: 3 Apr 2010
  14. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    то что ты написал делает ф-я strrev
    а задание было другое...
    уже проехали - есть 2 решения
    (решение от Kaimi - практичней, а мое - читабельней и понятней)
     
  15. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    Скажите скрипт для вывода ip адреса?
     
  16. emillord

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

    Joined:
    20 Jan 2008
    Messages:
    257
    Likes Received:
    444
    Reputations:
    255
    PHP:
    <?php
    $ip
    =$_SERVER['REMOTE_ADDR'];
    echo 
    "$ip";
    ?>
    [upd]
    Dr.Brain хватит посты набивать, флудер)
     
    #14716 emillord, 3 Apr 2010
    Last edited: 3 Apr 2010
  17. Dr.Brain

    Dr.Brain Banned

    Joined:
    4 Sep 2009
    Messages:
    6
    Likes Received:
    16
    Reputations:
    0
    Еще проще

    <?php
    echo $_SERVER["REMOTE_ADDR"];
    ?>
     
  18. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    <?php
    echo $_SERVER['REMOTE_ADDR'];
    ?>

    :D
     
    _________________________
  19. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Гениальная поправка.
     
    1 person likes this.
  20. Dr.Brain

    Dr.Brain Banned

    Joined:
    4 Sep 2009
    Messages:
    6
    Likes Received:
    16
    Reputations:
    0
    Нужно написать регулярку что будет заменять в html коде все ссылки (a href,js и т.п.) на ссылку домена самого скрипта.
    при этом не трогая адресс картинок...

    + как сделать так чтобы все картинки без адресса напр. <img src"/...."> заменялись на те что с адрессом


    ЗЫ Это 15555 ответ в этой теме
     
Thread Status:
Not open for further replies.