PHP学习笔记5-表单,传参

本文详细介绍了如何在PHP中创建和处理表单,包括使用POST和GET方法传递数据,以及通过$_POST[], $_GET[], 和$_SESSION[]全局变量获取表单数据。还讨论了在HTML中嵌入PHP脚本,以及如何处理不同类型的表单元素如文本框、复选框、单选按钮、下拉列表和文件域的值。" 56278494,783974,解决UnicodeDecodeError:'ascii' codec无法解码字节,"['Python', 'Django', 'PyCharm', '错误解决', '编码']

表单

创建表单

使用<from>标记,并在其中插入相关的表单元素,即可创建表单

<form name="form_name"  method="method" action="url"  enctype="value"  target="target_win">//省略插入的表单元素
</form >

在这里插入图片描述

表单元素

  • 输入域标记<input>
    输入域标记<input>是表单中最常用的标记之一。常用的文本框、按钮、单选按钮、复选框等构成了一个完整的表单。
    语法格式如下:
<form>
<input name="file_name"  type="type_name">
</form>

参数name是指输入域的名称,参数type是指输入域的类型
提供了10种类型的输入区域
在这里插入图片描述
在这里插入图片描述

  • 选择域标记<select><option>
<select name="name" size="value" multiple>
<option value="value" selected>选项1</option>
<option value="value">选项2</option>
<option value="value">选项3</option></select>

在这里插入图片描述
菜单模式就是在<select>里面加上multiple
在这里插入图片描述
列表模式就是在<select>里面不加multiple
在这里插入图片描述

  • 文字域标记<textarea>
    文字域标记<textarea>用来制作多行的文字域,可以在其中输入更多的文本
<textarea name="name" rows=value cols=value value="value" warp="value">
	…文本内容
</textarea>

name表示文字域的名称;
rows表示文字域的行数;
cols表示文字域的列数(这里的rows和cols以字符为单位);
value表示文字域的默认值
warp用于设定显示和送出时的换行方式,值为off表示不自动换行,值为hard表示自动硬回车换行,换行标记一同被发送到服务器,输出时也会换行,值为soft表示自动软回车换行,换行标记不会被发送到服务器,输出时仍然为一列。

获取表单数据

有两种方式POSTGET

  • POST
    应用POST方法时,只需将表单中的属性method设置成POST即可。POST方法不依赖于URL,不会显示在地址栏。POST方法可以没有限制地传递数据到服务器,所有提交的信息在后台传输,用户在浏览器端是看不到这一过程的,安全性高。所以POST方法比较适合用于发送一个保密的(如信用卡号)或者容量较大的数据到服务器。
  • GET
    GET方法是表单中method属性的默认方法。使用GET方法提交的表单数据被附加到URL后,并作为URL的一部分发送到服务器端
    GET方法的传参格式如下:
http://url?name1=value1&name2=value2……

url和表单元素之间用“?”隔开,而多个表单元素之间用“&”隔开,每个表单元素的格式都是name=value,固定不变。
在这里插入图片描述
在这里插入图片描述
这个方式提交参数会把参数暴露,不适合做账号密码提交

PHP的传参方式

$_POST[]全局变量

建立一个表单,设置method属性为POST,添加一个文本框,命名为user,获取表单元素的代码如下:

<?php
$user=$_POST["user"];	//应用$_POST[]全局变量获取表单元素中文本框的值
?> 

