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

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

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

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    ну ето уже не относится к php ето больше к джаваскрипт, функция javascript:window.open
















    ТУТ возник такой вопрос, нужно авторизоватся на форум IPB и создать тему

    пост данные выглядят так

    PHP:
    <input type='hidden' name='act' value='Post' />
    <
    input type='hidden' name='s' value='' />
    <
    input type='hidden' name='f' value='201' />
    <
    input type='hidden' name='auth_key' value='0b636b48819787da8b5fa48c2c27185b' />
    <
    input type='hidden' name='removeattachid' value='0' />
    <
    input type='hidden' name='MAX_FILE_SIZE' value='102400000' />
    <
    input type='hidden' name='CODE' value='01' />
    <
    input type='hidden' name='attach_post_key' value='44a6b7fccccb10d1b2017bab32464721' />
    етот ключ

    PHP:
    <input type='hidden' name='attach_post_key' value='44a6b7fccccb10d1b2017bab32464721' />
    меняется при каждом отерытии формы отправки, вопрос как отправить пост запрос,

    вот мой код

    PHP:
    $cur=curl_init();        
    curl_setopt($curCURLOPT_URL'http://site.ru/index.php?act=Login&CODE=01&CookieDate=1');     
    curl_setopt($cur,CURLOPT_USERAGENT,"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10");     
    curl_setopt($cur,CURLOPT_COOKIEJAR,'cookie.txt');        
    curl_setopt($cur,CURLOPT_COOKIEFILE,'cookie.txt');       
    curl_setopt($cur,CURLOPT_RETURNTRANSFER,1);        
    curl_setopt($curCURLOPT_POST1);          
    curl_setopt($curCURLOPT_POSTFIELDS"referer=$refer&UserName=login&PassWord=pass&CookieDate=1&Privacy=1");     
    curl_exec($cur);    
    curl_close($cur);     


    $cur=curl_init();        
    curl_setopt($curCURLOPT_URL'http://site.ru/index.php?act=post&do=new_post&f=201');     
    curl_setopt($cur,CURLOPT_USERAGENT,"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10");     
    curl_setopt($cur,CURLOPT_COOKIEJAR,'cookie.txt');        
    curl_setopt($cur,CURLOPT_COOKIEFILE,'cookie.txt');       
    curl_setopt($cur,CURLOPT_RETURNTRANSFER,1);          
    $doc curl_exec($cur);    
    curl_close($cur);   
    preg_match("/<input type=\'hidden\' name=\'attach_post_key\'(.*?)\/>/",$doc$aa);
    preg_match("/[a-zA-Z0-9]{10,100}/",$aa[0], $bb);



    $cur=curl_init();        
    curl_setopt($curCURLOPT_URL,'http://site.ru/index.php?' );     
    curl_setopt($cur,CURLOPT_USERAGENT,"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10");     
    curl_setopt($cur,CURLOPT_COOKIEJAR,'cookie.txt');        
    curl_setopt($cur,CURLOPT_COOKIEFILE,'cookie.txt');       
    curl_setopt($cur,CURLOPT_RETURNTRANSFER,1);     
    curl_setopt($curCURLOPT_POST1);          
    curl_setopt($curCURLOPT_POSTFIELDS"act=Post&f=201&auth_key=47442e6ac2fd23311b01a0db9ed438b1&removeattachid=0&MAX_FILE_SIZE=102400000&CODE=01&attach_post_key=$bb[0]&TopicTitle=$theme&TopicDesc=0&Post=$mypost");     
     
    curl_exec($cur);    
    curl_close($cur);  

    но такой вариант естественно неподходит, как быть? помогите исправить код штобы он работал плыз

    никто непоможет?
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    qaz LiveHTTPHeaders в руки и копируйте запрос. И откройте для себя мир процедурного программирования, не лень было копировать строчки, плюс, возможно, вы там родили опечатку
     
    _________________________
  3. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    а зачем мне копировать запрос? я и так знаю што там должно передаватся, раньше всё работало пока ту переменную
    PHP:
    <input type='hidden' name='attach_post_key' value='44a6b7fccccb10d1b2017bab32464721' />  
    не сделали динамической при каждой отправке формы,

    у меня вопрос в другом, я незнаю как одним сиансом курла можно и спарсить нужную страницу+ключ и отправить пост запрос
     
  4. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    qaz, ковыряйте строки с preg_match(). И обращение к элементу массива в двойных кавычках у вас неверный
     
  5. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    спарсить то что надо я смогу, в этом проблемы нету,
    как мне составить курл чтоб одновременно я мог и спарсить нужный код с одной страницы и сразуже отправить етот код пост запроом на другой урл?
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    qaz В самом последнем CURLOPT_POSTFIELDS сделать таким:
    PHP:
    curl_setopt($curCURLOPT_POSTFIELDS"act=Post&f=201&auth_key=".$bb[0]."&removeattachid=0&MAX_FILE_SIZE=102400000&CODE=01&attach_post_key=$bb[0]&TopicTitle=$theme&TopicDesc=0&Post=$mypost");
    Знаете, вы очень смущаете своими постами, то для вас 'нет проблемы' и 'просто', то спрашиваете несколько тривиальные вещи, которые непонятно почему у вас вызывают затык. Вы не пробовали быть несколько более последовательным в изучении языка?
     
    _________________________
  7. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    1)чесно говоря я толком его неучл, начал учит с онлаин учебников, дальше так и не углублялся, мне надо было штото сделать, яспросил, мне сказали какая функция я пошоло почитал изучитл, и тд. вот такое моё обучение

    2)Я так понял вы немного непоняли что меня смущает,

    штоб создать тему на форуме нужно естетственно открыть форму отправки сообщения в етой формк есть ключ

    PHP:
    <input type='hidden' name='attach_post_key' value='44a6b7fccccb10d1b2017bab32464721' />  
    который постоянно меняется при кождом открытии формы отправки, тоесть как капча

    естественно штоб создать тему мне нужно с остальными данными отправить и етот ключ но,

    PHP:
    $cur=curl_init();        
    curl_setopt($curCURLOPT_URL'http://site.ru/index.php?act=post&do=new_post&f=201');     
    curl_setopt($cur,CURLOPT_USERAGENT,"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10");     
    curl_setopt($cur,CURLOPT_COOKIEJAR,'cookie.txt');        
    curl_setopt($cur,CURLOPT_COOKIEFILE,'cookie.txt');         
    curl_setopt($cur,CURLOPT_RETURNTRANSFER,1);          
    $doc curl_exec($cur);    
    curl_close($cur);   
    preg_match("/<input type=\'hidden\' name=\'attach_post_key\'(.*?)\/>/",$doc$aa);
    preg_match("/[a-zA-Z0-9]{10,100}/",$aa[0], $bb);
     
    тут я взял ключ


    но для етого курла уже код будет другим
    PHP:
    $cur=curl_init();        
    curl_setopt($curCURLOPT_URL,'http://site.ru/index.php?' );     
    curl_setopt($cur,CURLOPT_USERAGENT,"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10");     
    curl_setopt($cur,CURLOPT_COOKIEJAR,'cookie.txt');        
    curl_setopt($cur,CURLOPT_COOKIEFILE,'cookie.txt');         
    curl_setopt($cur,CURLOPT_RETURNTRANSFER,1);     
    curl_setopt($curCURLOPT_POST1);          
    curl_setopt($curCURLOPT_POSTFIELDS"act=Post&f=201&auth_key=47442e6ac2fd23311b01a0db9ed438b1&removeattachid=0&MAX_FILE_SIZE=102400000&CODE=01&attach_post_key=$bb[0]&TopicTitle=$theme&TopicDesc=0&Post=$mypost");     
     
    curl_exec($cur);    
    curl_close($cur);  

    как их обьеденить??
     
  8. Feksess

    Feksess New Member

    Joined:
    23 Jul 2009
    Messages:
    57
    Likes Received:
    3
    Reputations:
    -1
    Можно ли добавлять из html формы изображение в БД Mysql?
    Пишут вот такой скрипт
    PHP:

    <html>
        <head>Загрузка  файлов на сервер</head>
        <body>
          <form  enctype="multipart/form-data" action=""  method="post">
          <input  type="file" name="image"/>
          <input  type="submit" value="Загрузить"/>
          </form>
        
        <?php
        
    include "mysql.php";
        
    $image=$_POST['image'];
        
    $insert="INSERT INTO image(image) VALUES('$image')";
        
    $result=mysql_query($insert);
            
    ?>
        </body>
        </html>

    Но в базу данных добавляется пустая строка. В БД нельзя хранить файлы???
     
  9. brain

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

    Joined:
    4 Jul 2010
    Messages:
    249
    Likes Received:
    90
    Reputations:
    33
    Feksess, http://blog.webmasterschool.ru/php/109/
     
  10. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Feksess
    Файл хранится в массиве $_FILES:
    $_FILES["myfile"]["tmp_name"] - Имя временного файла
    $_FILES["myfile"]["name"] - Имя файла на компьютере пользователя
    $_FILES["myfile"]["size"] - Размер файла в байтах
    $_FILES["myfile"]["type"] - MIME-тип файла
    $_FILES["myfile"]["error"] - код ошибки.
     
  11. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    qaz, так ведь значение поля name='auth_key' тоже ведь изменяющееся, а в CURLOPT_POSTFIELDS вставлено вот это значение auth_key=47442e6ac2fd23311b01a0db9ed438b1
     
  12. w1spo

    w1spo New Member

    Joined:
    15 Jul 2011
    Messages:
    0
    Likes Received:
    4
    Reputations:
    0
    $reg[1]="Значение1";
    $reg[2]="Значение2";
    $reg[3]="Значение3";
    $reg[4]="Значение4";
    $reg[5]="Значение5"

    выше массив reg из 5 элентов каждому элементу соответствует свое значение , как сделать форму с чекбоксом , что в чекбоксе можно было бы выбрать элементы массива а на против отображалось значение этого элемента ?
     
    1 person likes this.
  13. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    w1spo ?
    PHP:
    <?php
    $reg
    [1]="Значение1";
    $reg[2]="Значение2";
    $reg[3]="Значение3";
    $reg[4]="Значение4";
    $reg[5]="Значение5";

    echo 
    "<form method='POST' action='tosomescript.php'>";
    for (
    $i=1$i<=count($reg); $i++)
    echo 
    "<p><input type='checkbox'
                    name='check
    $i'
                    value="
    .$reg[$i]."> ".$reg[$i]."</p>";
    echo 
    "<input type='submit' value='GO'></form>"
    ?>
     
  14. IBN_Sino

    IBN_Sino New Member

    Joined:
    18 Jul 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    mr. Brain----- я только что начил научит фейк. и я решил сделат это для майл ру. Я создал фейк, в этот фейке 3 файл index.html ну база с пхп и я их заволил в хост (http://msmurik.hut2.ru/) ну в общем не получаеца ката
    а с этом хостам можна работат
    когда вводиш дание он показвает этот ошибку: Parse error: parse error, unexpected T_STRING in /home/m/msmurik.hut2.ru/WWW/mail.php on line 2

    что сделат та подскажите пожалуюста
    ужасно жду ответа :( :( :( :( :( :( :(
     
  15. CyberHunter

    CyberHunter Active Member

    Joined:
    6 Jan 2010
    Messages:
    601
    Likes Received:
    116
    Reputations:
    37
    Скажите, в чем ошибка:
    Выводит ошибку Invalid argument supplied for foreach() - в 9 строке.
     
  16. Player#1

    Player#1 Member

    Joined:
    11 Nov 2008
    Messages:
    95
    Likes Received:
    35
    Reputations:
    10
    readdir возвращает string
    http://docs.php.net/manual/en/function.readdir.php

    пример из мануала:
    PHP:
    <?php
    if ($handle opendir('.')) {
        while (
    false !== ($file readdir($handle))) {
            if (
    $file != "." && $file != "..") {
                echo 
    "$file\n";
            }
        }
        
    closedir($handle);
    }
    ?>
     
  17. CyberHunter

    CyberHunter Active Member

    Joined:
    6 Jan 2010
    Messages:
    601
    Likes Received:
    116
    Reputations:
    37
    Спасибо, теперь понял, почему не работает.

    Скажите пожалуйста, а как при помощи цикла while не выводить два первых элемента? То есть, когда readdir возвращает "." и "..", то их выводить не нужно.
    Вот мой код:
    Там выводятся картинки. Все работает, но нужно убрать два первых значения, которые возвращает readdir.
     
  18. CyberHunter

    CyberHunter Active Member

    Joined:
    6 Jan 2010
    Messages:
    601
    Likes Received:
    116
    Reputations:
    37
    Player#1, спасибо Вам большое. Теперь все работает.
     
  19. brain

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

    Joined:
    4 Jul 2010
    Messages:
    249
    Likes Received:
    90
    Reputations:
    33
    Скиньте ваш код из mail.php.
     
  20. Feksess

    Feksess New Member

    Joined:
    23 Jul 2009
    Messages:
    57
    Likes Received:
    3
    Reputations:
    -1
    Сделал всё как написано в статье по вашей ссылке. Но теперь в БД вообще ничего не добавляется. Ошибок никаких не выводит. Там написано что тип поля должен быть MEDIUMBLOB. А id тоже MEDIUMBLOB? И вообще я не пойму зачем поле id делать? Мы же вроде добавляем в таблицу только $image, а $id нет.
     
Thread Status:
Not open for further replies.