php获取form表单数据

Posted chenyingying0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘];         //输出个人简介的内容

 }

?>

技术图片

 

 技术图片

 

以上是关于php获取form表单数据的主要内容,如果未能解决你的问题,请参考以下文章

PHP怎么获取非form表单传来的post数据

PHP form提交后,php代码无法解析

怎么获取form表单将要提交的数据

php表单传值问题

PHP怎么获取非form表单传来的post数据?注意是非form 不是表单之类的!而是软件传值

PHP怎么获取表单中的多条数据