在这里插入图片描述
isset($_POST["submit"]这句话是判断变量是否存在,当按下按钮以后他就存在了,$_POST["submit"]=="提交"是判断这个按钮的值(value)是不是“提交”

$_GET[]全局变量

建立一个表单,设置method属性为GET,添加一个文本框,命名为user,获取表单元素的代码如下:

<?php
$user=$_GET["user"];	//应用$_GET[]全局变量获取表单元素中文本框的值
?> 

$_SESSION[]变量

建立一个表单,添加一个文本框,命名为user,获取表单元素的代码如下:

$user=$_SESSION["user"]

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

在web中嵌入php脚本

在HTML标记中添加PHP脚本

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

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

例如,为表单元素隐藏域进行赋值,只需要将所赋的值添加到value属性后即可,代码如下:

<?php
 $hidden="yg0025";			//为变量$hidden赋值
?>
隐藏域的值 :<input type="hidden" name="ID" value="<?php echo $hidden;?>" >

首先为变量hidden赋予一个初始值,然后将变量hidden赋予一个初始值,然后将变量hiddenhidden的值赋给隐藏域。

在PHP中获取表单元素

获取文本框、密码域、隐藏域、按钮、文本域的值

在程序开发过程中,获取文本框、密码域、隐 藏域、按钮以及文本域的值的方法是相同的,都是使用name属性来获取相应的value属性值。
例子就像上面的那个一样

<body>
<form name="form1" method="post" action="">
<table width="509" border="0"> 
  <tr>
    <td>账号</td>
    <td><input type="text" name="user" size="20" ></td>
    <td> 密码</td>
    <td><input name="pwd" type="password" id="pwd" size="20" ></td>
    <td><input name="submit" type="submit" id="submit" value="提交" /></td>
  </tr>
</table>
</form>
<?php
if(isset($_POST["submit"]) && $_POST["submit"]=="提交"){
	echo "账号".$_POST['user']."&nbsp;&nbsp;密码".$_POST['pwd'];
}
?>
</body>

获取单选按钮的值

在这里插入图片描述

获取复选框的值

复选框一般都是多个同时存在,为了便于传值,name的名字可以是一个数组形式,格式为:

<input type="checkbox" name="chkbox[]" value="chkbox1">

可以使用count()函数计算数组的大小,结合for循环语句输出选择的复选框的值。
可以通过下面例子理解:

<body>
<form name="form1" method="post" action="">
<table width="500" cellpadding="0" cellspacing="0">
  <tr>
    <td width="400" height="25" align="center" valign="top">
	    你喜欢的图书类型
	    <input type="checkbox" name="mrbook[]" value="入门类">
	    入门类
	    <input type="checkbox" name="mrbook[]" value="案例类">
        案例类
        <input type="checkbox" name="mrbook[]" value="讲解类">
        讲解类
        <input type="checkbox" name="mrbook[]" value="典型实例类">
		实例类
	</td>
    <td width="40" align="center" valign="top"><input type="submit" name="submit" value="提交"></td>
  </tr>
</table>
</form>
<?php
if(isset($_POST['mrbook']) && $_POST['mrbook']!=""){
	echo "你选择的结果是:";						
	for($i = 0;$i<count($_POST['mrbook']);$i++)
		echo $_POST['mrbook'][$i]."&nbsp;&nbsp;";
}
?>
</body>

在这里插入图片描述

获取下拉列表框/菜单列表框的值

1.获取下拉列表框的值
获取下拉列表框的值的方法非常简单,与获取文本框的值类似,首先需要定义下拉列表框的name属性值,然后应用$_POST[]全局变量进行获取。

<body>
<form name="form1" method="post" action="">
  <table width="280" border="0" cellpadding="0" cellspacing="0">
    <tr>
      <td width="80" height="25" align="center"><span class="style2">abcde:</span></td>
      <td width="194">
		<select name="select" size="1">
			<option value="aaa" selected>aaa</option>
			<option value="bbb">bbb</option>
			<option value="ccc">ccc</option>
			<option value="ddd">ddd</option>
        </select>&nbsp;&nbsp;&nbsp;
      <input type="submit" name="submit" value="提交"></td>
    </tr>
  </table>
</form>
<?php
if(isset($_POST['submit']) && $_POST['submit']=="提交"){
   echo "结果:".$_POST['select'];
}
?>
</body>

2.获取菜单列表框的值
当标记设置了multiple属性,则为菜单列表框,可以选择多个条件。由于菜单列表框一般都是多个值同时存在,为了便于传值,标记的命名通常采用数组形式,格式为:

在返回页面可以使用count()函数计算数组的大小,结合for循环语句输出选择的菜单项。

<body>
<form name="form1" method="post" action="">
  <table width="423" border="0" cellpadding="0" cellspacing="0">
    <tr>
      <td width="231" height="30" align="left" valign="middle">&nbsp;&nbsp;&nbsp;&nbsp;请选择:</td>
      <td width="192" align="center" valign="middle">&nbsp;</td>
    </tr>
    <tr>
      <td align="center" valign="middle"><select name="select[]" size="5" multiple>
          <option value="000">000</option>
          <option value="111">111</option>
          <option value="222">222</option>
          <option value="333">333</option>
          <option value="444">444</option>
		  <option value="555">555</option>
        </select></td>
      <td align="left" valign="middle"><input type="submit" name="Submit" value="提交"></td>
    </tr>
    <tr>
      <td height="30" colspan="2" align="left" valign="middle">&nbsp;&nbsp;&nbsp;&nbsp;</td>
    </tr>
  </table>
</form>
</body>
<?php
if(isset($_POST['select']) && $_POST['select'] != ""){				
	echo "你的选择是:";
	for($i = 0; $i < count($_POST['select']); $i++)				
		echo $_POST['select'][$i]."&nbsp;&nbsp";
}
?>

获取文件域的值

文件域的作用是实现文件或图片的上传。文件域有一个特有的属性accept,用于指定上传的文件类型,如果需要限制上传文件的类型,则可以通过设置该属性完成。

<body>
	<form name="form1" method="post" action="">
		<input type="file" name="file" size="15">
		<input type="submit" name="upload" value="上传">
	</form>
<?php
	if(isset($_POST['file']) && $_POST['file']!=""){
		echo $_POST['file'];
	}
?>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huamanggg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值