• php获取form表单数据


    php表单之在Web页面中嵌入php代码

    1. 在HTML标记中添加PHP脚本

    在 Web 编码的过程中,PHP是可以与HTML混合使用的嵌入式语言,可以随时在HTML添加PHP脚本标记<?php...?>,两个标记之间的所有文本都会被解释成PHP,而标记之外的任何文本都会被认为是普通的HTML。

    举个例子,在<body>标记中添加PHP标识符,使用 include 语句引用外部文件 index.php, 代码显示如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php include('header.php');?>
        index page
    </body>
    </html>

    header.php

    <?php
    echo 'i am header<br>';

    有四种分解符可以让PHP嵌入到HTML。

    (1)<?php 和?>:PhP标准的分解符。

    (2)<?和?>:简写的分解符。

    (3)<script language="php">和</script>:JavaScript/VBScript风格分解符

    (4)<%和%>:ASP分解符。

    其中第一种与第二种是最常用的方法;第三种方法类似于JavaScript嵌入方式;第四种方式类似于ASP嵌入方式。

    注意:要想使用PHP支持<??><%%>方式,需要分别在配置文件PHP.ini中进行如下设置:

    short_open_tag = on;
    
    asp_tags = on;

    2. 对表单元素的 value 属性进行赋值

    在 Web 开发的过程中,通常需要对表单元素的 value 属性进行赋值,以获取该表单元素的默认值。例如,为表单元素隐藏域进行赋值,只需要将所赋的值添加到 value 属性后就可以了,其代码实例如下:

    <input type="hidden" name="id" value="<?php echo $hidden;?>">

    下面来简单介绍一下什么是隐藏域

    隐藏域的优点

      1、不需要任何服务器资源。

      2、支持广泛,任何客户端都支持隐藏域。

      3、实现简单,隐藏域属于HTML控件,无需像服务器控件那样有需要编程知识。

      隐藏域的不足

      1、具有较高的安全隐患。

      2、存储结构简单。

      3、如果存储了较多的较大的值,则会导致性能问题。

      4、如果隐藏域过多,则在某些客户端中被禁止。

      5、隐藏域将数据存储在服务器上,而不存储在客户端。

    注意,如果开发中,页面的隐藏域过多,这些隐藏域被存储在服务器。当客户端浏览页面的时候,会有一些防火墙扫描页面,以保证操作系统的安全,如果页面的隐藏域过多,那么这些防火墙可能会禁止页面的某些功能。

    php获取form表单单选按钮和复选框的值

    <!DOCTYPE html>
    
    <html lang="en">
    
    <head>
    
       <meta charset="UTF-8">
    
       <title>form</title>
    
    </head>
    
    <body>
    
    <form action="" method="post" name="form1">
    
       <table width="500" border="0" cellpadding="0"  cellspacing="0">
    
          <tr>
    
             <td width="500" height="30">
    
                <input type="radio" name="sexy" value="男" checked><input type="radio" name="sexy" value="女"><input type="submit" name="submit" value="提交">
    
             </td>
    
          </tr>
    
       </table>
    
    </form>
    
    </body>
    
    </html>

    说明:checked 属性用来设置表单元素默认选中的意思,当表单页面被初始化时,有checked 属性的表单元元素为选中状态。

    应用$_POST[]全局变量来获取单选按钮组的值,最后通过echo语句进行输出

    <?php
    
    error_reporting(0);
     echo "您选择的性别为:";                   //输出字符串
    
     echo $_POST["sexy"];                      //输出被选中的单选按钮的值
    
    ?>

    获取复选框的值

    复选框能够进行项目的多项选择。浏览者填写表单时,有需要选择多个项目。例如:在线听歌中需要同时选取多首歌曲等,就会用到复选框。复选框一般都是多个选项同时存在,为了便于传值,name 的名字可以是一个数组形式,格式为:

    <!DOCTYPE html>
    
    <html lang="en">
    
    <head>
    
       <meta charset="UTF-8">
    
       <title>form</title>
    
    </head>
    
    <body>
    
    <form action="index.php" method="post" name="form1">
    
       <table width="500"  cellpadding="0"  cellspacing="0">
    
          <tr>
    
             <td width="500" height="40" align="center" valign="top">喜欢的图书类型:
    
                     <input type="checkbox" name="mrbook[]" value="php" >php
    
                     <input type="checkbox" name="mrbook[]" value="thinkphp" >thinkphp
    
                     <input type="checkbox" name="mrbook[]" value="laravel" >laravel
    
                     <input type="submit" name="submit" value="提交">
    
             </td>
    
          </tr>
    
       </table>
    
    </form>
    
    </body>
    
    </html>
    
    <?php
    
    if($_POST["mrbook"]!= null){                       //判断复选框如果不为空,则执行下面的操作
    
       echo "您选择的结果是:";                         //输出字符串
    
       for($i = 0; $i < count($_POST["mrbook"]);$i++){  //通过 for 循环语句输出选中复选框的值
    
          echo $_POST["mrbook"][$i]."&nbsp;";                //循环输出用户选择的图书类别
    
       }
    
    }
    
    ?>

    在浏览器中输入运行地址,按回车键,得到如下图所示的运行结果:

    php获取form表单文件域的值

    在实现开发过程中,文件或者图片上传在一些网站应用中是必不可少的一部分。比如个人博客上传个性头像,一些论坛分享好的学习资料等等,这就涉及到使用表单处理文件上传的知识,在php中 我们可以使用$_FILES这个全局数组来处理。

    $_FILES数组内容如下:

    $_FILES['myFile']['name'] 客户端文件的原名称。

    $_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。

    $_FILES['myFile']['size'] 已上传文件的大小,单位为字节。

    $_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但用 putenv() 函数设置是不起作用的。

    $_FILES['myFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。

    $_FILES["file"]["error"]中的["error"]值情况:

    UPLOAD_ERR_OK 值:0; 没有错误发生,文件上传成功

    UPLOAD_ERR_INI_SIZE 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize选项限制的值

    UPLOAD_ERR_FORM_SIZE 值:2;上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值

    UPLOAD_ERR_PARTIAL 值:3; 文件只有部分被上传

    UPLOAD_ERR_NO_FILE 值:4;没有文件被上传, 值:5; 上传文件大小为0 。

    php对URL传参进行编码和解码解析

    urlencode(string)

    urlencode()函数实现将字符串 string 进行 URL 编码。

    在下面的实例中,应用 urlencode()函数对 URL 传递的参数值进行编码,显示的字符串是

    URL 编码后的字符串,其实现的代码如下所示:

    <?php
    $url = urlencode('cyy超可爱');
    echo 'index.php?id='.$url;

    在浏览器中输入运行地址,按回车键,得到如下所示的运行结果:

    index.php?id=cyy%E8%B6%85%E5%8F%AF%E7%88%B1

    说明:

    对于服务器而言,编码前后的字符串并没有什么区别,服务器能够自动识别。这里主要是为了讲解 URL编码的使用方法。在实际应用中,对一些非保密性的参数不需要进行编码,读者可根据实际情况有选择的使用。

    urldecode(string)

    urldecode() 函数可将 URL 编码后的 string 字符串进行解码。

    这里的例子应用urlencode() 函数对获取的编码进行解码,将解码后的结果输出来。其实现的代码如下所示:

    <?php
    
    $url = '%E8%B6%85%E5%8F%AF%E7%88%B1';
    echo urldecode($url);

    运行的结果如下所示:

    超可爱

    php表单提交获取数据到当前页的简单综合应用

    <!DOCTYPE html>
    
    <html lang="en">
    
    <head>
    
      <meta charset="UTF-8">
    
      <title>Document</title>
    
    </head>
    
    <body>
    
    <form action="" method="post" name="form1" enctype="multipart/form-data">
    
      <table width="400" border="1" cellpadding="1"  bgcolor="#999999">
    
        <tr bgcolor="#FFCC33">
    
          <td width="103" height="25" align="right">姓名:</td>
    
          <td height="25">
    
            <input name="user" type="text" id="user" size="20" maxlength="100">
    
          </td>
    
        </tr>
    
        <tr bgcolor="#FFCC33">
    
          <td height="25" align="right">性别:</td>
    
          <td height="25" colspan="2" align="left">
    
            <input name="sex" type="radio" value="男" checked><input name="sex" type="radio" value="女" ></td>
    
        </tr>
    
        <tr bgcolor="#FFCC33">
    
          <td width="103" height="25" align="right">密码:</td>
    
          <td width="289" height="25" colspan="2" align="left">
    
            <input name="pwd" type="password" id="pwd" size="20" maxlength="100">
    
          </td>
    
        </tr>
    
        <tr bgcolor="#FFCC33">
    
          <td height="25" align="right">学历:</td>
    
          <td height="25" colspan="2" align="left">
    
            <select name="select">
    
              <option value="专科">专科</option>
    
              <option value="本科" selected>本科</option>
    
              <option value="高中">高中</option>
    
            </select>
    
          </td>
    
        </tr>
    
        <tr bgcolor="#FFCC33">
    
          <td height="25" align="right">爱好:</td>
    
          <td height="25" colspan="2" align="left">
    
            <input name="fond[]" type="checkbox" id="fond[]" value="php">php
    
                   <input name="fond[]" type="checkbox" id="fond[]" value="thinkphp">thinkphp
    
                   <input name="fond[]" type="checkbox" id="fond[]" value="laravel">laravel
    
               </td>
    
        </tr>
    
        <tr bgcolor="#FFCC33">
    
          <td height="25" align="right">照片上传:</td>
    
          <td height="25" colspan="2">
    
            <input name="image" type="file" id="image" size="20" maxlength="100">
    
          </td>
    
        </tr>
    
        <tr bgcolor="#FFCC33">
    
          <td height="25" align="right">个人简介:</td>
    
          <td height="25" colspan="2">
    
            <textarea name="intro" cols="30" rows="10" id="intro"></textarea>
    
          </td>
    
        </tr>
    
        <tr align="center" bgcolor="#FFCC33">
    
          <td height="25" colspan="3">
    
            <input type="submit" name="submit" value="提交">
    
            <input type="reset" name="reset" value="重置">
    
          </td>
    
        </tr>
    
      </table>
    
    </form>
    
    </body>
    
    </html>
    
    <?php
    
     if($_POST['submit']!= ""){           //判断是否提交了表单
    
       echo "您的个人简历为:".'<br>';
    
       echo "姓名:".$_POST['user'].'<br>';      //输出用户名
    
       echo "性别:".$_POST['sex'].'<br>';       //输出性别
    
       echo "密码:".$_POST['pwd'].'<br>';       //输出密码
    
       echo "学历:".$_POST['select'].'<br>';    //输出学历
    
       echo "爱好:";
    
       for($i=0;$i<count($_POST["fond"]);$i++){  //获取爱好的复选框的值
    
         echo $_POST["fond"][$i].'&nbsp;';
    
       }
    
       echo "<br>";
    
       $path = './uploads/'.$_FILES['image']['name'];    // 指定上传的路径和文件名
    
       move_uploaded_file($_FILES['image']['tmp_name'],$path);   //上传文件
    
       echo "照片:"."$path".'<br>';              //输出个人照片的路径
    
       echo "个人简介:".$_POST['intro'];         //输出个人简介的内容
    
     }
    
    ?>

     

  • 相关阅读:
    ryu 下发流表配置
    openstack kolla 部署---不同的节点采用不同的物理接口
    kolla 安装
    Ubuntu add-apt-repository: command not found
    大前端发展趋势
    这些优化技巧可以避免我们在 JS 中过多的使用 IF 语句
    asap异步执行实现原理
    为什么 JS 对象内部属性遍历的顺序乱了
    你可能忽略的 async/await 问题
    深入浅出JS原型链
  • 原文地址:https://www.cnblogs.com/chenyingying0/p/12938391.html
Copyright © 2020-2023  润新知