XML DOM, PHP sending 1's to XML?

XML DOM, PHP sending 1's to XML?

本文关键字:XML to DOM PHP sending      更新时间:2023-09-26

看不懂这个。我的PHP看起来很好,注释掉的代码在留下时产生了2个XML数据集。每个元素....下的XML输出为'1'为什么?

PHP:
<?php 
echo "Submission Successful!";
echo "<a href='buyonline.htm'>Back</a>";
$dom = new DOMDocument();
$dom->load("data/customer.xml");
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$custid = uniqid();
$firstname = isset($_POST['firstname']);
$lastname = isset($_POST['lastname']);
$email = isset($_POST['email']);
$password = isset($_POST['password']);
$phone = isset($_POST['phone']);
/*$firstname = htmlentities($firstname, ENT_COMPAT, 'UTF-8', false);
$lastname = htmlentities($lastname, ENT_COMPAT, 'UTF-8', false);
$email = htmlentities($email, ENT_COMPAT, 'UTF-8', false);
$password = htmlentities($password, ENT_COMPAT, 'UTF-8', false);
$phone = htmlentities($phone, ENT_COMPAT, 'UTF-8', false);*/
$customers = $dom->getElementsByTagName("customers")->item(0);
    $customertag = $dom->createElement("customer");
        $custidtag = $dom->createElement("custid", $custid);
        $firstnametag = $dom->createElement("firstname", $firstname);
        $lastnametag = $dom->createElement("lastname", $lastname);
        $emailtag = $dom->createElement("email", $email);
        $passwordtag = $dom->createElement("password", $password);
        $phonetag = $dom->createElement("phone", $phone);
    $customertag->appendChild($custidtag);
    $customertag->appendChild($firstnametag);
    $customertag->appendChild($lastnametag);
    $customertag->appendChild($emailtag);
    $customertag->appendChild($passwordtag);
    $customertag->appendChild($phonetag);

$customers->appendChild($customertag);
$dom->save('data/customer.xml');

?>
XML: 
<?xml version="1.0"?>
<customers>
<customer>
    <custid>
    </custid>
    <firstname>
    </firstname>
    <lastname>
    </lastname>
    <email>
    </email>
    <password>
    </password>
    <phone>
    </phone>
</customer>
<customer><custid>562b5d237b599</custid><firstname>1</firstname>    
<lastname>1</lastname><email>1</email><password>1</password><phone>1
</phone></customer></customers>

我可以张贴HTML和JS如果你们需要。请帮忙:)

函数isset返回truefalse,取决于是否设置变量。

执行$phone = isset($_POST['phone'])表示$phone获得truefalse的值。将布尔值true写入文件以将其转换为1结束。

我猜你想检查值是否设置,如果没有设置一些默认值。你可以这样做:

$phone = isset($_POST['phone'])? $_POST['phone'] : 'DEFAULT';

你可以用任何值代替'DEFAULT'

:关于注释代码。不知道该不该用。但这段代码的情况是下一个:假设有人输入他的姓I am <robot/>。当您将其直接放入xml文件时,您将收到如下内容:

<lastname>I am <robot/></lastname>

看,你得到了lastname内部的另一个xml标签robot。意想不到的!这就是为什么你应该逃避你的价值观。但我不确定-你应该隐式地做,或者DOM库也这样做,同时导出到xml文件。所以你可以试着自己看看