FreddyCollin
Ensign
- Registriert
- Dez. 2014
- Beiträge
- 236
Hi ich wollte mit so einem App-Baukasten bzw einer App davon eine Webhook erstellen aber habe folgendes Problem:
Alle Umlaute werden mit einem Fragezeichen dargestellt. Sowohl wenn ich Webhook z.B. mit webhook.site teste oder auch mittel json_decode in einer php json dekodiere:
Skript ist in UTF8 codiert..
Wenn ich die gleichen Daten direkt über die Swagger UI von der Plattform hole.. Dann gibts keine Fehler bei der Anzeige des JSON:
https://platform.smapone.com/backend/swagger/ui/index#!
Jemand eine Idee?
Alle Umlaute werden mit einem Fragezeichen dargestellt. Sowohl wenn ich Webhook z.B. mit webhook.site teste oder auch mittel json_decode in einer php json dekodiere:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=db1012461-eb;charset=utf8', 'user', 'passwort');
$input = file_get_contents('php://input');
$json = json_decode($input, true);
$neuer_ds = array();
$neuer_ds['smap_SendDate'] = $json['SendDate'];
$neuer_ds['smap_UserEmail'] = $json['UserEmail'];
$neuer_ds['inventar_nr'] = intval($json['DataFields'][1]['Value']);
$neuer_ds['inventar_bezeichnung'] = $json['DataFields'][2]['Value'];
$neuer_ds['inventar_typ'] = $json['DataFields'][3]['Value'];
$neuer_ds['inventar_hersteller'] = $json['DataFields'][4]['Value'];
$neuer_ds['standort_latitude'] = $json['DataFields'][5]['Latitude'];
$neuer_ds['standort_longitude'] = $json['DataFields'][5]['Longitude'];
$neuer_ds['standort_timestamp'] = $json['DataFields'][5]['Timestamp'];
$myLink = "https://www.google.de/maps?q=" . $json['DataFields'][5]['Latitude'] . "," . $json['DataFields'][5]['Longitude'];
$neuer_ds['standort_link'] = $myLink;
$neuer_ds['inventar_zustand'] = $json['DataFields'][6]['Value'];
//zuerst schauen, ob es bereits einen Datensatz für diese Inventar-Nr in der Tabelle inventar_standort gibt
//wenn ja, dann diesen Datensatz aktualisieren, ansonsten einen neunen Datensatz anlegen
$statement = $pdo->prepare("SELECT * FROM inventar_standort WHERE inventar_nr = ?");
$statement->execute(array(intval($json['DataFields'][1]['Value'])));
$anzahl_ds = $statement->rowCount();
if ($anzahl_ds > 0) {
//es gibt bereits einen Eintrag in der Tabelle mit dieser Inventar-Nr => Datensatz aktualisieren
$statement = $pdo->prepare("UPDATE inventar_standort SET smap_SendDate = :smap_SendDate, smap_UserEmail = :smap_UserEmail, inventar_bezeichnung = :inventar_bezeichnung, inventar_typ = :inventar_typ, inventar_hersteller = :inventar_hersteller, standort_latitude = :standort_latitude, standort_longitude = :standort_longitude, standort_timestamp = :standort_timestamp, standort_link = :standort_link, inventar_zustand = :inventar_zustand WHERE inventar_nr = :inventar_nr");
$statement->execute($neuer_ds);
} else {
//es gibt noch keinen Eintrag in der Tabelle mit dieser Inventar-Nr => neuen Datensatz anlegen
$statement = $pdo->prepare("INSERT INTO inventar_standort (inventar_nr, smap_SendDate, smap_UserEmail, inventar_bezeichnung, inventar_typ, inventar_hersteller, standort_latitude, standort_longitude, standort_timestamp, standort_link, inventar_zustand) VALUES (:inventar_nr, :smap_SendDate, :smap_UserEmail, :inventar_bezeichnung, :inventar_typ, :inventar_hersteller, :standort_latitude, :standort_longitude, :standort_timestamp, :standort_link, :inventar_zustand)");
$statement->execute($neuer_ds);
}
?>
$pdo = new PDO('mysql:host=localhost;dbname=db1012461-eb;charset=utf8', 'user', 'passwort');
$input = file_get_contents('php://input');
$json = json_decode($input, true);
$neuer_ds = array();
$neuer_ds['smap_SendDate'] = $json['SendDate'];
$neuer_ds['smap_UserEmail'] = $json['UserEmail'];
$neuer_ds['inventar_nr'] = intval($json['DataFields'][1]['Value']);
$neuer_ds['inventar_bezeichnung'] = $json['DataFields'][2]['Value'];
$neuer_ds['inventar_typ'] = $json['DataFields'][3]['Value'];
$neuer_ds['inventar_hersteller'] = $json['DataFields'][4]['Value'];
$neuer_ds['standort_latitude'] = $json['DataFields'][5]['Latitude'];
$neuer_ds['standort_longitude'] = $json['DataFields'][5]['Longitude'];
$neuer_ds['standort_timestamp'] = $json['DataFields'][5]['Timestamp'];
$myLink = "https://www.google.de/maps?q=" . $json['DataFields'][5]['Latitude'] . "," . $json['DataFields'][5]['Longitude'];
$neuer_ds['standort_link'] = $myLink;
$neuer_ds['inventar_zustand'] = $json['DataFields'][6]['Value'];
//zuerst schauen, ob es bereits einen Datensatz für diese Inventar-Nr in der Tabelle inventar_standort gibt
//wenn ja, dann diesen Datensatz aktualisieren, ansonsten einen neunen Datensatz anlegen
$statement = $pdo->prepare("SELECT * FROM inventar_standort WHERE inventar_nr = ?");
$statement->execute(array(intval($json['DataFields'][1]['Value'])));
$anzahl_ds = $statement->rowCount();
if ($anzahl_ds > 0) {
//es gibt bereits einen Eintrag in der Tabelle mit dieser Inventar-Nr => Datensatz aktualisieren
$statement = $pdo->prepare("UPDATE inventar_standort SET smap_SendDate = :smap_SendDate, smap_UserEmail = :smap_UserEmail, inventar_bezeichnung = :inventar_bezeichnung, inventar_typ = :inventar_typ, inventar_hersteller = :inventar_hersteller, standort_latitude = :standort_latitude, standort_longitude = :standort_longitude, standort_timestamp = :standort_timestamp, standort_link = :standort_link, inventar_zustand = :inventar_zustand WHERE inventar_nr = :inventar_nr");
$statement->execute($neuer_ds);
} else {
//es gibt noch keinen Eintrag in der Tabelle mit dieser Inventar-Nr => neuen Datensatz anlegen
$statement = $pdo->prepare("INSERT INTO inventar_standort (inventar_nr, smap_SendDate, smap_UserEmail, inventar_bezeichnung, inventar_typ, inventar_hersteller, standort_latitude, standort_longitude, standort_timestamp, standort_link, inventar_zustand) VALUES (:inventar_nr, :smap_SendDate, :smap_UserEmail, :inventar_bezeichnung, :inventar_typ, :inventar_hersteller, :standort_latitude, :standort_longitude, :standort_timestamp, :standort_link, :inventar_zustand)");
$statement->execute($neuer_ds);
}
?>
Skript ist in UTF8 codiert..
Wenn ich die gleichen Daten direkt über die Swagger UI von der Plattform hole.. Dann gibts keine Fehler bei der Anzeige des JSON:
https://platform.smapone.com/backend/swagger/ui/index#!
Jemand eine Idee?