2017-02-05 3 views
0

У меня есть базовая форма для публикации в PHP-файле.PHP POST через JSON пуст

<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 или пустым через индексный файл ниже. Я использую базовый вход php: //, чтобы получить кодировку через json.

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: // ввод') отображает правильные значения из публикуемой формы.

Любая причина, по которой возврат $ операции всегда пуст?

+0

Сво текстовое поле и используется как так ... если ($ операция == 'регистрация') {// ...} – BENN1TH

+1

отладки: операция 'var_dump ($ данных-> $ operation); 'посмотреть, что он на самом деле содержит? –

+0

и var_dump (операция $ data->); // возвращает NULL var_dump (json_decode (file_get_contents ("php: // input"))); // возвращает NULL, но я физически ввожу значение в форму ввода ... – BENN1TH

ответ

1

Ваши данные должны быть подготовлены до преобразования в формат Json. Попробуйте этот код :) Я тестирую этот код, он работает. Good Luck

 


    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

Смежные вопросы