Попытка отправить данные через POST с помощью Угловая свернуться

голоса
0

Я пытаюсь отправить данные , но он не каждый раз .
Smehow , когда я отправить его из Угловая свернуться он говорит Undefined индекс (который я знаю , скорее всего , переменная пуста или не посылает)

inicio.ts :

insertar() {
   this.fname = this.Form.value.fname;
   this.email = this.Form.value.email;
    this.http.post('http://localhost/curl/config/config.php', {
      fname : this.fname,
      email: this.email,
    }).subscribe((data: any) => {
      console.log(data);
      this.router.navigate(['/inicio']);
    }, error => {
       console.log(JSON.stringify(error));
    });
  } 

config.php

<?php

# An HTTP GET request example
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth- 
Token');
header('Content-Type: application/x-www-form-urlencoded');
$method = $_SERVER['REQUEST_METHOD'];
$url = 'http://localhost/curl/api/rest.php';
$postdata = file_get_contents(php://input);
$data = json_decode($postdata, true); 
print_r($data);

if(isset($_POST['fname']) && $_POST['email']){
    $data = [
        fname => $_POST['fname'],
        email => $_POST['email'],
        ];
}

if(isset($_POST['id'])){
$id = [
    id => $_POST['id']];
}


switch ($method) {
    case 'GET':
         // not ready
        break;
        case 'POST':
        postData($url,$method,$data);
        break;
        case 'PUT':
        # code...
        break;
        case DELETE:
         // not ready
        break;

    default:
        //echo json_encode(['Error'=>'Un Error ha ocurrido']);
        break;
}
function postData($url,$method,$data){
   $ch = curl_init();
   curl_setopt($ch,CURLOPT_URL, $url);
   curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
   curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
   curl_setopt($ch,CURLOPT_POST, 1);
   curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($data));
   $response = curl_exec($ch);

   if(!$response){
       return false;
   } else {
      print_r($response);
   }
   curl_close($ch);

}

Так что я что - то в моем файле PHP не хватает? потому что я думаю , что есть нечто , что останавливает или не распознает данные я посылаю его.
Edit: если я использую терминал и я исполняю

curl -X POST <url> -d param:value -d param2:value2

оно работает

Во- вторых Edit : Теперь он работает в файле config.php , но когда я пытаюсь отправить информацию от $ данных он отправляет пустым.

Код API :

<?php 

header('content-type:application/json');
header('Access-Control-Allow-Origin: *');
include ('../config/conn.php');

$method = $_SERVER['REQUEST_METHOD'];

$postdata = file_get_contents(php://input);



switch ($method) {
    case 'GET':
        get($conexion);
        break;
    case 'POST':
        post($conexion,$postdata);
        break;
    case 'PUT':
        put();
        break;
    case 'DELETE':
       delete($conexion,$postdata);
        break;    

    default:
        # code...
        break;
}


function get($conexion){

   $sql = 'SELECT * FROM tbl_users';
$resultado = pg_query($conexion,$sql);
while ($rows = pg_fetch_array($resultado)) {
    $array[] = $rows;
}
echo json_encode($array);
}



function post($conexion,$postdata){
//It displays as empty string
echo $postdata;

 /*
$sql = INSERT INTO tbl_users(fname,email) VALUES('.$fname.','.$email.');
 $resultado = pg_query($conexion,$sql);  
 close($conexion);  
 */   
}

function put(){

}
function delete($conexion,$postdata){
    parse_str($postdata, $arr);
    $idn = $arr['id'];
    $id = (int)$idn;
    echo $id;


}

function close($conexion){
    pg_close($conexion);
}


 ?>
Задан 20/10/2018 в 05:36
источник пользователем
На других языках...                            


1 ответов

голоса
0

Когда postign содержание JSON, вы не можете использовать $_POSTпеременную

Попробуйте что-то вроде этого

$jsonBody= file_get_contents('php://input');
$data = json_decode($jsonBody, true); 

$dataдолжен быть ассоциативным массивом с fnameи emailключи

Ответил 20/10/2018 в 06:37
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more