プロジェクト構成は次のように記述されます:
サーバー側: discuz、Android に接続されたサーバー側インターフェースのデバッグ (Android 側から送信されたリクエストの受信に使用)
クライアント: Android4.4
問題のプロセスは次のように記述されます。
Android 側はフォーラムに投稿後、httppost を使用してパラメータをカプセル化し、httpclient を通じて PHP 側の関連する URL に送信します。PHP 側で関連する SQL 操作を実行し、mysql_query を通じて Android 側に true または false を返します。
問題は次のように説明されています:
これでAndroid側でpostした結果が{"result":"post failed"}となってしまいました(ˇ?ˇ) php側の実行時にエラーが発生したのかと思いましたSQL操作、そしてクライアントによって実行されたphpを確認したかったのです。私のphpインターフェースはdiscuzに依存しているため、zend Studio単独でインターフェースをApacheのhtdocsにデプロイすると、デプロイが成功せず、Android側から送信されたパラメータを受信できない
としたいのですが。皆さんに相談してください。
1) このインターフェースを Apache にデプロイして Android 側からデータを受信することは可能ですか (win7、Apache、mysql、php5.25、zend Studio 10.0)
2) そうでない場合、から送信されたパラメーターをデバッグする方法Android 側から php サーバーへ; ここで主に確認したいのは、php サーバーに返された後に実行される SQL ステートメントです。
よろしくお願いします
この問題に遭遇しました。解決策は次のとおりです
検索:sourceclassdiscuzdiscuz_error.php を開き、
検索: show_error($type, $ errormsg, $phpmsg = '', $typemsg = '')
show_error 関数の下で、file_put_contents 関数を使用して $errormsg を txt に出力します
public static function show_error($type, $errormsg, $phpmsg = '', $typemsg = '') { global $_G;file_put_contents(DISCUZ_ROOT.'./appapi/log.txt',$errormsg.PHP_EOL,FILE_APPEND); ob_end_clean(); $gzip = getglobal('gzipcompress'); ob_start($gzip ? 'ob_gzhandler' : null);//后面的就不复制了...}
まず第一に、jam00 さん、ご回答ありがとうございます。ただし、私のフォーラムは、sourceclassclass_error.php で言及されている対応する変更を加えたものです。
function show_error($type, $errormsg, $phpmsg = '') { global $_G; file_put_contents('http://192.168.1.101/bbs/android/log.txt',$errormsg.PHP_EOL,FILE_APPEND); //file_put_contents(DISCUZ_ROOT.'./android/log.txt',$errormsg.PHP_EOL,FILE_APPEND); ob_end_clean(); $gzip = getglobal('gzipcompress'); ob_start($gzip ? 'ob_gzhandler' : null);
zend がどこで SQL を処理するかはわかりませんが、SQL の実行でエラーが発生した場合, mysql_error() を使用してエラー情報を取得し、file_put_contents を使用してそれを txt に出力することができます
コードを使わずに問題を解決する方法。 。 。
可能であれば、送信されたパラメーターのみを気にする必要があります