PHP cURLフォームの値は設定されていますが、送信すると値が設定されていません

user1871338

現在、PHPcURLを使用して2つのフォームを送信しています。両方のフォームは異なるページにあります(1つのフォームに入力すると、別のフォームにリダイレクトされます)。最初のフォームと2番目のフォームを送信するためのcURLを取得します。ただし、2番目のフォーム(送信後)には、1つの値(必要な値)が設定されていないことが示されています。明らかに、これは値が設定されていないことを意味します。しかし、私は変数を正しく設定していると思います。ここにフォーム全体を貼り付けることはできません(制限を超えています..)が、送信用に設定されていない値は次のとおりです。

     <select name="sel_subj" size="10" multiple="" id="subj_id">
        <option value="ACAD">Academic Foundations
        </option>
    .. a lot more options
     </select>

これが私のコードです:

    function submitForms() {
    //first form...
    $data_fields = array (
            'p_term' => '201610',
            'p_calling_proc' => 'bwckschd.p_disp_dyn_sched' 
    );

    $curl_connection = curl_init ();
    curl_setopt ( $curl_connection, CURLOPT_CONNECTTIMEOUT, 30 );
    curl_setopt ( $curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" );
    curl_setopt ( $curl_connection, CURLOPT_URL, 'https://banner.uregina.ca/prod/sct/bwckgens.p_proc_term_date' );
    curl_setopt ( $curl_connection, CURLOPT_RETURNTRANSFER, true );
    curl_setopt ( $curl_connection, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt ( $curl_connection, CURLOPT_FOLLOWLOCATION, 1 );
    curl_setopt ( $curl_connection, CURLOPT_POSTFIELDS, $data_fields );

    // perform our request
    $result = curl_exec ( $curl_connection );

    // show information regarding the request
    print_r ( curl_getinfo ( $curl_connection ) );
    echo "<br>";
    echo curl_errno ( $curl_connection ) . '-' . curl_error ( $curl_connection );
    echo "<br>";
    echo $result;

   //Second form..
    $data_fields = array (
            'term_in' => '201630',
            'sel_to_cred' => '',
            'sel_title' => '',
            'sel_subj' => 'ACAD',
            'sel_subj' => 'dummy',
            'sel_sess' => 'dummy',
            'sel_schd' => '%',
            'sel_schd' => 'dummy',
            'sel_ptrm' => '%',
            'sel_ptrm' => 'dummy',
            'sel_levl' => '%',
            'sel_levl' => 'dummy',
            'sel_instr' => '%',
            'sel_instr' => 'dummy',
            'sel_insm' => '%',
            'sel_insm' => 'dummy',
            'sel_from_cred' => '',
            'sel_day' => 'dummy',
            'sel_crse' => '',
            'sel_camp' => '%',
            'sel_camp' => 'dummy',
            'sel_attr' => 'dummy',
            'end_mi' => '0',
            'end_hh' => '0',
            'end_ap' => 'a',
            'begin_mi' => '0',
            'begin_hh' => '0',
            'begin_ap' => 'a' 
    );
    curl_setopt ( $curl_connection, CURLOPT_URL, 'https://banner.uregina.ca/prod/sct/bwckschd.p_get_crse_unsec' ); // use the URL that shows up in your <form action="...url..."> tag
    curl_setopt ( $curl_connection, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt ( $curl_connection, CURLOPT_POSTFIELDS, $data_fields );
    $result = curl_exec ( $curl_connection );
    echo "<br>";
    echo $result;
    return $curl_connection;
}

フォームを手動で送信したときのPOST変数は次のとおりです(firebugから)。

POST変数

ただし、上記の関数を使用すると、最初のフォームを問題なく通過し、2番目のフォームにアクセスして送信すると、「少なくとも1つのサブジェクトを選択する必要があります。」という結果が返されます。'sel_subj'を選択しなかったかのように。

'sel_subj'データが設定された状態で送信されない理由がわかりません。どんな助けでも大歓迎です。

最初のフォームへのリンク:https//banner.uregina.ca/prod/sct/bwckschd.p_disp_dyn_sched

2番目のフォームは、最初のフォームの完了後にのみ、直接リンクすることはできません。

user1871338

私にとってうまくいったのは、パラメータの送信方法を変更することでした。(GETのような文字列形式に変更されました)

$data = "term_in=201630&sel_subj=dummy&sel_day=dummy&sel_schd=dummy&sel_insm=dummy&sel_camp=dummy&sel_levl=dummy&sel_sess=dummy&sel_instr=dummy&sel_ptrm=dummy&sel_attr=dummy&sel_subj=ADMN&sel_crse=&sel_title=&sel_schd=%25&sel_insm=%25&sel_from_cred=&sel_to_cred=&sel_camp=%25&sel_levl=%25&sel_ptrm=%25&sel_instr=%25&begin_hh=0&begin_mi=0&begin_ap=a&end_hh=0&end_mi=0&end_ap=a";

次に、次のように使用しました。

curl_setopt ( $curl_connection, CURLOPT_POSTFIELDS,$data);

このサイトからの指示に従って:

https://yeehuichan.wordpress.com/2011/08/07/sending-multiple-values-with-the-same-namekey-in-curl-post/

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

.php ファイルは圧縮されていませんが、GZIP は .htaccess に設定されています。

分類Dev

PHPでCookieを設定しようとしていますが、設定されていません

分類Dev

xdebug.remote_handlerはPHP.INIで設定されていますが、PHPinfoには表示されません

分類Dev

PHPフォームは複数の角かっこで設定されています

分類Dev

PHP配列の要素に値が設定されているかどうかを確認します

分類Dev

PHP-$ _ GET変数が設定されていません

分類Dev

PHPセッションが設定されていません

分類Dev

PHPセッションが設定されていません

分類Dev

phpで設定すると入力値が表示されない

分類Dev

PHP配列へのHTMLフォーム入力。すべての値が掲載されているわけではありません

分類Dev

CodeIgniterでのAWSSMTPメールエラー(PHP SMTPを使用してメールを送信できません。サーバーがこの方法を使用してメールを送信するように設定されていない可能性があります。)

分類Dev

PHPフォームが送信されずに送信されています

分類Dev

javascript、ajax、PHPの挿入onSubmitが機能していません... POSTが設定されていません

分類Dev

メールは送信されませんmdaemonの設定は完了しましたが、メールは送信されず、エラーphpファイルを取得していません

分類Dev

PHPで、CURLOPT_SSL_VERIFYPEERがtrueに設定されているときにCURLOPT_CAPATHが設定されていないとどうなりますか

分類Dev

単純なHTML + PHPフォームが正しく送信されません。私は何が間違っているのですか?

分類Dev

phpフォームデータがDBに送信されていません

分類Dev

'post_max_size'および 'upload_max_filesize'が4096Mに設定されていても、ApacheのPHPで1GBを超えるファイルをアップロードすることはできません

分類Dev

変数が設定されているかどうかをPHPでチェックし、2つの値が設定された変数と一致するかどうかを確認するにはどうすればよいですか?

分類Dev

phpは、設定されたテキストが含まれている場合、リンクのハーブとテキストを取得します

分類Dev

PHPを使用するときに、フィールドの文字長/セット長が特定の数値に設定されていることを確認するにはどうすればよいですか?

分類Dev

PHP-フォーム送信後に$ _POST変数が設定されない

分類Dev

ブラウザにCookieが設定されていません[PHP]

分類Dev

HTML/PHP 入力フィールド - $_POST が設定されている場合、値は何か、それ以外の場合はプレースホルダーを使用しますか?

分類Dev

PHPフォームintが宣言されていません

分類Dev

htmlテーブルのCssedボタンが正しくスタイル設定されていませんphp

分類Dev

[PHP警告:mail():「sendmail_from」がphp.iniに設定されていないか、カスタムの「From:」ヘッダーがありません

分類Dev

PHP + SQL Server、SQLは機能しますが、サーバーの応答にRESETフラグが設定されています

分類Dev

Apacheはスレッド化されたMPMを実行していますが、PHPモジュールはスレッドセーフになるようにコンパイルされていません。PHPを再コンパイルする必要があります。AH00013:事前設定に失敗しました

Related 関連記事

  1. 1

    .php ファイルは圧縮されていませんが、GZIP は .htaccess に設定されています。

  2. 2

    PHPでCookieを設定しようとしていますが、設定されていません

  3. 3

    xdebug.remote_handlerはPHP.INIで設定されていますが、PHPinfoには表示されません

  4. 4

    PHPフォームは複数の角かっこで設定されています

  5. 5

    PHP配列の要素に値が設定されているかどうかを確認します

  6. 6

    PHP-$ _ GET変数が設定されていません

  7. 7

    PHPセッションが設定されていません

  8. 8

    PHPセッションが設定されていません

  9. 9

    phpで設定すると入力値が表示されない

  10. 10

    PHP配列へのHTMLフォーム入力。すべての値が掲載されているわけではありません

  11. 11

    CodeIgniterでのAWSSMTPメールエラー(PHP SMTPを使用してメールを送信できません。サーバーがこの方法を使用してメールを送信するように設定されていない可能性があります。)

  12. 12

    PHPフォームが送信されずに送信されています

  13. 13

    javascript、ajax、PHPの挿入onSubmitが機能していません... POSTが設定されていません

  14. 14

    メールは送信されませんmdaemonの設定は完了しましたが、メールは送信されず、エラーphpファイルを取得していません

  15. 15

    PHPで、CURLOPT_SSL_VERIFYPEERがtrueに設定されているときにCURLOPT_CAPATHが設定されていないとどうなりますか

  16. 16

    単純なHTML + PHPフォームが正しく送信されません。私は何が間違っているのですか?

  17. 17

    phpフォームデータがDBに送信されていません

  18. 18

    'post_max_size'および 'upload_max_filesize'が4096Mに設定されていても、ApacheのPHPで1GBを超えるファイルをアップロードすることはできません

  19. 19

    変数が設定されているかどうかをPHPでチェックし、2つの値が設定された変数と一致するかどうかを確認するにはどうすればよいですか?

  20. 20

    phpは、設定されたテキストが含まれている場合、リンクのハーブとテキストを取得します

  21. 21

    PHPを使用するときに、フィールドの文字長/セット長が特定の数値に設定されていることを確認するにはどうすればよいですか?

  22. 22

    PHP-フォーム送信後に$ _POST変数が設定されない

  23. 23

    ブラウザにCookieが設定されていません[PHP]

  24. 24

    HTML/PHP 入力フィールド - $_POST が設定されている場合、値は何か、それ以外の場合はプレースホルダーを使用しますか?

  25. 25

    PHPフォームintが宣言されていません

  26. 26

    htmlテーブルのCssedボタンが正しくスタイル設定されていませんphp

  27. 27

    [PHP警告:mail():「sendmail_from」がphp.iniに設定されていないか、カスタムの「From:」ヘッダーがありません

  28. 28

    PHP + SQL Server、SQLは機能しますが、サーバーの応答にRESETフラグが設定されています

  29. 29

    Apacheはスレッド化されたMPMを実行していますが、PHPモジュールはスレッドセーフになるようにコンパイルされていません。PHPを再コンパイルする必要があります。AH00013:事前設定に失敗しました

ホットタグ

アーカイブ