Bonjour,

Je suis entrain de créer une petite application qui permet de récupérer les données depuis un serveur et après les modifier ou ajouter d'autres entrée avec les technologies (Angular4, PHP, Mysql)

1. Pour obtenir les données j'ai un fichier getClients.php
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?php
header('Access-Control-Allow-Origin:*');
include('connection.php');
$statement = $pdo->prepare( "select * from clients");
$statement->execute();
$results= $statement->fetchAll(PDO::FETCH_ASSOC);
 
$json = json_encode($results);
 
echo $json;
?>
et ça marche très bien coté Angular j'arrive à récupérer mes données et les afficher, mon problème est: je n'arrive pas à envoyer données au serveur et je pense que le problème vient de PHP, le fichier utilisé pour la méthode POST est postClients.php:

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<?php
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');
echo "Data envoyées";
 
$data = json_decode(file_get_contents('php://input'));
echo $data;
?>
et j'ai essayé encore var_dump ($_POST) et ça ne marche pas.

mes fichier Angular sont:

1. clients.service.ts
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { Injectable } from '@angular/core';
import {Http, Headers} from '@angular/http';
import 'rxjs/Rx';
 
 
@Injectable 
export class ClientsService {
 
  constructor(private http: Http) {}
 
  // obtenir les client du serveur
  getClients() {
    return this.http.get('http://localhost/testPhp/getClients.php');
  }
 
  // form submit to serveur
  postClient(client: any) {
    const headers = new Headers({'Content-Type': 'application/json'});
    console.log('Client object values from form: ');
    console.log(client);
    return this.http.post('http://localhost/testPhp/postClients.php', client, {headers: headers});
  }
}
et dans app.component.ts:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
onSubmit(form: NgForm) {
        this.submitted = true;
 
       this.clienteService.postClient(form.value).subscribe(
            (formContents) => console.log('Form contents in app component sended ' + formContents),
            (error) => console.log('Erreur de ' + error)
        );
 
        this.signupForm.reset();
    }
et avec le console je vérifie bien que mes données sont envoyées au service clients.service.ts :

avec var_dump($_POST) dans mon fichier postClients.php je n'ai pas d'erreur mais j'ai rien coté serveur
avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$data = json_decode(file_get_contents('php://input'));
echo $data;
j'ai une erreur 500 :

Merci à vous si vous pouvez me dire comment je peux régler ce problème

Gr