PHP学习 表单

表单

  1. 定义:表单就是form,用于集合不同类型的用户输入

  2. 语法格式

    <form name="" action="" method="">
    
    • action: 点击之后将要执行的.php文件
      • 若省略,则表单内容提交到当前URL
    • method: 默认为get,有两个选项,post和get
  3. get和post区别

    • get:浏览器和action属性指定的URL建立连接,将数据直接敷在表单的action URL之后。这两者之间用 ? 进行分隔,参数之间用 & 进行分隔。
    • post:浏览器和action属性指定的URL建立连接,通过HTTP协议把表单数据发送给服务器端的PHP程序。
    postget
    安全性更好。所有名称会被嵌入HTTP请求的主题中,对他人不可见。较差。表单参数会直接显示在地址栏的URL里
    效率较低,因为读取和解码相对复杂较好
    数据量默认为不受限制小于2kb

表单处理

文本框

  • 实现文本输入功能

  • 使用input标签

  • 语法格式

    <p><input type="text" name="name"></p><!--//输入文本类型变量:name-->
    <p><input type='submit'></p><!--//添加提交按钮-->
    

单选按钮

  • 使用input标签,设置type="radio"

  • 语法格式

    <input type="radio" name="radiobutton" value="同意">同意<br>
    

复选框

  • 使用input标签,设置type="checkbox"

  • 语法格式

    <input type="checkbox" name="checkbox[]" value="同意">同意<br>
    
    • name:此处要加上 [] ,自动解析成数组
      • 否则会出现值覆盖的问题

下拉列表

  • 通过selectoption标签来实现

  • 语法格式

    <select name="lunch_type[]">
        <option selected>不限</option>
        <option>豪华自助</option>
        <option>街头小吃</option>
        <option>普通盒饭</option>
    </select>
    
    • select标签支持多选,应当在name属性之后加上[],使之解析成数组

重置按钮

  • 使用input标签,设置type="reset"

  • 语法格式

    <input type="reset" value="重置">
    

提交按钮

  • 使用input标签,设置type="submit"

  • 语法格式

    <input type="submit" value="提交">
    

表单验证

$_SERVER[“PHP_SELF”]变量

  • 超级全局变量
  • 返回当前正在执行脚本的文件名
  • 会发送表单数据到当前页面,而不是跳转到不同的页面
  • 可能会被黑客使用
    • 恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行
    • 使用htmlspecialchars()函数可解决

htmlspecialchars() 函数

  • 把一些预定义的字符转换为HTML实体
  • 预定义字符:
    • & (和号) 成为 &amp;
    • " (双引号) 成为 &quot;
    • ’ (单引号) 成为 &#039;
    • < (小于) 成为 &lt;
    • > (大于) 成为 &gt;

提交表单

  1. 使用trim()函数去除输入数据中不必要的字符
  2. 使用stripslashes()函数去除输入中的反斜杠\
  3. 提交之前使用htmlspecialchars()处理

函数示例

function test($a)
{
    $a=trim($a);
    $a=stripslashes($a);
    $a=htmlspecialchars($a);
    return $a;
}

验证

  • preg_match()函数:用于正则表达式匹配

    • 函数原型:int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )

    • 在 $subject 字符串中搜索与 $pattern 给出的正则表达式相匹配的内容

    • $matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本

$_GET变量

  • 用于收集来自 method=“get” 的表单中的值。

    浏览器点击submit提交
    .php文件中通过$_GET接收
    • 变量显示在 URL 中,因此可以在收藏夹中收藏该页面
    • 表单域的名称会自动成为 $_GET 数组中的键

$_POST变量

  • 用于收集来自 method=“post” 的表单中的值。

    浏览器点击submit提交
    .php文件中通过$_POST接收
    • 变量不会显示在 URL 中,因此不可以把该页面加入书签

$_REQUEST变量

  • 变量包含了 $_GET、$_POST$_COOKIE 的内容
  • 可用来收集通过 GET 和 POST 方法发送的表单数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值