【问题标题】:How to check if email exists in xml file [duplicate]如何检查xml文件中是否存在电子邮件[重复]
【发布时间】:2014-10-11 08:12:59
【问题描述】:

我希望系统在发生新注册时检查 xml 文件中是否存在电子邮件,我该怎么做?我有了比较所有电子邮件节点的基本想法,但几个小时后仍然无法让它工作。感谢您的帮助

注册.html

<!DOCTYPE html>
<html lang="en">
<head>
<title>test</title>
</head>
<body>
<h1>ShipOnline System Registration Page</h1>
<form id="regform" method="post" action="register.php">
<fieldset id="person"> 
<legend>Your details:</legend>
<p><label for="fname">First Name:</label><input type="text" name="fname"/></p>
<p><label for="lname">Last Name:</label><input type="text" name="lname"/></p>
<p><label for="password">Password:</label><input type="password" name="password"/></p>
<p><label for="cpassword">Confirm Password:</label><input type="password" name="cpassword"/></p>            
<p><label for="email">Email:</label><input type="email" id="email" name="email"/></p>
<p><label for="phone">Phone:</label><input type="text" name="phone"/></p>
<input type="submit" value="Register"/>
</fieldset>
</form>
</body>
</html>

register.php的相关部分

<?php
$email = @trim($_POST["email"]);
if ($password != $cpassword)
{
    echo 'Password does not match';
}
@override
else if ($email /*exists*/)
{
    echo 'Email exists';
}
?>

客户.xml

<?xml version="1.0"?>
<customer>
<user>
    <id>0</id>
    <fname>John</fname>
    <lname>Smith</lname>
    <email>jsmith@gmail.com</email>
    <password>jsmith</password>
    <phone>0412345677</phone>
</user>
<user>
    <id>1</id>
    <fname>Arthur</fname>
    <lname>Luo</lname>
    <email>aluo@gmail.com</email>
    <password>aluo</password>
    <phone>0412345678</phone>
</user>

【问题讨论】:

    标签: php html xml


    【解决方案1】:

    最简单的方法是对 XML 文件的内容进行简单搜索。如果您确信没有其他 &lt;email&gt; 标记包含其他上下文中的电子邮件地址,这很好。例如:

    # slurp the XML file into a variable
    $xml = file_get_contents('customer.xml');
    # search for the email address within the tags
    if (strpos($xml, "<email>$email</email>") !== false)) {
        # you've found it!
    }
    

    您还可以使用 DOMDocument 和 DOMXPath 来解析 XML 并搜索电子邮件地址。老实说,考虑到您发布的 XML 文件的简单性,这似乎有点过头了。

    【讨论】:

    • 注意 XML 注入。
    • @hakre 可能更有用地提供有关清理输入的 OP 链接/建议。
    • 其实这个问题问错了恕我直言:Form + X + ...。例如,OP 应该首先询问如何搜索 XML。从编程的角度来看,搜索值来自哪里,或者它是否与电子邮件或泡泡糖-移除-机器-型号-编号有关,这并不重要。但是,根据您建议搜索 XML 的方式,不仅 XML 需要匹配要求(例如,电子邮件中没有 cmets 和/或 &amp;gt; 等实体),而且还需要匹配给定的输入。然而,快速接受表明,OP 对解决方案不太感兴趣,但对收集问题更感兴趣。更好的简历这样的
    • @hakre SO 就其本质而言,主要是关于人们解决小问题并可能为自己创造更大的问题,因为他们缺乏经验——他们不知道要问的“正确”问题。通常人们只是想快速解决他们当前的问题并且对进一步探索不感兴趣(或者说,阅读解释代码在做什么的 cmets)。不幸的是,这就是野兽的本性。顺便说一句,托管您的 print_r 解析器的站点已关闭。 `:`
    • 是的,尤其是这些问题已经得到解答。这就是为什么最好指向现有资源的原因。这就是 SO 的用途。一旦你发现了,那就是放置错误答案的问题^^ :)
    猜你喜欢
    • 1970-01-01
    • 2021-06-12
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多