PHP表单

🐌博主主页:🐌​倔强的大蜗牛🐌​

📚专栏分类:PHP

📚参考教程:菜鸟\编程网
❤️感谢大家点赞👍收藏⭐评论✍️

目录

 一、PHP 表单和用户输入

PHP 表单处理 

 PHP 获取下拉菜单的数据

PHP 下拉菜单单选

PHP 下拉菜单多选 

单选按钮表单 

checkbox 复选框 

​二、PHP 表单 - 必需字段

三、PHP 表单 - 验证邮件和URL

PHP - 验证名称

PHP - 验证邮件 

PHP - 验证 URL

四、PHP $_GET 变量

如何使用 $_GET 变量:

何时使用 method=“get”?

五、PHP $_POST 变量 

如何使用 $_POST 变量:

何时使用 method=“post”?

PHP $_REQUEST 变量


一、PHP 表单和用户输入

PHP 表单处理 

当处理 HTML 表单时,PHP 能把来自 HTML 页面中的表单元素自动变成可供 PHP 脚本使用。

下面的实例包含了一个 HTML 表单,带有两个输入框和一个提交按钮。

<html>
<head>
<meta charset="utf-8">
<title>倔强的大蜗牛</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>

 PHP 获取下拉菜单的数据

PHP 下拉菜单单选

设置了下拉菜单三个选项,表单使用 GET 方式获取数据,action 属性值为空表示提交到当前脚本,我们可以通过 select 的 name 属性获取下拉菜单的值: 

<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
if($q) {
        if($q =='RUNOOB') {
                echo '菜鸟教程<br>http://www.runoob.com';
        } else if($q =='GOOGLE') {
                echo 'Google 搜索<br>http://www.google.com';
        } else if($q =='TAOBAO') {
                echo '淘宝<br>http://www.taobao.com';
        }
} else {
?><form action="" method="get"> 
    <select name="q">
    <option value="">选择一个站点:</option>
    <option value="RUNOOB">Runoob</option>
    <option value="GOOGLE">Google</option>
    <option value="TAOBAO">Taobao</option>
    </select>
    <input type="submit" value="提交">
    </form><?php
}
?>

PHP 下拉菜单多选 

如果下拉菜单是多选的( multiple="multiple"),我们可以通过将设置 select name="q[]" 以数组的方式获取,以下使用 POST 方式提交,代码如下所示:

<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
if($q) {
        if($q =='JD') {
                echo '京东<br>http://www.jd.com';
        } else if($q =='GOOGLE') {
                echo 'Google 搜索<br>http://www.google.com';
        } else if($q =='TAOBAO') {
                echo '淘宝<br>http://www.taobao.com';
        }
} else {
?><form action="" method="get"> 
    <select name="q">
    <option value="">选择一个站点:</option>
    <option value="JD">JD</option>
    <option value="GOOGLE">Google</option>
    <option value="TAOBAO">Taobao</option>
    </select>
    <input type="submit" value="提交">
    </form><?php
}
?>

单选按钮表单 

PHP 单选按钮表单中 name 属性的值是一致的,value 值是不同的,代码如下所示:

<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
if($q) {
        if($q =='JD') {
                echo '京东<br>http://www.jd.com';
        } else if($q =='GOOGLE') {
                echo 'Google 搜索<br>http://www.google.com';
        } else if($q =='TAOBAO') {
                echo '淘宝<br>http://www.taobao.com';
        }
} else {?><form action="" method="get"> 
    <input type="radio" name="q" value="JD" />Jd
    <input type="radio" name="q" value="GOOGLE" />Google
    <input type="radio" name="q" value="TAOBAO" />Taobao
    <input type="submit" value="提交">
</form><?php
}
?>

checkbox 复选框 

PHP checkbox 复选框可以选择多个值:

 

<?php
$q = isset($_POST['q'])? $_POST['q'] : '';
if(is_array($q)) {
    $sites = array(
            'RUNOOB' => '京东<br>http://www.jd.com',
            'GOOGLE' => 'Google 搜索: http://www.google.com',
            'TAOBAO' => '淘宝: http://www.taobao.com',
    );
    foreach($q as $val) {
        // PHP_EOL 为常量,用于换行
        echo $sites[$val] . PHP_EOL;
    }
      
} else {?><form action="" method="post"> 
    <input type="checkbox" name="q[]" value="JD"> Jd<br> 
    <input type="checkbox" name="q[]" value="GOOGLE"> Google<br> 
    <input type="checkbox" name="q[]" value="TAOBAO"> Taobao<br>
    <input type="submit" value="提交">
</form><?php
}
?>

 二、PHP 表单 - 必需字段

