php与mysql基础 第二章 form

本文介绍了HTML表单的基本构成及其如何与PHP交互处理用户提交的数据。内容覆盖表单元素如文本框、下拉菜单等的创建,以及PHP如何接收这些数据进行验证和反馈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. form 表单包含值有     1.   action  属性 它指定把表单数据发送到那个页面。

                                            2.   method----具有它自己的问题但是post 是最常见的值

method  有两个值get和post

get 指示要使用http超文本传输协议   get的方法把提交的数据通过追加url后面的名值(name-value)对发送接收页面可前后查看

页面但是数据量小又不安全

post  不能执行上述


2'.插入初始form标签。

@<form action="handle_form.php" method="post">

因为action属性指定是将把表单数据发送到那个脚本你应该给他一个合适的名称(handle _form,以对应这个脚本:form.html)及。php扩展名(因为php 页面将处理这个表单的数据)。

@<fieldset><legend>请填写你的昵称/*Enter your information  in the form below*/:</legend><p><b>/*name*/名字:</b><input type="text" name="name"size="20" maxlength="40" /></p>

fieldset  和  legend两个hlml标签 会表单周围添加应该方框并在顶部设置了一个标签这个标签可有可无

@添加两个方框

<p><b>/*name*/名字:</b><input type="text" name="name"size="20" maxlength="40" /></p>
<p><b>/*email address*/邮箱地址:</b><input type="text" name="email"size="40" maxlength="60" /></p>

每个框后的空格和斜杠是有效的XHTML    html可写maxlength="40">   和    maxlength="60">结尾

@添加下拉菜单

<select name ="age">
<option value ="0-29">Unber 30</option>
<option value="30-60">Between 30 and 60 </option>
<option value="60+">over 60</option>
</select></p>

select标签开始创建下拉菜单然后每个option标签将创建选项列表的另一行选项

@添加一个文本框用于输入注释

<p><b>Comments :</b><textarea neme="comments"  rows="3" cols"40"></textarea></p>

textarea 不同于text输入框 它会展示一个方框而不是单行的文本框它允许输入多信息

@完成表单

</fieldset>
<div align="center"><input type="submit" name="submit" value=" submit My Information" /></div>
</form>

第一个标签将关闭第三步 打开的fieldset 然后会创建submit按钮 并使用div标签将其居中

@完成html  <./body>    </html>


源代码

<!-- script 2.1 - form.html-->
<form action="handle_form.php" method="post">
<fieldset><legend>你的昵称:</legend><p><b>名字:</b><input type="text" name="name"size="20" maxlength="40" /></p>
<p><b>邮箱:</b><input type="text" name="email"size="40" maxlength="60" /></p>
<p><b>性别:</b><input type="redio" name="gender"value="m"/>性别<input type="radio" name="gender"value="F"/>Female </p>
<p><b>年龄 :</b>
<select name ="年龄">
<option value ="0-29">30岁</option>
<option value="30-60">30-60岁 </option>
<option value="60+">大于60岁</option>
</select></p>
<p><b>评论 :</b><textarea neme="comments"  rows="3" cols"40"></textarea></p>
</fieldset>
<div align="center"><input type="submit" name="submit" value=" 提交" /></div>
</form>

有了一个html表单编写php 框架脚本来处理它 这个脚本将处理表单脚本将反复把数据库发送回web浏览器将其储存在mysql数据库中 核对它以前储存值

php脚本不需要一个解析历程而是把信息储存在特殊的变量中

如:<input type="text"  name="weight"  size="20" />

接收表单数据的php页面将把用户输入这个表单元素中的内容赋予成为$_REQUEST ['weight']


2  处理html表单源码


 <?php #script 2.2  - handie_form.php
// 添加php开始标签 ,并创建表单数据的简写.
$name = $_REQUEST ['name'] ;    // 换成$name = stripslashes($_REQUEST ['name'] )   可把双反斜杠变成单反斜杠
$email =$_REQUEST['email'] ;
$comments = $_REQUEST ['comments'];  //换成$comments = stripslashes($_REQUEST ['comments'])

//通过变量查看原信息comments注释值not used : $_REQUEST['age  '] . $_REQUEST['gender  '] .and $_REQUEST['sudmit  '].

//打印sudmitted信息.
echo "<p>谢谢:<b>$name </b>以下评 .for the following comments以下评论:<br />
<tt>$comments</tt></p>
<p>我们将回复您!we will reply to you at  <i>$email</i >.</p>\n";
?>

 trim() 函数 它会丛值的两端删除多余的空白 用法 $name = trim($name);

stripslashes()函数与addslasher()函数是对立但用途一样不能同时用


3   条件语句和运算符

三个条件语句 if   else   elseif

if (condition){

//do something! 做些什么

}

这又可变成

if (condition){

//do something! 做些什么

}else{

//do something! 做些什么

}

f (condition){

//do something! 做些什么

}else{

//do something! 做些什么

}else{

//do something! 做些什么

}

