PHP表单处理之空白检测

文件form_phone_values.inc中@$$field的意思:
$field是一个变量,在遍历$labels时它可以是first_name,middle_name,last_name或phone,对应地$$label就会变成变量$first_name,$middle_name,$last_name或$phone,这用于在输入过一次表单后提交失败的情况下在表单中依然保留用户的输入。
@符号表示如果是第一次加载这个页面,$first_name,$middle_name,$last_name和$phone并不存在,此时不提示错误信息。

<?php
/*  Program name: form_phone_values.inc
*  Description:  Defines a form that collects a user's
*                name and phone number.
*/
$labels = array( "first_name" => "First Name",
                 "middle_name" => "Middle Name",
                 "last_name" => "Last Name",
                 "phone" => "手机号码");
$submit = "提交";
?>
<html>
<head><meta charset="utf-8"><title>Customer Phone Number</title>
<style type='text/css'>
<!--
#form {
    margin: 1.5em 0 0 0;
    padding: 0;
}
#field {padding-bottom: 1em;}
label {
    font-weight: bold;
    float: left;
    width: 20%;
    margin-right: 1em;
    text-align: right;
}
-->
</style>
</head>
<body>
<h3>请在下面输入您的手机号码</h3>
<?php
//$_SERVER[PHP_SELF]指"当前脚本的路径/文件名"
echo "<form action='$_SERVER[PHP_SELF]' method='POST'>
<div id='form'>";
if(isset($message))
{
    echo $message;
}
/* Loop that displays the form fields */
foreach($labels as $field => $label)
{
    echo "<div id='field'><label for='$field'>$label</label>
    <input id='$field' name='$field' type='text'
    size='50%' maxlength='65'
    value='".@$$field."' /></div>\n";
    }
    echo "<input type='hidden' name='sent' value='yes' />\n";
    echo "<input style='margin-left: 33%' type='submit'
    value='$submit' />\n";
?>
</form></body></html>

strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。
PHP extract() 函数从数组中把变量导入到当前的符号表中。对于数组中的每个元素,键名用于变量名,键值用于变量值。第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。本函数返回成功设置的变量数目。

<?php
/*  Program name: checkBlank.php
*  Description:  Program checks all the form fields for
*                blank fields.
*/
if(isset($_POST['sent']) && $_POST['sent'] == "yes")
{
    /* check each field except middle name for blank fields */
    foreach($_POST as $field => $value)
    {
        if($value == "")
        {
            if($field != "middle_name")
            {
                $blank_array[] = $field;
            } // endif field is not middle name
        } // endif field is blank
        else
        {
            $good_data[$field] = strip_tags(trim($value));
        }
    }  // end of foreach loop for $_POST
    /* if any fields were blank, create error message and redisplay form */
    if(@sizeof($blank_array) > 0)
    {
        $message = "<p style='color: red; margin-bottom: 0; font-weight: bold'>
    You didn't fill in one or more required fields. You must enter:
    <ul style='color: red; margin-top: 0; list-style: none' >";
    
        /* display list of missing information */
        foreach($blank_array as $value)
        {
            $message .= "<li>$value</li>";
        }
        $message .= "</ul>";
    
        /* redisplay form */
        extract($good_data);
        include("form_phone_values.inc");
        exit();
    } // endif blanks
    echo "All required fields contain information";
} // endif submitted
else
{
    include("form_phone_values.inc");
}
?>
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容