2017-08-18 13 views
0

私のAuthentication.phpクラスでは、以下のようなコードがあります。データベースにデータを挿入するPHP webservice

public function prepareTicket($data){ 
    if(array_key_exists('tickettype', $data)) 
     $this->tickettype = $data['tickettype']; 

    if(array_key_exists('ticketinfo', $data)) 
     $this->ticketinfo = $data['ticketinfo']; 
} 

function createTicket(){ 
    $sql = "INSERT INTO ticket_test (tickettype, ticketinfo) VALUES ('$this->tickettype','$this->ticketinfo')"; 
    $result = mysqli_query($this->DB_CONNECTION,$sql); 

} 

function createTicketControl(){ 
    $sql = "SELECT * FROM `ticket_test` WHERE tickettype = '".$this->tickettype."'AND ticketinfo ='".$this->ticketinfo."'"; 
    $result = mysqli_query($this->DB_CONNECTION,$sql); 

    if(mysqli_num_rows($result) >0){ 
     return true;    
    }else{ 
     return false; 
    } 
} 

その他のphpファイルには、このようなコードがあります。

<?php 
include_once 'Authentication.php'; 
use user\Authentication; 

$auth = new Authentication(); 
$auth->prepareTicket($_POST); 
$ticketStatus = $auth->createTicketControl(); 

if($ticketStatus){ 
    $json['success'] = 1; 
    $json['message'] = 'Destek kaydı oluşturuldu'; 

}else{ 
    $json['success'] = 0; 
    $json['message'] = 'Error!'; 
} 

echo json_encode($json); 

今私の問題は、私は私のデータベースにデータを挿入しようとするたびに、それは「成功」=「0」、「メッセージ」=「エラー」とデータcouldntのはdatabase.I平均に挿入されることを返すということですサービスは正常に動作していません。助けていただければ幸いです。

PS =このコードでSQLインジェクションの脅威を認識しています。それはアンドロイドアプリのため、心配する必要はありません。 solution.IがCreateTicket.phpに私はAuthentication.phpからcreateTicket関数を呼び出すdidintことに気づい見つかり

+3

GoogleがAndroidはSQLインジェクションのコードを心配する必要がないことを聞いて幸せになります...この場合、あなたのサーバー上で実行されているので、誰もあなたのAndroidプログラムを見て、あなたのサーバーをハックすることはありません。

+1

あなたは常にSQLインジェクションについて心配する必要があります。あなたのアプリケーションをインストールし、httpリクエストをアプリケーションから送信してから、奇妙なSQLコード – Mcsky

+1

で本文を修正してください。**警告**: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'、**任意の**ユーザデータを直接クエリーに入れないでください。誰かがあなたのミスを悪用しようとすると非常に危険です。 ** SQLインジェクションについて心配です。常に**。 – tadman

答えて

関連する問題