如果条件为真则将执行其下花括号({})中的代码

如果不条件不为真php将继续往下执行第二个条件(在elseif之后),则检查其是否为真这个过程将继续——可根据需要使用

多个elseif子句——直到php遇到else 此时将自动执行它;或者没有else则php将执行到条件语句终止为止 因此总把else放在最后

并将视为默认的动作除非满足特定的条件这样做是重要的

php常见条件为真情况

?   $var ,    如$var要是具有0值 ,空格 与字符串null, 条件为真

?   isset($var)  如$var具有不同于null的任何值  包括空格 与字符串, 条件为真

?   TRUE  , true  ,True

isset()函数   此函数检查一个变量是否被设置 ,它具有不同NULL的值 还可连符号一起使用比较或逻辑运算符建立更复杂的表达式

例子
名称
结果
$a == $b
等于
TRUE,如果 $a 等于 $b。
$a === $b
全等
TRUE,如果 $a 等于 $b,并且它们的类型也相同。(php 4 引进)
$a != $b
不等
TRUE,如果 $a 不等于 $b。
$a <> $b
不等
TRUE,如果 $a 不等于 $b。
$a !== $b
非全等
TRUE,如果 $a 不等于 $b,或者它们的类型不同。(php 4 引进)
$a < $b
小与
TRUE,如果 $a 严格小于 $b。
$a > $b
大于
TRUE,如果 $a 严格 $b。
$a <= $b
小于等于
TRUE,如果 $a 小于或者等于 $b。
$a >= $b
大于等于
TRUE,如果 $a 大于或者等于 $b
$$                              与            逻辑            

||                               或              逻辑

XOR                        异或           逻辑       两个只能选其一


###条件语句switch

switch ($variabie){

case 'valuel';

//Do this做到这一点

break ;

case 'value2';   //Do this instead.做到这一点儿不是

break ;

defaujt;   ;       //do  this then .这样做那么

}
switch 条件语句将$variabie的值与不同的case 做比较当它发现一个匹配是就会执行其后的代码直至遇到break如果没有匹配会执行defaull ,假定存defaull 可以用

switch ($gender){

case ' 男 ';

echo  '<P><b>男</P></b>'

break ;

case ' 女 ';  

echo    '<P><b>女</P></b> '  ;

break ;

defaujt    ; 

   echo    '<P><b>请填写</P></b> '  ;

}

仅限于可以检查变量值与某些相同条件下使用 不能轻率检查复杂的条件语句

@@@@@@@@@


html表单数据验证,对web安全性获得专业的结果

<?php  #script 2.5 handle_fome.php (4th version after scripts 2.2 2.3  &2.4)

// validate the name ang combat magic quotes . if necessdry.验证的名称

if (!empty( $_REQUEST ['name'])){

$name = stripslashes($_REQUEST ['name']) ;

}else{

$name = NULL ;

echo '<p><font color ="red">you forgot  to enter your name !</font></p>'   ;

}

// validate the name ang combat magic quotes . if necessdry.验证邮箱

if (!empty( $_REQUEST ['email '])){

$email  =stripslashes ( $_REQUEST ['email ']) ;

}else{

$email = NULL ;

echo '<p><font color ="red">you forgot  to enter your email   address!</font></p>'   ;

}

//验证内容

if (!empty( $_REQUEST ['comments '])){

$comments =stripslashes ( $_REQUEST ['comments ']) ;

}else{

$email = NULL ;

echo '<p><font color ="red">you forgot  to enter your comments !</font></p>'   ;

}

if ($gender == 'M’){

$message = '<p><b>你好先生 !</b></p> '  ;

}elseif($gender =='F'){

$message = '<p><b>你好女士!</b></p> '  ;

}else{

$message =  MULL ; 

echo '<p><font color ="red">gender should be either "M" or "F"!</font></p>'   ;


}else{

$gender=  MULL ; 

echo '<p><font color ="red">you forgot  to select your gender !</font></p>'   ;

}

// if everthing is okay .prin the message 

if ($name && $ email && $gender &&  $comments ){

echo "<p>谢谢!<b>$name </b>. 消息:<br  />

<tt>$message: //从$gender  conditional.

}else{ one form element  was not filled out the form again .</font></p>';

}

?>

########数组array

数组与字符串和数字是标量变量他们只能存储一个值        array可以保存多分单独的信息因此 数组就像是值的列表其中每一对都是那个数组的一个项目或元素(element)对列表每项都有一个与之关联的建(key)或索引(index)的到达到的结构很像是电子表格和数据库

键    值

0     low

1      Aimee Mann

2      Ani Difranco

3      Spinrtualizcd

4       Air

PHP支持两种数组索引数组(indexed array)  和联合数组(associative array)前者使用数字作为键    后者使用字符串作为键像打多数语眼一样 索引数组的第一个索引开始于0可指定值

