表单Form提交数据和PHP数据处理

一.先来认识一下表单有那些常用元素和属性:
1. name="表单名称" ,非必须但是为避免混乱,不同表单尽量用不同的名字,且应该与表单的功能相符;
action="表单提交地址",真正处理表单的数据脚本和程序,可以是*.php\*.html\*.asp\mailto:等等;
method="数据提交方式",get\post,两者区别还不知道就该自己认认真真去查了;
enctype="表单信息提交的编码方式",
取值:text/plain–以纯文本的形式传送,application/x-www-from-urlencoded–默认的编码方式,multipart/form-data –MIME编码,上传文件的表单必须选择他;就是form里设置enctype=”multipart/form-data”,这样才能在提交表单时,将文件以二进制流的形式传输到服务器;
target="目标窗口打开方式",_blank 、_parent、_self、 _top;>

2. type=”控件类型” ://text文本输入框 | password密码输入框,(文本类参数有:name,size,maxlength,value);//button按钮(name,value , onclick) | submit提交按钮(name , value) | reset重置按钮(name , value) | radio单选按钮(name必须设置相同 , value,checked只能有一项被设置,设置多个时,选中的为最后一个) | checkbox复选按钮(name设置相同 , value ,checked可以设置多个,都为选中状态) | image图像按钮(src ,name) | hidden 隐藏域,主要用来传递一些数据,不会显示在页面中(name, value)>
3.文本域
4.下拉菜单:指定被选择的选项selected,只有一个




5.列表项:与下拉相似,不同的是它可以在页面上显示多个选择项且可以多选,size页面中最多列表项数,
multiple 则表示可以多项选择

二.表单提交数据的处理
1.html页面提交表单:

<html>
<body>
    <form action="welcome.php" method="post">
    Name: <input type="text" name="name"><br>
    E-mail: <input type="text" name="email"><br>
    <input type="submit">
form>
body>
html>

对应的PHP页面处理数据(只是简单的返回):

<html>
    <head>
        <title>title>
        <meta charset="utf-8">
    head>
    <body>
        <p>姓名:p> echo $_POST["name"]; ?>
        <p>邮箱:p> echo $_POST["email"]; ?>
    body>
html>

还可以设置变量接收数据如:$data=$_POST["name"],再把数据存入数据库或者进行其它操作,如购物的订单信息,返回给顾客确认后,存入数据库,打印订单,日后查询都可以。这就是后端干的事了。
注意,$_POST与method=”post”要一致,[“name”]与name=”name”要一致
2.表单验证(很重要,尤其是安全性),现在HTML5已经改良了input元素,可以在type属性上设置,
如E-mail:
就可以验证你输入的是不是邮箱格式;当然更精确详细的验证,可以借助javaScript、php。
php验证名字:

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  $nameErr = "只允许字母和空格!"; 
}

php验证邮箱:

$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
  $emailErr = "无效的 email 格式!"; 
}

php验证URL:

$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%
=~_|]/i",$website)) {
  $websiteErr = "无效的 URL"; 
}

MIME详解

你可能感兴趣的:(前端学习记录)