-1
私はAsyncTask
を使ってwebserviceにnameValuePairs
を送るAndroidプロジェクトに取り組んでいます。 私は、アプリケーションからデータベースにデータを送信するには、以下のPHPコードを使用:dbConnect.php
ファイルでPHPを使ったMySQLへのAndroidの投稿値
<?php
require_once('dbConnect.php');
$studentid = $_POST['name'];
$classid = $_POST['classid']
$studentid = $_POST['studentid'];
$start = $_POST['start'];
$end = $_POST['end'];
$startsig = $_POST['startsig'];
$endsig = $_POST['endsig'];
$sql = "insert into signature (studentid,classid,start,end,startsig,endsig) values ('$studentid','$classid','$start','$end','$startsig','$endsig')";
if(mysqli_query($con,$sql)){
echo 'success';
}
else{
echo 'failure';
}
mysqli_close($con);
?>
私がチェックしたところ、アプリケーションはデータを正常に送信しましたが、上記のPHPファイルにブラウザからアクセスしようとすると、HTTP 500
エラーが発生します。 この場合、他に何を確認する必要がありますか?
最初のステップは、デバッグしているより多くのエラーのために最後に割り当てられた値
$_POST['studentid']
てみデバッグ。次のコード行は、PHPが応答にエラーテキストを送信させるようにします。応答を調べると、エラーが表示されます。 'error_reporting(E_ALL);' 'ini_set(" display_errors "、" 1 ");'開かれた '<?php'タグの後にこれらをPHPスクリプトの先頭に置きます。 –
**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman