PHP学习笔记-PHP与Web页面的交互2

转载请标明出处:

http://blog.csdn.net/hai_qing_xu_kong/article/details/51761308

本文出自:【顾林海的博客】

前言

《PHP学习笔记-PHP与Web页面的交互1》笔记中讲解了form表单的一些属性,包括它的输入域标记、选择域标记和文字域标记的写法,接下来的内容就是讲如何获取表单数据以及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>
<?php
header("Content-Type:text/html;   charset=gb2312");
?>>
</body>
</html>

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

运行结果:

获取表单数据

表单数据的获取主要有两个钟方式分别是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>
<?php
header("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>
<?php
header("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>
<?php
header("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>
<?php
header("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文件夹中。

时间: 2024-09-30 23:52:20

PHP学习笔记-PHP与Web页面的交互2的相关文章

WinPhone学习笔记(一)——页面导航与页面相关

最近学一下Windows Phone(接下来简称“WinPhone”)的开发,在很久很久前稍探究一下WinPhone中对一些传感器的开发,那么现在就从头来学学WinPhone的开发.先从WinPhone的页面入手,在我印象中比较深刻的那番话:一台WinPhone设备就好比一个Web的浏览器,应用上每个界面就是一个网页,可以点击“后退”来返回之前的页面.这个类比我觉得相当的形象.这番话能引出WinPhone开发中一个比较常见的操作——页面导航,由这个页面导航还引出了别的方面的内容,如下面所示 那下

【selenium学习笔记】webdriver进行页面元素定位

[selenium学习笔记]webdriver进行页面元素定位 进行Web页面自动化测试,对页面上的元素进行定位和操作是核心.而操作又是以定位为前提的,因此,对页面元素的定位是进行自动化测试的基础. 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver就是利用元素的这些属性来进行定位的. 可以用于定位的常用的元素属性: id name class name tag name link text partial link te

【学习笔记】移动Web手册(PPK力作)

又是好久没写博客了,最近把近半年的总结,全部总结到博客园吧.先写最近的一个移动端的学习笔记.毕竟移动端开发了一段时间,就写一写度<移动web手册>中,对我感触比较深的几个点—— 一.浏览器相关 1. 浏览器的类型——内置浏览器.可下载浏览器.代理浏览器以及webview.这里的代理浏览器是指服务端进行对页面的渲染,把结果发送给客户端进行显示,比较少见. 2. 内置浏览器的升级——大多数内置浏览器都被紧密集成到底层的操作系统中,也就是说,无法单独升级浏览器.因此,为了得到新的Safary版本,你

HTML5+CSS3学习笔记(二) 页面布局:HTML5新元素及其特性

HTML5新元素及其特性 HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页面显得非常简单. 本次学习HTML5的新标签元素有: <header>定义页面或区段的头部: <footer>定义页面或区段的尾部: <nav>定义页面或区段的导航区域: <section>页面的逻辑区域或内容组合: <article>定义正文或一篇完整的内容: <aside>定义

web app教程:MUI学习笔记第二课:页面布局

页面初始化 在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5+的api,建议都写在mui.plusReady方法中.如下为打印当前页面URL的示例: mui.plusReady(function(){      console.log("当前页面URL:"+plus.webview.currentWebview().getURL());}); mui.init() 

【安全牛学习笔记】ACUNETIX WEB VULNERABILITY SCANNER

ACUNETIX WEB VULNERABILITY SCANNER 自动手动爬网,支持AJAX.JavaScript AcuSensor灰盒测试 发现爬网无法发现文件 额外的漏洞扫描 可发现存在漏洞的源码行号 支持PHP..NET(不获取源码的情况下注入已编编译.NET) 生成PCI.27001标准和规报告 网络扫描 FTP,DNS,SMTP,IMAP,POP3,SSH,SNMP,Telent 集成openvas扫描漏洞 [email protected]:~# cp /media/sf_D_

【安全牛学习笔记】?ACUNETIX WEB VULNERABILITY SCANNER

ACUNETIX WEB VULNERABILITY SCANNER 自动手动爬网,支持AJAX.JavaScript AcuSensor灰盒测试 发现爬网无法发现文件 额外的漏洞扫描 可发现存在漏洞的源码行号 支持PHP..NET(不获取源码的情况下注入已编编译.NET) 生成PCI.27001标准和规报告 网络扫描 FTP,DNS,SMTP,IMAP,POP3,SSH,SNMP,Telent 集成openvas扫描漏洞 [email protected]:~# cp /media/sf_D_

dataquest学习笔记之 python web scrawl 之working with api

dataquest是一个不错的网站,里面的课程短小精炼,非常适合初学者快速入门,并建立一个完善的知识体系. 我是在某 宝上买的 月租dataquest, 一个月也才90元, 链接如下: https://item.taobao.com/item.htm?id=564528265057 本文是学习working with api and web scrapy的笔记; 网站的API都放在服务器上, 客户端向服务器请求api的时候,服务器会一个JSON数据,在Python中,我们一般使用requests

CSS3与页面布局学习笔记(四)——页面布局大全

一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能如下: 1.1.1.向上移动 当多个元素同时从标准流中脱离开来时,如果前一个元素的宽度为100%宽度,后面的元素通过负边距可以实现上移.当负的边距超过自身的宽度将上移,只要没有超过自身宽度就不会上移,示例如下: <!DOCTYPE html> <html> <head> &