iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP的表单
  • 212
分享到

PHP的表单

php服务器前端 2023-09-20 10:09:27 212人浏览 独家记忆
摘要

文章目录 一、PHP1.php表单1.php表单和用户输入 2.PHP表单验证1.表单元素1.如何避免 $_server["php_self"]被利用?2.使用php验证表单数据

文章目录

一、PHP

1.php表单

1.php表单和用户输入

php中的 g et和 _get和 get_post变量用于检索表单中的信息
php 能把来自 html 页面中的表单元素自动变成可供 PHP 脚本使用。

fORM.html 文件代码:

<html><head><meta charset="utf-8"><title>fightingtitle>head><body> <form action="welcome.php" method="post">名字: <input type="text" name="fname">年龄: <input type="text" name="age"><input type="submit" value="提交">form> body>html>

welcome.php 文件代码

欢迎<?php echo $_POST["fname"]; ?>!<br>你的年龄是 <?php echo $_POST["age"]; ?>  岁。

表单验证尽可能的对用户输入进行验证。
$_GET 变量接受所有以 get 方式发送的请求,及浏览器地址栏中的 ? 之后的内容。

$_POST 变量接受所有以 post 方式发送的请求,例如,一个 form 以 method=post 提交,提交后 php 会处理 post 过来的全部变量。

$_REQUEST 支持两种方式发送过来的请求,即 post 和 get 它都可以接受,显示不显示要看传递方法,get 会显示在 url 中(有字符数限制),post 不会在 url 中显示,可以传递任意多的数据(只要服务器支持)。

2.PHP表单验证

1.表单元素

html表单代码

<form method="post" action="$_SERVER["PHP_SELF"]);?>">

$_SERVER[“PHP_SELF”]是超级全局变量,返回当前正在执行脚本的文件名,与 document root相关所以, $_SERVER[“PHP_SELF”] 会发送表单数据到当前页面,而不是跳转到不同的页面。

htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。

& (和号) 成为 &" (双引号) 成为 "' (单引号) 成为 '< (小于) 成为 <> (大于) 成为 >

$_server[“php_self”]变量可能会被黑客利用
可使用跨网站脚本Http链接进行攻击, $_server[“php_self”]服务器变量也会被植入脚本。原因是跨网站脚本是附在执行文件的路径后面的,因此 $_server[“php_self”]字符串就会包含http链接后面的js代码。

XSS又叫 CSS (Cross-Site Script) ,跨站脚本攻击。恶意攻击者往WEB页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。

#指定以下表单文件名为 "test_form.php":<form method="post" action="$_SERVER["PHP_SELF"];?>">#现在,我们使用URL来指定提交地址 "test_form.php",以上代码修改为如下所示:<form method="post" action="test_form.php">考虑到用户会在浏览器地址栏中输入以下地址:http://www.runoob.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3EURL 中,将被解析为如下代码并执行:<form method="post" action="test_form.php/"><script>alert('hacked')</script>

代码中添加script标签,和alter命令,当页面载入时会执行js代码。因此黑客会应用

1.如何避免 $_server[“php_self”]被利用?

可通过htmlspecialchars()函数来避免被利用

<form method="post" action="$_SERVER["PHP_SELF"]);?>">#htmlspecialchars() 把一些预定义的字符转换为 HTML 实体。现在如果用户想利用 PHP_SELF 变量, 结果将输出如下所示:<form method="post" action="test_form.php/"><script>alert('hacked')</script>">

2.使用php验证表单数据

使用 PHP trim() 函数去除用户输入数据中不必要的字符 (如:空格,tab,换行)。
使用PHP stripslashes()函数去除用户输入数据中的反斜杠 ()

<?php// 定义变量并默认设置为空值$name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST"){  $name = test_input($_POST["name"]);  $email = test_input($_POST["email"]);  $website = test_input($_POST["website"]);  $comment = test_input($_POST["comment"]);  $gender = test_input($_POST["gender"]);} function test_input($data){  $data = trim($data);  $data = stripslashes($data);  $data = htmlspecialchars($data);  return $data;}?>

通过$_SERVER[“REQUEST_METHOD”]来检测表单是否被提交 。

3.php表单必需字段

1.必需字段

检查$_post变量是否为空,使用php的empty()函数。如果为空则显示错误信息。

// 定义变量并默认设为空值$nameErr = $emailErr = $genderErr = $websiteErr = "";$name = $email = $gender = $comment = $website = "";if ($_SERVER["REQUEST_METHOD"] == "POST") {  if (empty($_POST["name"])) {    $nameErr = "名字是必需的。";  } else {    $name = test_input($_POST["name"]);  }  if (empty($_POST["email"])) {    $emailErr = "邮箱是必需的。";  } else {    $email = test_input($_POST["email"]);  }  if (empty($_POST["website"])) {    $website = "";  } else {    $website = test_input($_POST["website"]);  }  if (empty($_POST["comment"])) {    $comment = "";  } else {    $comment = test_input($_POST["comment"]);  }  if (empty($_POST["gender"])) {    $genderErr = "性别是必需的。";  } else {    $gender = test_input($_POST["gender"]);  }}?>