字段验证规则
名字必需。 + 只能包含字母和空格
E-mail必需。 + 必需包含一个有效的电子邮件地址(包含"@"和".")
网址可选。 如果存在,它必需包含一个有效的URL
备注可选。多行字段(文本域)。
性别必需。必需选择一个。

三、PHP 表单 - 验证邮件和URL

PHP - 验证名称

通过简单的方式来检测 name 字段是否包含字母和空格,如果 name 字段值不合法,将输出错误信息:

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

preg_match — 进行正则表达式匹配。

语法:

int preg_match ( 字符串 $pattern , 字符串 $subject [, 数组 $matches [, int $flags ]] )


在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。如果提供了 matches ,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

PHP - 验证邮件 

通过简单的方式来检测 e-mail 地址是否合法。如果 e-mail 地址不合法,将输出错误信息:

$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
  $emailErr = "非法邮箱格式"; 
}

PHP - 验证 URL

将检测URL地址是否合法 (以下正则表达式运行URL中含有破折号:“-”), 如果 URL 地址不合法,将输出错误信息:

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

四、PHP $_GET 变量

在 PHP 中,预定义的 $_GET 变量用于收集来自 method=“get” 的表单中的值。

从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。

如何使用 $_GET 变量:

  • 创建一个名为 get_example.php 的 PHP 文件。
  • 在文件中添加以下代码:
<!DOCTYPE html>
<html>
<head>
   <title>PHP $_GET 示例</title>
</head>
<body>
    <form action="get_example.php" method="get">
        姓名:<input type="text" name="name">

        年龄:<input type="number" name="age">

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

    <?php
        if (isset($_GET['name']) && isset($_GET['age'])) {
            $name = $_GET['name'];
            $age = $_GET['age'];
            echo "姓名: " . $name . "
";
            echo "年龄: " . $age . "
";
        }
    ?>
</body>
</html>
  • 将文件保存到 Web 服务器上,并通过浏览器访问它。
  • 在表单中输入姓名和年龄,然后单击“提交”按钮。

 当你提交表单时,URL 中的查询字符串将包含表单中的数据。PHP 将使用 $_GET 变量解析这些数据,并在页面上显示它们。

何时使用 method=“get”?

在 HTML 表单中使用 method=“get” 时,所有的变量名和值都会显示在 URL 中。

注释:所以在发送密码或其他敏感信息时,不应该使用这个方法!

然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

注释:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。

五、PHP $_POST 变量 

预定义的 $_POST 变量用于收集来自 method=“post” 的表单中的值。

从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。

注释:然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。

如何使用 $_POST 变量:

  • 创建一个名为 post_example.php 的 PHP 文件。
  • 在文件中添加以下代码:
<!DOCTYPE html>
<html>
<head>
  <title>PHP $_POST 示例</title>
</head>
<body>
    <form action="post_example.php" method="post">
        姓名:<input type="text" name="name">

        年龄:<input type="number" name="age">

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

    <?php
        if (isset($_POST['name']) && isset($_POST['age'])) {
            $name = $_POST['name'];
            $age = $_POST['age'];
            echo "姓名: " . $name . "
";
            echo "年龄: " . $age . "
";
        }
    ?>
</body>
</html>
  • 将文件保存到 Web 服务器上,并通过浏览器访问它。
  • 在表单中输入姓名和年龄,然后单击“提交”按钮。

当你提交表单时,PHP 将使用 $_POST 变量获取表单中的数据,并在页面上显示它们。

何时使用 method=“post”?

从带有 POST 方法的表单发送的信息,对任何人都是不可见的,并且对发送信息的量也没有限制。

然而,由于变量不显示在 URL 中,所以无法把页面加入书签。

PHP $_REQUEST 变量

预定义的 $_REQUEST 变量包含了 $_GET、$_POST 和 $_COOKIE 的内容。

$_REQUEST 变量可用来收集通过 GET 和 POST 方法发送的表单数据。

❤️结语: 

本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!

  • 29
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倔强的大蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值