2017-02-14 9 views
0

私はPHPにはとても新しいです。登録フォームの値をデータベースに保存する責任があるjsonサービスを作成することはできません。問題は、空の値をデータベースに保存することです。問題は、私は、JSONから値を取得する方法を理解し、データベースにPOSTメソッドを使用して値を送信するPHP - データベースの空のJSON値

PHPコード

<?php 

// Include confi.php 
include_once('confi.php'); 


if($_SERVER['REQUEST_METHOD'] == "POST"){ 
    // Get data 
    $name = isset($_POST['name']) ? mysql_real_escape_string($_POST['name']) :''; 
    $email = isset($_POST['email']) ? mysql_real_escape_string($_POST['email']) : ''; 
    $password = isset($_POST['pwd']) ? mysql_real_escape_string($_POST['pwd']) : ''; 
    $status = isset($_POST['status']) ? mysql_real_escape_string($_POST['status']) : ''; 

    // Insert data into data base 
    $sql = "INSERT INTO `test`.`users` (ID,`name`, `email`, `password`, `status`) VALUES (NULL,'$name', '$email', '$password', '$status');"; 
    $qur = mysql_query($sql); 
    if($qur){ 
     $json = array("status" => 1, "msg" => "Done User added!"); 
    }else{ 
     $json = array("status" => 0, "msg" => "Error adding user!"); 
    } 
}else{ 
    $json = array("status" => 0, "msg" => "Request method not accepted"); 
} 
@mysql_close($conn); 

/* Output header */ 
    header('Content-type: application/json'); 
    echo json_encode($json); 

{ 
    "name":"aamir", 
    "email":"[email protected]", 
    "pwd":"12345678", 
    "status":"yes" 
} 

This is the result と私は続いているそれらを保存することはできませんですこのリンク https://trinitytuts.com/build-first-web-service-php/

+1

1を使用する必要があります彼らは、バージョン7.0で始まるPHPから削除されたとして 'mysql_ *'関数を使用して、ご遠慮ください。代わりに 'mysqli'か' PDO'を使います。 2) 'echo $ sql;'は正しい値を表示していますか? –

+0

@ Jiri Hrazdil tihisの行は、コロンの後にシングルクォートで値を入れると値を保存します。この行のようにバナナをデータベースに保存します... $ name = isset($ _ POST ['name'])? mysql_real_escape_string($ _ POST ['name']): 'バナナ'; – Aamir

+0

これは、 '$ _POST ['name']'が設定されていないことを意味します。問題はPOSTメソッドで値をスクリプトに送信するときの部分です... –

答えて

0

私の意見では、クライアント - サーバーint誤り。 PHPはJSONデータを解析せず、URLエンコードされた値でのみ動作します。 したがって、$ _POST変数は空の配列です。

JSONフォーマットされた値を取得するには、あなたは)

$post = json_decode(file_get_contents('php//input'), true)); 
+0

私はこの行をどこに置くかはわかりません。またはどのコードをこの行に置き換えるべきですか – Aamir

+0

これを最初の行に入れて、2行目にこれを書きます: 'var_dump($ post); exit;' – degr

+0

ありがとう – Aamir