curl_setopt($ch, CURLOPT_POSTFIELDS, $postfield); //POST 送信用の文字列を設定します
1. ここでの CURLOPT_POSTFIELDS は http のヘッダーかどこかに保存されていますか?
2. WebページのFormのPostメソッドとの違いは何ですか?
私はDELPHIに取り組んでおり、IDHTTPコントロールはWebページのPOSTメソッドをシミュレートしますが、PHPとは少し異なるようです。
$postfield には指定された値のみが表示されますが、指定された NAME 属性は表示されません。
$postfield は、フォームのすべての名前と値をキーと値のペアの形式で & で接続する文字列です
http プロトコルによれば、ヘッダーではなく本文に属します (ヘッダー部分は rnrn で区切る必要があります)
$postfield は、フォームのすべての名前と値をキーと値のペアの形式で & で接続した文字列です
httpプロトコルによると、ヘッダではなくボディに属します(ヘッダ部分とrnrnで区切られているはずです) POSTモードでは改行で区切られていますか?彼の名前を指定せず、値が 1 つしかない場合、送信すると結果はどうなりますか?
正当な形式は 'para1=val1¶2=val2&...' のようなものであるか、キーとしてフィールド名、値としてフィールド データを持つ配列を使用する必要があります
値のみを渡す場合、ターゲット ページは送信した価値のあるコンテンツを取得できない。
どのような方法であっても、送信は単に文字列を送信するだけです。Curl は投稿をシミュレートするだけで、ブラウザの代わりにいくつかのパラメータを整理して送信します。 . ソケットの作業は、http の仕様に従って文字列を結合して送信するだけではないでしょうか。
キーと値のペアであると言いましたので、名前が必要です
name=abcdefg&password=123456...
値しかありませんが、結果としてサーバーが必要な変数を見つけることができません
関係ありませんか?通常、ブラウザは投稿をシミュレートするだけで、ブラウザの代わりにいくつかのパラメータを送信します。 httpの仕様に従って文字列を連結して送信するだけなのでしょうか?
キーと値のペアであると言いましたので、名前が必要です
name=abcdefg&password=123456...
値しかありませんが、結果としてサーバーは必要な変数を見つけることができません。お二人ともありがとうございます。問題は解決しました!