2017-02-05 17 views
0

私はPHPファイルに投稿する基本的なフォームを持っています。JSON経由のPHP POSTは空です

<form action="index.php" method="POST"> 
<input name="operation" id="operation" placeholder="operation" /> 
<br> 
<input id="name" name="name" placeholder="Name" /> 
<br> 
<input id="email" name="email" placeholder="Email"/> 
<br> 
<input id="password" name="password" placeholder="Password"/> 
<br> 
<button type="submit" >POST</button> 
</form> 

問題は、以下のインデックスファイルを使用してNULLまたは空を転記している問題です。 jsonでエンコードするために基本的なphp://入力を使用しています。

if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    $data = json_decode(file_get_contents('php://input')); 

    if(isset($data -> operation)){ 

     $operation = $data -> operation; 
     echo $operation; 
     if(!empty($operation)){ 

     }else{ 

      //$operation is empty ... 

     } 

    }else{ 

      //$operation is not set ... 

    } 

    } 

ただし、file_get_contents( 'php:// input')をエコーすると、投稿されたフォームから正しい値が表示されます。

$演算の戻り値が常に空である理由は何ですか?

+0

そのテキストフィールドとそう...($操作== '登録')であれば{// ...} – BENN1TH

+1

デバッグのように使用される: 'のvar_dump($データ - >操作、 $ operation); '実際に何が含まれているかを確認するには? –

+0

両方ともvar_dump($ data-> operation); // NULLを返します。var_dump(json_decode(file_get_contents( "php:// input"))); // NULLを返しますが、私は物理的にフォーム入力に値を入力します... – BENN1TH

答えて

1

データはJson形式に変換する前に準備する必要がありますこのコードを試してください:) 私はこのコードをテストします。 グッドラック

 


    if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 

    $data = file_get_contents('php://input'); 
    $data = str_replace('=','":"',$data); 
    $data = str_replace('&','","',$data); 
    $data = '{"'.$data.'"}'; 

    $data = json_decode($data); 

    if(isset($data->operation)){ 

     $operation = $data -> operation; 
     echo $operation; 
     if(!empty($operation)){ 
      echo "NOT EMPTY"; 
     }else{ 

      echo "IS EMPTY"; 
      //$operation is empty ... 

     } 

    }else{ 
      echo "NO OPERATION"; 
      //$operation is not set ... 

    } 

    } 

 
+0

ありがとう@AMEACHAQ – BENN1TH

関連する問題