WinInet シミュレートされた HTTP POST リクエスト エラー
VS2012 にブレークポイントを設定して実行を追跡すると、php ファイルへのリクエストが正しい戻り文字列を取得できなかったことがわかりましたが、次のエラー メッセージが表示されました:
無効なクエリ:
SQL 構文チェックにエラーがあります。 1 行目の '' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを参照してください。
クエリ全体:
select id,name fromindex_activities where top=0
この情報は、次のステートメント行の後ろにある私の
$result = mysql_query($query);
です。 PHP,"if"はリクエストが失敗した場合のみ出力されます。当然mysqlリクエストは失敗しており、PHPファイルの呼び出しは成功したと判断できます。
しかし、Web ページで同じパラメータを使用して同じ PHP ファイルを呼び出すと (GET メソッド)、戻り値は正しいです。
私は
$top = $_REQUEST['top'];
そのため、POST パラメーターと GET パラメーターの両方が同じ方法で使用できるはずです。
何が問題なのかわかりませんか? WinInet を使用すると、リクエスト文字列に異常が発生しますか?
ディスカッションへの返信(解決策)
データベース接続は正しいですか?
データベース接続は正しいですか?
接続が正しい場合は、正しくない場合は、mysql に接続できませんを返し、次のリクエストは実行されず、MySQL リクエストのエラー メッセージは表示されません。
同じパラメータを持つ別のシミュレートされた HTTP リクエストがあり、返される値は正しいです:
void CDllValidateDlg::ValidateAPerson(char* Name, char* Code){ CString post_data; post_data.Format("userid='%s'&name='%s'",Code,Name); //请求的附加参数 CString result; //返回的结果 CString post_page = "test_id_validater/validateid.php"; //请求的php PostHttpPage(result,post_page,post_data); AfxMessageBox(result);}
そして、デバッグ時に理解できないこの HTTP リクエストの何が違うのでしょうか。すべてのパラメータを書き留めました。元々は変数によって決定されていましたが、それでも mysql リクエストが正しくないことが返されます:
void CDllValidateDlg::getActs(HTREEITEM root){ CString post_data="top=0";// char top[10];// itoa(ActivitiesTree.GetItemData(root),top,10);// post_data.Format("top=%s",top); CString result; CString post_page = "test_id_validater/GetActivities.php";// AfxMessageBox("post_page:"+post_page+", "+"post_data:"+post_data); PostHttpPage(result, post_page, post_data); AfxMessageBox(result); …… ……
PHP 側の問題のように感じますが、次のように書くと正しい結果が返されます:
<?phprequire "use_daoru.php";$top = $_REQUEST['top'];$query = "select id,name from index_activities where top=0";$result = mysql_query($query);//if(!$result){//$message = 'Invalid query: '.mysql_error()."\n";//$message.= 'Whole query: '.$query;//die($message);//}$num = mysql_num_rows($result);for($i=0;$i<$num;$i++){ $row = mysql_fetch_row($result); echo($row[0].":".$row[1].",");}?>
私が書いたコードは次のとおりです:
<?phprequire "use_daoru.php";$top = $_REQUEST['top'];$query = "select id,name from index_activities where top=$top";$result = mysql_query($query);//if(!$result){//$message = 'Invalid query: '.mysql_error()."\n";//$message.= 'Whole query: '.$query;//die($message);//}$num = mysql_num_rows($result);for($i=0;$i<$num;$i++){ $row = mysql_fetch_row($result); echo($row[0].":".$row[1].",");}?>
無効なクエリ:
SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを確認して、1 行目の '' 付近に使用する正しい構文を確認してください。
クエリ全体:
select index_activities の id,name (top=0)
この情報は明らかにデータベース レポートが間違っています。
$query = "select id,name fromindex_activities where top=0"; の場合は問題ありません
と $query = "select id,name fromindex_activities where top=$top"; の場合は、$top には何もありません。値または数値ではありません
$top = $_REQUEST['top']; $top = intval($_REQUEST['top']); に変更してください

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











HTTP ステータス コード 520 は、サーバーがリクエストの処理中に不明なエラーに遭遇し、より具体的な情報を提供できないことを意味します。サーバーがリクエストを処理しているときに不明なエラーが発生したことを示すために使用されます。サーバー構成の問題、ネットワークの問題、またはその他の不明な理由が原因である可能性があります。これは通常、サーバー構成の問題、ネットワークの問題、サーバーの過負荷、またはコーディング エラーが原因で発生します。ステータス コード 520 エラーが発生した場合は、Web サイト管理者またはテクニカル サポート チームに連絡して詳細情報と支援を得ることが最善です。

HTTP 301 ステータス コードの意味を理解する: Web ページ リダイレクトの一般的なアプリケーション シナリオ インターネットの急速な発展に伴い、Web ページの操作に対する人々の要求はますます高くなっています。 Web デザインの分野では、Web ページのリダイレクトは一般的かつ重要なテクノロジであり、HTTP 301 ステータス コードによって実装されます。この記事では、HTTP 301 ステータス コードの意味と、Web ページ リダイレクトにおける一般的なアプリケーション シナリオについて説明します。 HTTP301 ステータス コードは、永続的なリダイレクト (PermanentRedirect) を指します。サーバーがクライアントのメッセージを受信すると、

解決策: 1. リクエスト ヘッダーの Content-Type を確認する; 2. リクエスト本文のデータ形式を確認する; 3. 適切なエンコード形式を使用する; 4. 適切なリクエスト メソッドを使用する; 5. サーバー側のサポートを確認する。

C++ で HTTP ストリーミングを実装するにはどうすればよいですか? Boost.Asio と asiohttps クライアント ライブラリを使用して、SSL ストリーム ソケットを作成します。サーバーに接続し、HTTP リクエストを送信します。 HTTP 応答ヘッダーを受信して出力します。 HTTP 応答本文を受信して出力します。

HTTP ステータス コード 200: 成功した応答の意味と目的を調べる HTTP ステータス コードは、サーバーの応答のステータスを示すために使用される数値コードです。このうち、ステータス コード 200 は、リクエストがサーバーによって正常に処理されたことを示します。この記事では、HTTP ステータス コード 200 の具体的な意味と使用法について説明します。まず、HTTP ステータス コードの分類を理解しましょう。ステータス コードは、1xx、2xx、3xx、4xx、5xx の 5 つのカテゴリに分類されます。このうち、2xx は成功応答を示します。 200 は 2xx で最も一般的なステータス コードです

機械学習でコンピューターグラフィックス(CG)シミュレーションがよりリアルに!この方法はニューラル フロー マップ (NFM) と呼ばれ、4 つの渦で煙を正確にシミュレートできます。より複雑なものも簡単に実現できます。AI アプリケーションが空を飛び回るこの時代においても、CG 物理シミュレーションは依然として重要です。従来の数値アルゴリズムの世界です。 △NFM は「リープフロッグ」をシミュレートします CG にニューラル ネットワークを適用すると、めくるめく視覚効果を生み出すことができますが、物理的特性を厳密かつロバストに記述することはできません。 △NFMは「インク滴」をシミュレートする だからこそ、ニューラルネットワークに基づく物理シミュレーションはまだ概念実証の段階にあり、生み出される効果はSOTAとは程遠い。この複雑な問題を解決するために、

解決策: 1. 再試行: 一定時間待ってから再試行するか、ページを更新できます; 2. サーバーの負荷を確認します: サーバーの CPU、メモリ、およびディスクの使用状況を確認します。容量制限を超えている場合は、次のことを試してください。サーバー構成を最適化するか、サーバーの容量を増やします サーバー リソース; 3. サーバーのメンテナンスとアップグレードを確認します: サーバーが通常に戻るまで待つしかありません; 4. ネットワーク接続を確認します: ネットワーク接続が安定していることを確認し、ネットワークが正常に動作しているかどうかを確認しますデバイス、ファイアウォール、またはプロキシ設定が正しいことを確認します; 5. キャッシュまたは CDN 構成が正しいことを確認します; 6. サーバー管理者などに連絡します。

タイトル: PHP コード例: POST を使用してパラメーターを渡し、ページ ジャンプを実装する方法 Web 開発では、多くの場合、パラメーターを POST 経由で渡し、サーバー側で処理してページ ジャンプを実装する必要があります。 PHP は、一般的なサーバーサイド スクリプト言語として、この目的を達成するための豊富な関数と構文を提供します。以下では、この機能を PHP を使用して実装する方法を、具体的な例を用いて紹介します。まず、2 つのページを準備する必要があります。1 つは POST リクエストを受信し、パラメーターを処理するためのものです。
