2016-11-05 11 views
-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); 
?> 

値が正しいです。データベーススキーマは次のようになります。 enter image description here

私がチェックしたところ、アプリケーションはデータを正常に送信しましたが、上記のPHPファイルにブラウザからアクセスしようとすると、HTTP 500エラーが発生します。 この場合、他に何を確認する必要がありますか?

+0

最初のステップは、デバッグしているより多くのエラーのために最後に割り当てられた値$_POST['studentid']

てみデバッグ。次のコード行は、PHPが応答にエラーテキストを送信させるようにします。応答を調べると、エラーが表示されます。 'error_reporting(E_ALL);' 'ini_set(" display_errors "、" 1 ");'開かれた '<?php'タグの後にこれらをPHPスクリプトの先頭に置きます。 –

+0

**警告**: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

答えて

1

私はあなたが

$classid = $_POST['classid'] 

し、また、なぜあなたは$studentid同じphpvariable $studentid = $_POST['name'];$studentid = $_POST['studentid']; .Anywaysに二つの異なるポストの値を代入された後にセミコロンを入れていない、あなたのコードに気づいた二つの問題がありますがあります

関連する問題