前言

在《PHP学习笔记-PHP与Web页面的交互1》笔记中讲解了form表单的一些属性,包括它的输入域标记、选择域标记和文字域标记的写法,接下来的内容就是讲如何获取表单数据以及PHP数据的传递,包括对各种控件值的获取。

相关学习推荐:php编程(视频)

插入表单

提交表单之前一定得有表单,当我们的表单创建完毕后可以将表单插入Web页中,代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>在普通的Web页中插入表单</title><style type="text/css">body,td,th {  font-size: 12px;}</style></head><body><form action="demo_1.php" method="post" name="form1" enctype="multipart/form-data"> <table width="405" height="24" border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#999999">  <tr bgcolor="#FFCC33">   <td width="103" height="25" align="right">商品名称:</td>   <td height="25" align="left"><input name="product" 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="from" type="radio" value="海外" checked>    海外    <input type="radio" name="from" 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="code" type="text" id="code" 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="家具">家具</option>     <option value="化妆品">化妆品</option>     <option value="图书" selected>图书</option>     <option value="服饰">服饰</option>     <option value="宠物">宠物</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="photo" type="file" size="20" maxlength="1000" id="photo"></td>  </tr>  <tr bgcolor="#FFCC33">   <td height="25" align="right">商品描述: </td>   <td height="25" colspan="2" align="left"><textarea name="intro" cols="28" rows="3" id="info"></textarea></td>  </tr>  <tr align="center" bgcolor="#FFCC33">   <td height="25" colspan="3"><input type="submit" name="submit" value="提交">    &nbsp;&nbsp;    <input type="reset" name="submit2" value="重置"></td>  </tr> </table></form><?phpheader("Content-Type:text/html;  charset=gb2312");?>></body></html>

在HTML的<body>和</body>间添加一个表单。

运行结果:

在Web页中插入表单

获取表单数据

表单数据的获取主要有两个钟方式分别是POST()方法和GET()方法。

通过<form>表单的method属性所指定。

使用POST方法提交表单

应用POST方法时,只需将<form>表单中的属性method设置成POST即可。POST方法不依赖于URL,不会显示在地址栏。POST方法可以没有限制地传递数据到服务器,所有提交的信息在后台传输,用户在浏览器端是看不到这一过程的,安全性高。所以POST方法比较适合用于发送一个保密的(如信用卡号)或者容量较大的数据到服务器。

示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312"    />  <title>PHP语言基础</title></head><body><form action="index.php" method="post" name="form1" enctype="multipart/form-data">  <table width="300" border="1" cellpadding="10" cellspacing="0">    <tr>      <td height="30">编号:        <input type="text" name="code" size="20"/>        <input type="submit" name="subimt" value="提交"/>      </td>    </tr>  </table></form><?phpheader("Content-Type:text/html;  charset=gb2312");?></body></html>

运行结果:

这里写图片描述

点击提交按钮后,我们发现地址栏不会显示我们提交的参数。

使用GET方法提交表单

GET方法是<form>表单中method属性的默认方法。使用GET方法提交的表单数据被附加到URL后,并作为URL的一部分发送到服务器端。在程序的开发过程中,由于GET方法提交的数据是附加到URL上发送的,因此,在URL的地址栏中将会显示“URL+用户传递的参数”。

将上面示例中的<form>表单中method属性指定为get,运行程序后的结果如下:

这里写图片描述

点击按钮后地址栏会通过‘?'连接键值对,键值对以‘&'分隔。

PHP参数传递的常用方法

获取表单数据,实际上就是获取不同的表单元素的数据。<form>标签中的name是所有表单元素都具备的属性,即为这个表单元素的名称,在使用时需要使用name属性来获取相应的value属性值。

PHP参数传递的常用方法有三种:

  1. $_POST[]全局变量
  2. $_GET[]全局变量
  3. $_SESSION[]变量

$_POST[]全局变量

使用PHP的$_POST[]预定义变量可以获取表单元素的值,格式为:

$_POST[name]

范例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312"    />  <title>PHP语言基础</title></head><body><form action="index.php" method="post" name="form1" enctype="multipart/form-data">  <table width="300" border="1" cellpadding="10" cellspacing="0">    <tr>      <td height="30">编号:        <input type="text" name="code" size="20"/>        <input type="submit" name="subimt" value="提交"/>      </td>    </tr>  </table></form><?phpheader("Content-Type:text/html;  charset=gb2312");$value=$_POST['code'];echo "编号:".$value;?></body></html>

