POSTとクエリとトラブル:PHPからコンテンツを取得
-
25-09-2019 - |
質問
SO今までの私の最長の質問に対して謝罪。私はROOTでのMySQLデータベース(高エネルギー物理学分析のためのC ++でCERNフレームワーク)のためのPHPのフロントエンドとのインタフェースしようとしています。私は彼らとより身近だからでオフを開始するには、私が最初にwget
とcurl
で素敵を再生するには、このPHPインターフェースを取得しようとしました。次のコマンドは機能します:
wget --post-data "hostname=localhost:3306&un=joeuser&pw=psswd&myquery=show_spazio_databases;" http://some.host.edu/log/log_query_matlab.php
の結果があります:
database1
database2
良いことです。私は--post-data
を省略した場合、私は結果が得られます。
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'admin'@'localhost' (using password: NO) in /log/log_query_matlab.php on line 6
i'm dead! Access denied for user 'admin'@'localhost' (using password: NO)
Warning: mysql_query() [function.mysql-query]: Access denied for user 'admin'@'localhost' (using password: NO) in /log/log_query_matlab.php on line 29
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /log/log_query_matlab.php on line 29
私は(読み取り専用)PHPスクリプトへのアクセス権を持っていますが、エラー自体はあまり重要ではありません。何がそれをROOTを使用して、私はsocket.SendRaw(message, message.Length())
と呼ばれる機能を使用する(ソケットがTSocket
です)、私の「メッセージ」が
wget
と同じ「エラー」を与えることを重要
"POST http://some.host.edu/log/log_query_matlab.php?hostname=localhost:3306&un=joeuser&pw=psswd&myquery=show_spazio_databases"
これが無駄になるかもしれないが、誰かが、私は--post-data
スイッチと同等であるものを含み、「メッセージ」をフォーマットするべき方法を知っているん。または、単一のライン(私が見てきたマルチでフォーマットPOSTリクエストへの標準的な方法があります-lineもののは。その右か?)申し訳ありませんが、私は無知だ!
PS。 MySQLのクエリはshow databases
ですが、スペースはスペースのためのイタリア語、_spazio_
に置き換えられました。 DBとPHPインターフェースの著者は、それ(と記号のための様々な代替品)が必要ですが、誰もが前にこれを見ていますか?ひどかったトラブルシューティングするためにしよう!
解決
正しい "1つのライナー" だっます:
POST http://some.host.edu/log/log_query_matlab.php HTTP/1.1
Host: some.host.edu
Content-Type: application/x-www-form-urlencoded
Content-Length: 73
hostname=localhost:3306&un=joeuser&pw=psswd&myquery=show databases
は、各ラインの端部は\r\n
を有しています。コンテンツ長後のギャップは、それらの二組を有している。