Hallo,
ich versuche gerade aus einer Chrome Extension app eine Json mit einem PHP-Script auszuwerten und in eine Datenbank zu schreiben. Dafür habe ich meinen Code erst einmal mit dem RestCient getestet. In dem RestClient habe ich mir selber eine json gebastelt die folgendermaßen aussieht:
Mein Code funktioniert auch soweit mit dieser Json.
Mein Code:
Probiere ich mein Script jetzt mit der App aus und schreibe den Request in eine Log-Datei sieht er wie befolgt aus:
Ich habe das jetzt so verstanden, dass es sich dabei um ein objekt in einem Array handelt, aber wie komme ich an die Werte dran. Oder heißt es doch, dass von der App nichts ausgeliefert wird.
Bin da gerade ein wenig ratlos und würde mich über jeden kleinen Rat sehr freuen.
Viele Grüße und Danke
Bavra
ich versuche gerade aus einer Chrome Extension app eine Json mit einem PHP-Script auszuwerten und in eine Datenbank zu schreiben. Dafür habe ich meinen Code erst einmal mit dem RestCient getestet. In dem RestClient habe ich mir selber eine json gebastelt die folgendermaßen aussieht:
Code:
{ "city": "Würzburg", "country": "Deutschland", "email": "info@snapaddy.com", "fax": "+4993146621219", "firstName": "Jochen", "gender": 0, "image": "https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAAOGAAAAJGYwZDA3ZDMyLTMwZTEtNGM0NC1iODMzLWQ5M2RiMzk3YjdlNA.jpg", "lastName": "Seelig", "mobile": "+4961966525375", "organization": "snapADDY GmbH", "phone": "+4993146621201", "position": "Geschäftsführer", "xing": "https://www.xing.com/profile/Sebastian_Metzger11", "linkedin": "https://www.linkedin.com/in/sebastian-metzger-a8b58634/", "state": "", "street": "Juliuspromenade 3", "title": "", "website": "https://snapaddy.com", "zip": "97070", "vat": "DE815576732", "created": "2017-03-17T09:32:13.673Z", "createdBy": "s.metzger@snapaddy.com", "createdTimestamp": 1489743133673, "bcImage": "https://api.snapaddy.com/images/21a80dc2b0811a10bb2445dadce5ec5d2485ae49d01892dc723180fb86ff1ed3d6699d4efdf3dad9.jpg", "bcImageBackside": "https://api.snapaddy.com/images/21a80dc2b0811a10bb2445dadce5ec5d2485ae49d01892dc723180fb86ff1ed3d6699d4efdf3dad9.jpg" }
Mein Code:
PHP-Code:
<?php
/**
* Created by PhpStorm.
* User: bavramor
* Date: 08.11.17
* Time: 22:37
*/
include("logs/logfile.html");
include("logs/logfile.txt");
require_once("includes/config.inc.php");
//Make sure that it is a POST request.
if (strcasecmp($_SERVER['REQUEST_METHOD'], 'POST') != 0) {
throw new Exception('Request method must be POST!');
}
//Make sure that the content type of the POST request has been set to application/json
$contentType = isset($_SERVER["CONTENT_TYPE"]) ? trim($_SERVER["CONTENT_TYPE"]) : '';
if (strcasecmp($contentType, 'application/json') != 0) {
throw new Exception('Content type must be: application/json');
}
//Receive the RAW post data.
$content = file_get_contents("php://input");
//Attempt to decode the incoming RAW post data from JSON.
$decoded = json_decode($content, true);
//If json_decode failed, the JSON is invalid.
if (!is_array($decoded)) {
throw new Exception('Received content contained invalid JSON!');
}
print_r($decoded["firstName"]);
print_r($decoded["lastName"]);
$firstName = $decoded["firstName"];
$lastName = $decoded["lastName"];
mysqli_query($db_link, "INSERT INTO `contact` (`id`, `first_name`, `last_name`) VALUES('$firstName', '$lastName', 'Dortmond')");
mysqli_close($db_link);
?>
Code:
POST /api/v1/portal-access/scripts/request.php HTTP/1.1 HTTP headers: Espo-Cgi-Auth: Host: espocrm.norajensen.de Connection: keep-alive Accept: application/json Origin: chrome-extension://pijkopmmbakjnkbhlhmoiakmdjomjppo User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 Accept-Encoding: gzip, deflate Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4 Cookie: auth-username=admin; auth-token=4e8b2e151316a191468cf2b5aa5a22fe Request body: [object Object]
Ich habe das jetzt so verstanden, dass es sich dabei um ein objekt in einem Array handelt, aber wie komme ich an die Werte dran. Oder heißt es doch, dass von der App nichts ausgeliefert wird.
Bin da gerade ein wenig ratlos und würde mich über jeden kleinen Rat sehr freuen.
Viele Grüße und Danke
Bavra
Kommentar