2016-03-29 4 views
0

Ich habe an einer Möglichkeit gearbeitet, Variablen aus meiner Anwendung in meine Datenbank zu pushen. Es macht jetzt erfolgreich eine Verbindung, aber es funktioniert nicht schieben die Variablen in der Datenbank (es eine neue Zeile macht, aber die die Variablen sind leer.)Angular - PHP API Keine Variablen in der Datenbank eingefügt

Ich werde meinen Posten http.get

$scope.signupuser = function(info){ 
$scope.user = []; 
$scope.user.email = 
$scope.user.voornaam = 
$scope.user.achternaam = 
$scope.user.postcode = 
$scope.user.woonplaats = 
$scope.request = $http({ 
    url: "www.test.com/example.php", 
    method: "POST", 
    params: { 
     voornaam: $scope.user.voornaam, 
     achternaam: $scope.user.achternaam, 
     email: $scope.user.email, 
     postcode: $scope.user.postcode, 
     woonplaats: $scope.user.woonplaats 
    }, 
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' } 
}); 
$scope.request.success(function(data, status, headers, config){ 
    console.log("inserted Successfully") 
}) 

Mein example.php

<?php 

include '../dbconnect.php'; 

try { 
    json_decode(file_get_contents("php://input")); 
    print_r($_POST); 
    // set the PDO error mode to exception 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sql = "INSERT INTO 
       users ( 
        email, 
        voornaam, 
        achternaam, 
        postcode, 
        woonplaats 
       ) VALUES (
        '$email', 
        '$voornaam', 
        '$achternaam', 
        '$postcode', 
        '$woonplaats' 
       )"; 
    // use exec() because no results are returned 
    $conn->exec($sql); 
    echo "New record created successfully"; 
} catch(PDOException $e) { 
    echo $sql . "<br>" . $e->getMessage(); 
} 
$conn = null; 

?> 

ich vermute, es ist ein Fehler, wie example.php die gelieferten Variablen behandelt, aber ich bin nicht sicher.

Vielen Dank im Voraus! :)

EDIT:

Fehlermeldung zur Klärung

Array ([{"voornaam":"gfa","achternaam":"g","email":"[email protected]","postcode":"8271AT","woonplaats":"fdsa"}] =>) 
Notice: Undefined index: email in /var/www/vhosts/text.com/httpdocs/example.phpon line 13 

Notice: Undefined index: voornaam in /var/www/vhosts/text.com/httpdocs/example.php on line 14 

Notice: Undefined index: achternaam in /var/www/vhosts/text.com/httpdocs/example.php on line 15 

Notice: Undefined index: postcode in /var/www/vhosts/text.com/httpdocs/example.php on line 16 

Notice: Undefined index: woonplaats in /var/www/vhosts/text.com/httpdocs/example.php on line 17 
New record created successfully 

ZWEITE EDIT:

print_r ($ _ POST)

Array ([{"voornaam":"Jogn","achternaam":"Doe","email":"[email protected]_com","postcode":"3252AR","woonplaats":"Zwolle"}] =>) 

print_r ($ _ POST [0])

Notice: Undefined offset: 0 in /var/www/vhosts/test.com/httpdocs/example.php on line 9 

print_r ($ _ REQUEST)

Array ([{"voornaam":"Jogn","achternaam":"Doe","email":"[email protected]_com","postcode":"3252AR","woonplaats":"Zwolle"}] =>) 
+0

sein Was ist mit all den '$ scope.voornaam los ist = // nichts "im Javascript? –

+0

Ja, Sorry, das war immer noch übrig von dem Versuch, Werte auf die Varirablen zu setzen und dann zu senden. Um zu sehen, ob es ein Problem in meinem Javascript war, anstatt den Teil zu senden, wo ich Variablen sende. Sollte das bereinigt haben –

+0

Haben Sie versucht 'var_dump ($ _ POST)'; überhaupt zu sehen, was da drin ist? Probieren Sie auch 'var_dump ($ _ REQUEST)' um GET 'zu überprüfen usw. –

Antwort

0

diese mit PDO Versuchen Aussagen vorbereitet stattdessen viel sicherer, verhindert SQL-Injection usw.

$sql = "INSERT INTO 
      users ( 
       email, 
       voornaam, 
       achternaam, 
       postcode, 
       woonplaats 
      ) VALUES (
       ':email', 
       ':voornaam', 
       ':achternaam', 
       ':postcode', 
       ':woonplaats' 
      )"; 

$params = array(
    ':email' => $_POST['email'], 
    ':voornam' => $_POST['voornaam'] 
    // etc 
) 
$statement = $conn->prepare($sql); 
$result = $statement->execute($params); 


In Winkel Versuch: (von der

var params = { 
    voornaam: $scope.user.voornaam, 
    achternaam: $scope.user.achternaam, 
    email: $scope.user.email, 
    postcode: $scope.user.postcode, 
    woonplaats: $scope.user.woonplaats 
} 
$http 
    .post("www.test.com/example.php", params) 
    .then(function successCallback(response) { 
     // this callback will be called asynchronously 
     // when the response is available 
     console.log("inserted Successfully") 
    }, function errorCallback(response) { 
     // called asynchronously if an error occurs 
     // or server returns response with an error status. 
    }); 
}); 
Angular Docs) genommen
+0

Hallo, danke für die Antwort. Ich habe es geändert, aber jetzt sagt es immer wieder "Undefinierter Index: (platziere alle Variablen hier)" Ich nehme an, das bedeutet, dass die Variablen nicht einmal am Dokument ankommen? –

+0

@MartijnBos die POST-Daten sind eindeutig da ... hast du meinen Code genau kopiert, mit ': email' usw.? –

+0

Veröffentlichen Sie den tatsächlichen Fehler, den Sie erhalten haben? –

0

versuchen, eine serialzier, um Ihre Daten zu verwenden, und ich ziehe $httpParamSerializerJQLike verwenden .Don't vergessen hinzuzufügen Abhängigkeiten an die Steuerung und Sie sollten Code

var data={ 
    voornaam: $scope.user.voornaam, 
    achternaam: $scope.user.achternaam, 
    email: $scope.user.email, 
    postcode: $scope.user.postcode, 
    woonplaats: $scope.user.woonplaats 
} 
$scope.request = $http({ 
url: "www.test.com/example.php", 
method: "POST", 
data: $httpParamSerializerJQLike(data), 
headers: { 'Content-Type': 'application/x-www-form-urlencoded' } 
}); 
Verwandte Themen