2.显示错误信息

为每个字段添加一些脚本,各个脚本会在信息输入时显示错误信息。用户
没填写信息就提交表单则会输出错误信息

<form method="post" action="$_SERVER['PHP_SELF']);?>">    名字: <input type="text" name="name">   <span class="error">* <?php echo $nameErr;?></span>   <br><br>   E-mail: <input type="text" name="email">   <span class="error">* <?php echo $emailErr;?></span>   <br><br>   网址: <input type="text" name="website">   <span class="error"><?php echo $websiteErr;?></span>   <br><br>   备注: <textarea name="comment" rows="5" cols="40"></textarea>   <br><br>   性别:   <input type="radio" name="gender" value="female"><input type="radio" name="gender" value="male"><span class="error">* <?php echo $genderErr;?></span>   <br><br>   <input type="submit" name="submit" value="Submit"> </form>

4.验证邮件和url

1.验证名称

检测name字段是否只包含字母和空格

$name = test_input($_POST["name"]);if (!preg_match("/^[a-zA-Z ]*$/",$name)) {  $nameErr = "只允许字母和空格"; }#preg_match — 进行正则表达式匹配。语法:int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。如果提供了 matches ,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

2.验证邮件和url

// 定义变量并默认设置为空值$nameErr = $emailErr = $genderErr = $websiteErr = "";$name = $email = $gender = $comment = $website = "";if ($_SERVER["REQUEST_METHOD"] == "POST") {   if (empty($_POST["name"])) {      $nameErr = "Name is required";      } else {         $name = test_input($_POST["name"]);         // 检测名字是否只包含字母跟空格         if (!preg_match("/^[a-zA-Z ]*$/",$name)) {         $nameErr = "只允许字母和空格";          }     }      if (empty($_POST["email"])) {      $emailErr = "Email is required";   } else {      $email = test_input($_POST["email"]);      // 检测邮箱是否合法      if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {         $emailErr = "非法邮箱格式";       }   }        if (empty($_POST["website"])) {      $website = "";   } else {      $website = test_input($_POST["website"]);      // 检测 URL 地址是否合法     if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {         $websiteErr = "非法的 URL 的地址";       }   }   if (empty($_POST["comment"])) {      $comment = "";   } else {      $comment = test_input($_POST["comment"]);   }   if (empty($_POST["gender"])) {      $genderErr = "性别是必需的";   } else {      $gender = test_input($_POST["gender"]);   }}?>

5.$_get变量

$_get变量用来收集来自method="get"表单中的值
从get发送的表单信息,对任何人都是可见的,对发送的信息也是有限制

#form.html <html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><form action="welcome.php" method="get">名字: <input type="text" name="fname">年龄: <input type="text" name="age"><input type="submit" value="提交"></form></body></html>#weclom.php欢迎 <?php echo $_GET["fname"]; ?>!<br>你的年龄是 <?php echo $_GET["age"]; ?>  岁。

http://www.runoob.com/welcome.php?fname=Runoob&age=3
使用敏感信息时,不应该使用这个方法。
因为变量显示在url中,因此可以在收藏夹中显示该页面

6.$_post变量

1.$_post变量

post方法表单发送的信息,对任何人是不可见的,发送的信息量也是没有限制

form.html<html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><form action="welcome.php" method="post">名字: <input type="text" name="fname">年龄: <input type="text" name="age"><input type="submit" value="提交"></form></body></html>welcome.php欢迎 <?php echo $_POST["fname"]; ?>!<br>你的年龄是 <?php echo $_POST["age"]; ?>  岁。

http://www.runoob.com/welcome.php

2.$_requst变量

预定义的 $_REQUEST 变量包含了 G ET、 _GET、 GET_POST 和 $_COOKIE 的内容。
$_REQUEST 变量可用来收集通过 GET 和 POST 方法发送的表单数据。

总结

一个人过最高的精神自由,必须过最低
物质要求。

来源地址:https://blog.csdn.net/weixin_51884452/article/details/128674962

--结束END--

本文标题: PHP的表单

