2017-10-25 3 views
0

Ich halte diese Fehler erhalten:Schlanke 3 post-Daten

Undefined index: fname in C: \ wamp \ www \ legitapi \ src \ public \ index.php on line 38

und

Warning: PDOStatement :: execute(): SQLSTATE- [HY093]: ungültige Parameternummer: Parameter nicht in C definiert wurde: \ wamp \ www \ legitapi \ src \ public \ index.php on line 5

$app->post('/users/new', function ($request, $response, $args) { 
    require_once '../config/db.php'; 

    $requestObj = $request->getParsedBody(); 

    if(isset($requestObj)){ 
     $firstName = $requestObj['fname']; 
     $lastName = $requestObj['lname']; 
     $email = $requestObj['email']; 
     $phone = $requestObj['phone']; 
     $country = $requestObj['country']; 
     $zipcode = $requestObj['zipcode']; 

     try { 
      $conn = $pdo; 
      $sql = 'INSERT INTO CUSTOMERS(fname, lname, email, phone, country, zipcode) VALUES (:first_name, :last_name, :email, :phone, :country, :zipcode)'; 

      $stmt = $conn->prepare($sql); 
      $stmt->bindValue(':fname', $firstName); 
      $stmt->bindValue(':lname', $lastName); 
      $stmt->bindValue(':email', $email); 
      $stmt->bindValue(':phone', $phone); 
      $stmt->bindValue(':country', $country); 
      $stmt->bindValue(':zipcode', $zipcode); 
      echo json_encode($stmt->execute()); 
     } catch (PDOException $e) { 
      echo json_encode($e); 
     } 
    } 
}); 

Antwort

0

Ihre Post Request Body Params vom Frontend stimmen nicht mit denen des Backends überein. Der Fehler ist in Ihrem HTML-Formularcode auf der Clientseite. Dein PHP-Code ist perfekt.

+0

Ich bin mir nicht sicher, wie damit umzugehen .... Ich benutze Postbote, um meine Anfrage zu senden, und ich schickte die Anfrage über die x-www-urlencoded sowie Formulardaten nur zu sehen. –

+0

Dann machen Sie einen var_dump auf requestObj und sehen Sie, was Sie bekommen. – Scriptonomy

+0

Großartig! das gab mir eine Ausgabe auf Briefträger –