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" />

但是,我不知道这是否正确.所有三个验证说明都保存在名为“validate_data.php”的文件中.

我的名称和姓氏验证代码几乎相同,主要的“名称”空格已更改:

<?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."; 
}
?>

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

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

 value="<?php echo $first_name; ?>"

例如.如果您要提交insert_data.php,那么所有PHP都只位于顶部的页面上.您似乎有太多

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

或者您将获得空页输入的消息,这些空输入在页面加载时没有机会被提交.如果您随后要将其用于邮件表单的回复:地址(来自:应该始终是您服务器上的地址,或者您将使用它),那么对于您绝对不希望空白的电子邮件地址也一样回到这里张贴想知道为什么它不起作用!)

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

然后你会使用 – 假设你的包含在名为inc /的文件夹中

include "inc/validate_data.php";

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

另一篇好文章包括:

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

例如,如果您正在循环发布帖子,那么执行该操作的代码将位于div中您希望它们出现的HTML中.

点赞