• PHP表单


    获取表单数据

    $_GET 和 $_POST 变量用于检索表单中的信息,比如用户输入

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

     

    实例:

    HTML页面:

    <form action="xxx.php" method="post">
    名字: <input type="text" name="fname">
    年龄: <input type="text" name="age">
    <input type="submit" value="提交">

    填写完上面的表单并点击提交按钮时,表单的数据会被送往名为 "xxx.php" 的 PHP 文件:

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

    获取下拉菜单数据

     1.下拉菜单单选

    通过 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">  #action为空,表示提交到当前脚本
        <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
    }
    ?>

     2.下拉菜单多选

     下拉菜单是多选的( multiple="multiple"),我们可以通过设置 select name="q[]" 以数组的方式获取多选值

     <?php
    $q = isset($_POST['q'])? $_POST['q'] : '';
    if(is_array($q)) {
        $sites = array(
                'RUNOOB' => '菜鸟教程: http://www.runoob.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">
        <select multiple="multiple" 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
    }
    ?>

     3.单选按钮表单

    单选按钮表单中 name 属性的值是一致的,value 值是不同的 

    <?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">
        <input type="radio" name="q" value="RUNOOB" />Runoob
        <input type="radio" name="q" value="GOOGLE" />Google
        <input type="radio" name="q" value="TAOBAO" />Taobao
        <input type="submit" value="提交">
    </form>
    <?php
    }
    ?>

     4.复选框

    <?php
    $q = isset($_POST['q'])? $_POST['q'] : '';
    if(is_array($q)) {
        $sites = array(
                'RUNOOB' => '菜鸟教程: http://www.runoob.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="RUNOOB"> Runoob<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
    }
    ?>

    验证

    • 尽可能通过客户端脚本对用户的输入进行验证
    • 浏览器验证速度更快,并且可以减轻服务器的压力
    • 如果需要插入数据库,应该考虑使用服务器验证
    • 在服务器验证表单的一种好的方式是,把表单的数据传给当前页面(异步提交的方式更好),而不是跳转到不同的页面。这样用户就可以在同一张表单页面得到错误信息。用户也就更容易发现错误了。

    验证实例

    代码【戳这里进入】

    涉及的知识点:【无法笔记化,戳~】

    • 文本字段、单选按钮、表单的HTML代码
    •  什么是 $_SERVER["PHP_SELF"] 变量?
    •  什么是 htmlspecialchars()方法?
    • $_SERVER["PHP_SELF"] 变量有可能会被黑客使用
    • 避免 $_SERVER["PHP_SELF"] 被利用
    • 验证表单数据

    表单的必须字段

    加入了一些新的变量: $nameErr, $emailErr, $genderErr, 和 $websiteErr.。

    这些错误变量将显示在必需字段上。 我们还为每个$_POST变量增加了一个if else语句。 这些语句将检查 $_POST 变量是 否为空(使用php的 empty() 函数)。

    如果为空,将显示对应的错误信息。 如果不为空,数据将传递给test_input() 函数:

    显示错误信息

    为每个字段中添加了一些脚本

    各个脚本会在信息输入错误时显示错误信息。(如果用户未填写信息就提交表单则会输出错误信息):

    验证邮件和URL

    $_GET变量

    收集来自 method="get" 的表单中的值

    表单:

     <form action="xxx.php" method="get">
    名字: <input type="text" name="fname">
    年龄: <input type="text" name="age">
    <input type="submit" value="提交">

     xxx.php:

     $_GET["fname"]

     $_GET["age"]

     

    $_POST变量

    用于收集来自 method="post" 的表单中的值

     $_POST["fname"]

     $_POST["age"]

     

     $_REQUEST 变量

    可用来收集通过 GET 和 POST 方法发送的表单数据

    $_REQUEST["fname"]

    $_REQUEST["age"]

  • 相关阅读:
    nginx 转发请求头信息
    canny算法实现
    单字符旋转校正
    图像匹配
    Edge Extraction (subpixel Precise)
    Edge Extraction 边缘提取
    圆形环绕字 从直角坐标到极坐标的转换
    Image acquisition
    Contour Processing
    Matching
  • 原文地址:https://www.cnblogs.com/expedition/p/10746854.html
Copyright © 2020-2023  润新知