Php XML文档的切换功能不工作
我正在通过XML POST请求从另一台服务器导入车辆。 XML文件的头中有3个条件,称为Php XML文档的切换功能不工作,php,mysql,xml,post,Php,Mysql,Xml,Post,我正在通过XML POST请求从另一台服务器导入车辆。 XML文件的头中有3个条件,称为'actie':'add'、'change'和'delete'。当我检查我的日志时,它显示一切正常,但数据库中没有任何更改。打印(“添加”)不输出als'add' 这是服务器正在接收的XML文件的输出 <?xml version="1.0" encoding="UTF-8"?> <voertuig xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins
'actie'
:'add'、'change'和'delete'
。当我检查我的日志时,它显示一切正常,但数据库中没有任何更改。打印(“添加”)当开关必须触发外壳时,code>不输出als'add'
这是服务器正在接收的XML文件的输出
<?xml version="1.0" encoding="UTF-8"?>
<voertuig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://eigenwebsite.doorlinkenvoorraad.nl/docs/2.16/voertuig.xsd" actie="add" versie="2.16">
<voertuignr_hexon>21467583</voertuignr_hexon>
<voertuignr>9574649-AWD</voertuignr>
<voertuignr_klant/>
<klantnummer>33898</klantnummer>
<invoerdatum>21-10-2019</invoerdatum>
<kenteken>HF499B</kenteken>
<merk>Audi</merk>
<model>A3</model>
<type>Sportback 1.4 e-tron PHEV Ambition Pro Line+ Trekhaak incl. BTW!</type>
<toevoeging/>
<merk_orig>Audi</merk_orig>
<model_orig>A3 Sportback</model_orig>
<type_orig>1.4 e-tron PHEV Ambition Pro Line+ Trekhaak incl. BTW!</type_orig>
<voertuigsoort>AUTO</voertuigsoort>
<carrosserie>Hatchback</carrosserie>
<aantal_deuren>5</aantal_deuren>
<tellerstand eenheid="K">184911</tellerstand>
<brandstof>B,E</brandstof>
</voertuig>
有人能帮我找出开关功能不工作的原因吗
谢谢 var_dump((string)$xml['actie'])代码>它的结果是什么?@ cBROE是:String(0)“那么,考虑你在这里提出的问题,然后进行调试:-”你的函数<代码> PARSISML不返回任何东西。职业训练局是打字错误。
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$servername = "localhost";
$username = "safetypurposes";
$password = "safetypurposes";
$database = "safetypurposes";
// Create connection
$conn = new mysqli($servername, $username, $password, $database);
if($_SERVER['REMOTE_ADDR'] != '90.145.213.154') {
// Aanvraag komt niet van Hexon Server
exit;
}
$xmldoc = file_get_contents('php://input');
$xml = parseXml($xmldoc);
switch((string)$xml['actie']) {
case 'add':
// Controles uitvoeren
controleer_voertuig($xml);
// Voertuig toevoegen aan database
$sql = 'INSERT INTO voertuigen (hexon_nr, kenteken, merk) VALUES ('. (string) $xml->voertuignr_hexon .', "'. addslashes((string) $xml->kenteken) .'", "'. addslashes((string) $xml->merk) .'")';
// ...
print("add");
// Foto's opslaan
verwerk_fotos($xml->afbeeldingen);
break;
case 'change':
// Controles uitvoeren
controleer_voertuig($xml);
// Voertuig wijzigen in database
$sql = 'UPDATE voertuigen SET kenteken = "'. addslashes((string) $xml->kenteken) .'", merk = "'. addslashes((string) $xml->merk) .'" WHERE hexon_nr = '. $xml->voertuignr_hexon .' LIMIT 1';
// ...
// Foto's opnieuw ophalen
verwerk_fotos($xml->afbeeldingen);
break;
case 'delete':
// Voertuig verwijderen uit database
$sql = 'DELETE FROM voertuigen WHERE hexon_nr = '. (string) $xml->voertuignr_hexon .' LIMIT 1';
// ...
break;
}
// Everything went ok
print("OK");
function parseXml($xmldoc) {
// XML inlezen met je favoriete XML-parser. Het voorbeeld gebruikt simpleXML.
$xml = @simplexml_load_string($xmldoc);
if(!$xml) {
// Foutmelding teruggeven aan server van Hexon
print("Geen geldige XML ontvangen");
exit;
}
}
function controleer_voertuig($xml) {
if(empty($xml->fotos)) {
// Foutmelding teruggeven aan server van Hexon
print("Op de eigen website zijn alleen voertuigen met foto toegestaan");
exit;
}
}
function verwerk_fotos($fotos) {
foreach($fotos as $foto_nr => $foto_url) {
$bestandsnaam = 'fotos/'. $_GET['hexon_nr'] .'-'. $foto_nr .'.jpg';
$imgdata = file_get_contents($foto_url);
file_put_contents($bestandsnaam, $imgdata);
}
}