Составить POST запрос

Тема в разделе "PHP", создана пользователем Digwnews, 10 май 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    Помогите составить post запрос для постинга в форму: http://www.bazahobby.ru/members?action=add.
    И куда посылать этот запрос? На http://www.bazahobby.ru/members?action=add или _http://www.bazahobby.ru/pages.php?
     
  2. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    запрос отправляй на Перейти по ссылке. Составить и отправить его ты можешь с помощью библиотеки curl
     
  3. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    Для курла и нужен. Но какой бы я пост не составлял, почему-то он не работает..
     
  4. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    возможно вы не те, или не все данные передаете ....
    возьмите в браузере "вручную" отправьте пост и через софтину посмотрите какая инфа отправляется на сервер в пост запросе, ну и попытайтесь повторить аналогичный запрос через curl

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

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Я немного ошибся, запрос надо отправлять на Перейти по ссылке.
    В форме есть несколько скрытых полей, возможно их тоже нужно заполнять. Выложи свой скрипт я посмотрю
     
  6. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    В обоих случаях запрос отправляеться на:
    www.bazahobby.ru/pages.php

    при реги отправляются след данные (ИМЯ_ПОЛЯ=ЗНАЧЕНИЕ:(
    modlink = members (скорее всего скрытое поле необходимо делать выпарску, но скорей всего поле постоянной)
    action = add (скорее всего скрытое поле необходимо делать выпарску, но скорей всего поле постоянной)
    create = 1 (скорее всего скрытое поле необходимо делать выпарску, но скорей всего поле постоянной)

    username = LOGIN (видимое поле, заполнено в ручную)
    password = PASS1 (видимое поле, заполнено в ручную)
    password2 = PASS1 (видимое поле, заполнено в ручную)
    email = EMAIL@EMAIL.NET (видимое поле, заполнено в ручную)
    firstname = NAME (видимое поле, заполнено в ручную)
    lastname = SURNAME (видимое поле, заполнено в ручную)
    icq = ICQ (видимое поле, заполнено в ручную)
    country = ru (видимое поле выпадающее, заполнено в ручную)
    photo = (поля выбора файла для загрузки)
    forum_sign = SIGNATURE (видимое поле, заполнено в ручную)

    protected_field = 1977 (скорее всего скрытое поле необходимо делать выпарску)


    так же надо учесть что тип формы являеться multipart/form-data. и если будеш использовать сокеты, то там свое образная структура отправки данных, а если на курлах то как обычно (насколько я помню)
     
  7. stealtheos

    stealtheos Создатель

    Регистр.:
    28 апр 2010
    Сообщения:
    19
    Симпатии:
    1
    Вообще лучше подходить к вапросу в корне а не перебирать законченые примеры которые вам предлагают
    давайте разберемся вместе
    у вас есть страничка на которой заполняются поля формы и кудато отправляются POST методом
    Если посмотреть код этой странички то вы в подавляющем большинстве случаев несомненно увидите такую строчку как <form action='некий url' method='POST' ..... >(некоторый код ...)</form>
    чтобы изучить все переменные, какие передаются нам нужно все лишь навсего создать скрипт, который будет отображать все переменные POST которые ему передаются
    и так
    1. Создайте скрипт "post.php"
    PHP:
    <?
    echo 
    "<pre>";
    priint_r($_POST);
    echo 
    "</pre>";
    ?>
    2. Сохраните вебстраничку, на которой вы заполняете поля для отправки
    3. Найдите в ней <form action='%some URL%' method='POST' и перевправте %some URL% на post.php и сохраните ее
    4. Ну вот собственно и все ... заполняйте поля и выполняйте запрос и вам высветятся названия полей и их значения

    Тут я носом вас не тыкнул в конкретный пример, потому что думаю что далее вы разберетесь сами, что несомненно пойдет вам на пользу
     
  8. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    И зачем? Не легче ли воспользоваться, например, плагином httpfox для firefox?


    Вот мой скрипт:
    PHP:
    <?php
    $post
    ='modlink=members&action=add&create=1&username=newlog11&password=pass&password2=pass&email=jdhy@gmail.com&firstname=Alex&lastname=ddd&icq=&country=ru&photo=&forum_sign=SIGNATURE&protected_field=1977
    '
    ;
    $url 'http://www.bazahobby.ru/pages.php';
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL$url);
        
    curl_setopt($chCURLOPT_REFERER'http://www.bazahobby.ru/members?action=add');
        
        
    curl_setopt($chCURLOPT_POSTTRUE);
        
    curl_setopt($chCURLOPT_POSTFIELDS,$post);
        
    $data curl_exec($ch);
        
    $error curl_error($ch);
        
    curl_close($ch);
        echo 
    $data;
    ?>

    А не.. Скрипт работает)))
    Всем спасибо.

    Добавлено через 11 минут
    Ещё проблема.
    Есть http://www.get-help.kz/members?action=add.
    Всё тоже самое, как и на прошлом сайте, но есть проверка на включённый яваскрипт в браузере. Как с курлом обойти защиту?
     
  9. RxB

    RxB

    Заблокирован
    Регистр.:
    16 июл 2007
    Сообщения:
    235
    Симпатии:
    51
    Жаба-скрипт скорее всего высчитывает скрытое поле формы и всё.
    Отправь с ява-скриптом и без, и сразу поймёшь разницу, другого там особо не придумать.
    Ещё могу посоветовать не ломать с курлом мозг и использовать класс Snoopy, крутая штука
    UPD
    Обрати внимание на
    Код:
    document.write ('<' + 'input type="hidden" name="tp_fld" value="" />'); 
     
Статус темы:
Закрыта.