本文链接: https://www.lsjlt.com/news/412309.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP的表单
    文章目录 一、PHP1.php表单1.php表单和用户输入 2.PHP表单验证1.表单元素1.如何避免 $_server["php_self"]被利用?2.使用php验证表单数据 ...
    99+
    2023-09-20
    php 服务器 前端
  • PHP表单
    字符处理函数 nl2br()将字符串中的换行符前插入HTML换行标记 strip_tags()从字符串中去除HTML和PHP标记 htmlspecialchars()将字符串中的特殊字符转换为HTM...
    99+
    2023-09-07
    php 开发语言
  • PHP的表单处理
    PHP是一种流行的编程语言,用于构建现代Web应用程序。在Web开发中,表单处理是不可避免的一部分。PHP提供了处理表单的内置功能。在本文中,我们将介绍如何使用PHP处理表单。首先,我们需要了解表单的基本结构。HTML表单包含一个<f...
    99+
    2023-05-25
    PHP 表单处理 处理表单
  • PHP中的表单验证指南
    随着网络技术的发展,越来越多的网站需要使用表单来收集用户的信息。然而,为了保证用户输入的数据的安全性和有效性,我们需要在服务器端进行表单验证,而PHP正是一款非常适合实现表单验证的语言。在本文中,我们将会提供一些关于PHP中表单验证的指南,...
    99+
    2023-05-20
    表单验证 指南 PHP
  • PHP 表单处理的秘诀:创建动态且安全的表单
    表单是 Web 开发中不可或缺的元素,用于收集和处理用户输入数据。在 PHP 中处理表单时,需要注意动态性、安全性,确保表单功能良好且不易遭到攻击。 动态性 使用动态变量名:通过使用动态变量名,可以根据表单字段名称生成变量。例如,$_P...
    99+
    2024-03-14
    表单处理
  • 怎么处理​PHP 表单
    今天就跟大家聊聊有关怎么处理PHP 表单,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先我们先写一个form表单:form.html 文件代码如下:<html><...
    99+
    2023-06-15
  • php怎么接受表单的数组
    在PHP中,表单不仅可以提交单个数据,还可以以数组的形式提交多个数据。在处理这种情况时,我们需要使用PHP内置的一些函数来接收和处理这些数组。本文将介绍如何使用PHP接收和处理表单数组。首先,让我们来看一下表单中如何提交一个数组:<f...
    99+
    2023-05-19
  • PHP表单验证的具体实现
    这篇文章主要讲解了“PHP表单验证的具体实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP表单验证的具体实现”吧!PHP 表单验证表单验证我们应该尽可能的对用户的输入进行验证(通过客户...
    99+
    2023-06-04
  • PHP实现一个表单-学生信息登记表单
    目录  一、前言 二、表单的定义的知识点讲解 1.定义表单 2.表单元素 三、代码段 1.表单的定义的代码 2、获取表单数据的代码 四、运行结果 1.DW编码界面 ​编辑2.网页运行界面 ​编辑3.填写内容实现跳转界面  一、前言 本文介...
    99+
    2023-08-31
    php dreamweaver servlet
  • PHP pdf 自动填写表单
    一、下载github上的项目,地址 二、下载pdftk 地址 // 转化PDF模板pdftk modele.pdf output modele2.pdf # 填充pdf文件中的表单require('f...
    99+
    2023-09-11
    php pdf 开发语言
  • php如何实现单链表
    本文将为大家详细介绍“php如何实现单链表”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php如何实现单链表”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧。php实现...
    99+
    2023-06-06
  • PHP后端form表单提交的方法
    这篇文章主要介绍了PHP后端form表单提交的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP后端form表单提交的方法文章都会有所收获,下面我们一起来看看吧。1.小程...
    99+
    2024-04-02
  • php表单提交的方式有哪些
    PHP 表单提交的方式有以下几种:1. GET 方法:通过 URL 将表单数据以键值对的形式附加在 URL 之后,常用于获取资源或查询数据。2. POST 方法:将表单数据封装在 HTTP 请求的消息体中发送给服务器,常用于提交数据或执...
    99+
    2023-08-11
    php
  • PHP编写数据库表单的方法
    随着互联网技术的日益发展,Web应用程序的使用越来越广泛,开发一款好的Web应用程序离不开数据库的支持。而数据库表单则是Web应用程序中必不可少的一部分,是实现数据交互、数据管理的关键。PHP作为目前最流行的Web开发语言之一,具有广泛应用...
    99+
    2023-05-19
    表单 数据库 PHP
  • PHP表单的应用方法是什么
    PHP表单的应用方法有以下几种:1. 提交表单数据到服务器:用户在表单中填写完数据后,点击提交按钮,表单数据会被发送到服务器,服务器...
    99+
    2023-10-12
    PHP
  • PHP中的表单自动填充技巧
    随着互联网的不断发展,表单已经成为了我们日常网站使用的功能之一。而让用户填写表单无疑是一项烦琐的任务,因此有必要使用一些技巧来简化这个过程。本文将介绍在PHP中实现表单自动填充的技巧。一、使用默认值当设置表单的默认值时,可以在表单标签中使用...
    99+
    2023-05-24
    自动填充 技巧 PHP表单
  • php提交表单的方法是什么
    本篇内容主要讲解“php提交表单的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php提交表单的方法是什么”吧!php表单提交方法:1、使用PHP $_REQUEST收集HTML表单提...
    99+
    2023-06-20
  • php回车不提交表单和提交表单怎么实现
    这篇“php回车不提交表单和提交表单怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php回车不提交表单和提交表单怎么...
    99+
    2023-07-05
  • 如何使用 PHP 构建表单?
    如何在 php 中构建表单?创建使用 标签的表单,指定 action 和 method 属性。通过 元素收集用户输入,包括文本、电子邮件、单选按钮和复选框。使用 $_post 或 ...
    99+
    2024-04-20
    php 构建表单
  • php怎么收集表单数据
    这篇文章主要介绍“php怎么收集表单数据”,在日常操作中,相信很多人在php怎么收集表单数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php怎么收集表单数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作