验证HTML中的信息 - 代码定位

时间:2015-12-16 20:25:39

标签: php html

我无法让代码验证工作。我已经写了名称,姓氏和电子邮件地址的验证,但是,我不知道在我的主html中为php代码插入命令的位置。

我在想我必须在这样的表单中添加动作:

<body>
    <div class="logo"></div>
    <div class="login-block">
        <h1>Create Account</h1>
        <form action="insert_data.php" method="post">
        <form action="validate_data.php">
            <input type="text" value="" placeholder="First Name" name="first_name" />
            <input type="text" value="" placeholder="Last Name" name="last_name" />
            <input type="email" value="" placeholder="E-mail Address" name="email_address" />

但是,我不知道这是否正确。所有三个验证说明都保存在名为&#39; validate_data.php&#39;。

的文件中。

我的名称和姓氏验证代码几乎相同,主要名称&#39;空间改变了:

<?php
$first_name = test_input($_POST["first_name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$first_name)) {
$first_nameErr = "Incorrect name format."; 
}
?>

和我的电子邮件:

<?php
$email_address = test_input($_POST["email_address"]);
if (!filter_var($email_address, FILTER_VALIDATE_EMAIL)) {
    $email_addressErr = "Invalid email format."; 
}
?>

我有什么特别的地方可以称之为?或者我只是做了一些愚蠢的错误而错过了它?

1 个答案:

答案 0 :(得分:1)

除非您将页面发送给自己,否则不要将其放在HTML中,在这种情况下,通常最好将PHP放在页面顶部。它需要被命名为.php页面而不是.html。这样,例如,如果您希望使表单的值保持为提交的内容,则可以通过设置文本框值清除它们后回显它们

 value="<?php echo $first_name; ?>"
例如,

。如果您要提交insert_data.php,则所有PHP都位于该页面顶部。您似乎有太多<form actions - 您只能提交一次。最好将清理代码放在insert_data.php的顶部并提交给它。

如果它在同一页面上,则需要将其包装在

    if( isset($_POST["first_name"])){
     // do the cleanup
    }

或者您将获得空输入的消息,这些输入在页面加载时无法提交。如果您随后要将其用于邮件表单的Reply-To:地址(From:,那么请确保您不希望空白的电子邮件地址也一样永远是你服务器上的一个地址,否则你会回到这里,想知道它为什么不起作用!)

你可以include验证脚本,但这可能有点风险,而且对于代码的长度来说,将它作为包含它可能没什么优势。包括不安全的风险:http://www.webhostingtalk.com/showthread.php?t=199419

然后您将使用 - 假设您的包含在名为inc/

的文件夹中
include "inc/validate_data.php";

位于insert_data.php页面的顶部 - 没有该文章中显示的括号 - 它是一个声明,而不是一个函数。

关于includes的另一篇好文章:

http://green-beast.com/blog/?p=144

例如,如果您要发布帖子,那么执行此操作的代码将位于div中您希望它们出现的HTML中。