运行结果:

这里写图片描述

$_GET[]全局变量

PHP使用$_GET[]预定义变量获取通过GET方法传过来的值,使用格式为:

   $_GET[name]

范例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312"    />  <title>PHP语言基础</title></head><body><form action="index.php" method="get" name="form1" enctype="multipart/form-data">  <table width="300" border="1" cellpadding="10" cellspacing="0">    <tr>      <td height="30">编号:        <input type="text" name="code" size="20"/>        <input type="submit" name="subimt" value="提交"/>      </td>    </tr>  </table></form><?phpheader("Content-Type:text/html;  charset=gb2312");$value=$_GET['code'];echo "编号:".$value;?></body></html>

运行结果:

这里写图片描述

$_SESSION[]变量

使用$_SESSION[]变量可以获取表单元素的值,格式为:

$_SESSION[name]

使用$_SESSION[]传参的方法获取的变量值,保存之后任何页面都可以使用。但这种方法很耗费系统资源,建议读者慎重使用。

案例

最后结合笔记中的第一个demo写一个完整的案例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  <title>在普通的Web页中插入表单</title>  <style type="text/css">    body, td, th {      font-size: 12px;    }  </style></head><body><form action="demo_1.php" method="post" name="form1" enctype="multipart/form-data">  <table width="405" height="24" border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#999999">    <tr bgcolor="#FFCC33">      <td width="103" height="25" align="right">商品名称:</td>      <td height="25" align="left"><input name="product" 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="from" type="radio" value="海外" checked>        海外        <input type="radio" name="from" 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="code" type="text" id="code" 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="家具">家具</option>          <option value="化妆品">化妆品</option>          <option value="图书" selected>图书</option>          <option value="服饰">服饰</option>          <option value="宠物">宠物</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="photo" type="file" size="20" maxlength="1000"                              id="photo"></td>    </tr>    <tr bgcolor="#FFCC33">      <td height="25" align="right">商品描述:</td>      <td height="25" colspan="2" align="left"><textarea name="intro" cols="28" rows="3" id="info"></textarea>      </td>    </tr>    <tr align="center" bgcolor="#FFCC33">      <td height="25" colspan="3"><input type="submit" name="submit" value="提交">        &nbsp;&nbsp;        <input type="reset" name="submit2" value="重置"></td>    </tr>  </table></form><?phpheader("Content-Type:text/html;  charset=gb2312");if ($_POST[submit] != "") {  echo "商品清单:";  echo " <br><br>商品名称:" . $_POST['product'];  echo " <br><br>  市场:" . $_POST[from];  echo " <br><br>  编号:" . $_POST['code'];  echo " <br><br>  种类:" .$_POST['select'];  $path = './upfiles/'. $_FILES['photo']['name'];  move_uploaded_file($_FILES['photo']['tmp_name'],$path);  echo " <br><br>商品图片:" .$path;  echo " <br><br>商品描述:" .$_POST['intro'];}?></body></html>

运行结果:

这里写图片描述

通过move_uploaded_file方法将图片上传到当前路径下的upfiles文件夹中。

相关学习推荐:编程视频

更多相关文章

  1. 实例讲解php提交表单关闭layer弹窗iframe
  2. 分析ThinkPHP防止重复提交表单的方法实例
  3. 总结PHP实现提取多维数组指定一列的方法
  4. PHP实现图片防盗链破解操作方法【解决图片防盗链问题/反向代理】
  5. 实现PHP+Mysql无限分类的方法
  6. 学习php简单实现短网址(短链)还原的方法
  7. 阿里云PHP SMS短信服务验证码发送方法详解
  8. 编译PHP扩展的方法
  9. 解决PHP里大量数据循环时内存耗尽问题的方法

随机推荐

  1. golang能写操作系统吗
  2. golang如何判断字符串是否为空
  3. golang如何判断目录是否存在
  4. golang如何清空map
  5. go语言依赖管理介绍
  6. golang切片需要make吗
  7. golang map 不排序怎么办
  8. golang判断错误类型的方法
  9. golang使用什么数据库?
  10. golang怎么自定义错误