$states显示数组使用字符串(确切确切的讲是状态的缩写词)  作为他的值

键                                                  值

MD                                             Maryland 

PA                                             pcnnsylvania

IL                                                luinois

MO                                             missouri

IA                                                 lowa

超全局变量$_GET,       $_POST 存储使用post方法表单到php脚本所有的数据  与$_COOKIE是$_REQUEST的子变量

 ,$_SESSION,   $_REQUEST  ,$_SEVER  ,$_COOKIE等

两个数组

$states =array('IA'='Lowa' .  ' MD ' => ' marlang') ;

$artists = array('ani difianco' . 'air . wilco');

$days = array (1 => 'sunday' .'monday' .'tuesday ') ;

echo $day [3] ://tuesday 

数字连续数组    range  ()                                                              $ten =range(1.10);

########访问数组 foreach (  ) {

};

要确定数组中的元素个数用 count ( )或 sizeof()函数

$num =count($array) 或 $num =sizeof($array)

php4.1起 range()函数页可以创建字母数组 连续性的

$alphabet =range('a'.'z');

is_array()还可以确定一个变量函数的类型;


####数组与字符串之间的转变

$array = explode(separator .$string);数组变字符串

$string = implode (glue . $array);字符串变数组

如$string1 ='a -b-c-d-e';

$days_array =explode('-'.$string1);

显示数组(0. a) . (1.b) .(3.c). (4 . D) . ( 5. e)字符变数组

string2 =implade('. ' . $days_array);

显示 a .b.c. d .e 变成了字符串列表 数组变字符串


implade();函数及方便了字符与数组之间的转换   78页

   isset () 检查条件语句是否具有值      null空或假

is_numeric () 函数  测试提交的值是否是数字

strlen()函数来查看验证文本输入是否输入了0个以上的字符 if (strlen($var)>0){//$var有值}else{ //$var没值  };


####数组的排序

sort() 按值对数组的排序 

asort() 按值同时按原来键位排序    按降序排列

ksort()  按键对数组排序

shullle9)  随机排序

natsort()  默认排序


####for 和while 循环

只有循环的条件(condition条件)部分为真 就会执行循环,一旦条件为假就会停止循环条件永远不为真,就永远不执行

for(condition条件 ){//做点什么

}


date()函数参数表         108页


format字符
说明
返回值例子
---
---
d
月份中的第几天,有前导零的 2 位数字
01到 31
D
星期中的第几天,文本表示,3 个字母
Mon到 Sun
j
月份中的第几天,没有前导零
1到 31
l(“L”的小写字母)
星期几,完整的文本格式
Sunday到 Saturday
N
ISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加)
1(表示星期一)到 7(表示星期天)
S
每月天数后面的英文后缀,2 个字符
st,nd,rd或者 th。可以和 j一起用
w
星期中的第几天,数字表示
0(表示星期天)到 6(表示星期六)
z
年份中的第几天
0到 366
星期
---
---
W
ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的)
例如:42(当年的第 42 周)
---
---
F
月份,完整的文本格式,例如 January 或者 March
January到 December
m
数字表示的月份,有前导零
01到 12
M
三个字母缩写表示的月份
Jan到 Dec
n
数字表示的月份,没有前导零
1到 12
t
给定月份所应有的天数
28到 31
---
---
L
是否为闰年
如果是闰年为 1,否则为 0
o
ISO-8601 格式年份数字。这和 Y的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加)
Examples: 1999or 2003
Y
4 位数字完整表示的年份
例如:1999或 2003
y
2 位数字表示的年份
例如:99或 03
时间
---
---
a
小写的上午和下午值
am或 pm
A
大写的上午和下午值
AM或 PM
B
Swatch Internet 标准时
000到 999
g
小时,12 小时格式,没有前导零
1到 12
G
小时,24 小时格式,没有前导零
0到 23
h
小时,12 小时格式,有前导零
01到 12
H
小时,24 小时格式,有前导零
00到 23
i
有前导零的分钟数
00到 59>
s
秒数,有前导零
00到 59>
时区
---
---
e
时区标识(PHP 5.1.0 新加)
例如:UTC,GMT,Atlantic/Azores
I
是否为夏令时
如果是夏令时为 1,否则为 0
O
与格林威治时间相差的小时数
例如:+0200
T
本机所在的时区
例如:EST,MDT
Z
时差偏移量的秒数。
-43200到 43200
完整的日期/时间
---
---
c
ISO 8601 格式的日期(PHP 5 新加)
2004-02-12T15:19:21+00:00
r
RFC 822 格式的日期
例如:Thu, 21 Dec 2000 16:01:07 +0200
U
从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数
参见time()

mktime()函数找出特定日期的时间戳

getdate() 函数返回这个联合数组

checkdate() 函数带有3个参数 月份 天 年份 并检查它是否是一个有效的时间 现在或过去实际存在的日期






 
 
 
 
 
 































































































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值