找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 网络编程 PHP 查看内容

PHP4实际应用经验篇

2009-12-21 17:41| 发布者: admin| 查看: 55| 评论: 0|原作者: 江海

  表单是一种给你的站点增加交互功能的最快,最容易的途径。表单允许你询问你的顾客是否喜欢你的产品,让不经意访问到你的站点的访问者留下评论,或者向漂亮的美眉们要她们的电话号码。PHP能大大简化基于网页表单提交的数据处理工作-如下面我们的第一个例子所示:

--------------------------------------------------------------------------------
< html>
< head>
< basefont face="宋体">
< /head>
< body>
< center>
< form method="GET" action="login.php">
< table cellspacing="5" cellpadding="5" border="0">
< tr>
< td>
< font size="-1">请问你的名字是?< /font>
< /td>
< td align="left">
< input type="text" name="name" size="10">
< /td>
< /tr>

< tr>
< td colspan="2" align="center">
< input type="submit">
< /td>
< /tr>
< /table>
< /form>
< /center>
< /body>
< /html>
--------------------------------------------------------------------------------
整个页面最值得注意的是那个 < FORM> 标签
--------------------------------------------------------------------------------
< form method="GET" action="login.php">
...
< /form>
--------------------------------------------------------------------------------
  你可能已经知道了,< FORM>标签的ACTION属性值明确指定了将处理表单里输入的信息的服务器端脚本名-在这里是"login.php",而 METHOD属性是说明信息将如何传送。
  现在给你揭开迷团的另一半-"login.php" 脚本文件。如果不出意外,这个脚本将接受输入的名字,检查是否用户存在,决定是允许还是拒绝进入站点。由于你还没学到PHP的条件语句和逻辑处理,我们现在不打算给你论证清楚-相反,我们仅仅给你展示在前面表单里提交的数据是如何被传送到 "login.php",并能被这个文件使用的。

  这就是 "login.php"
--------------------------------------------------------------------------------
< html>
< head>
< basefont face="宋体">
< /head>
< body>
< center>
< font face="宋体" size="-1">
我想知道你是否听说过莎士比亚, < ? echo $name; ?>.
< p>
他要求得到一束另一个名字的玫瑰花,因为那束闻起来可能会更芳香一些。
< p>
你认为呢?
< /font>
< /center>
< /body>
< /html>
--------------------------------------------------------------------------------
  当你在表单里输入数据,例如(“张三”),并且提交后,你将看到如下页面:
--------------------------------------------------------------------------------
我想知道你是否听说过莎士比亚, 张三
他要求得到一束另一个名字的玫瑰花,只为那束闻起来可能会更芳香一些
你认为呢?
--------------------------------------------------------------------------------
  你将看到,无论何时,当表单提交给PHP脚本时,所有的表单里的变量值和表单的名字将成对地输送到脚本中,从而可以被脚本任意调用。在上面的例子中,当表单被提交后,变量$name在脚本 "login.php"中被自动创建,并且表单里用户输入的值也被赋给该变量。
  如果你用Perl来做同样的事情,你需要非常清楚地写出Perl代码来获取表单里的变量值。通过自动创建并赋值,PHP简化了你的代码,大大提高了开发速度-表单处理是PHP优于Perl的两个原因之一。
  很明显,PHP也支持表单提交的 POST方法,所有你需要做的仅仅是把METHOD的值标注为"POST" 。

  当然,你刚才看到的那个例子是非常基本的。真正来点重量级的程序,你需要知道如何去组织条件语句。非常基本的条件语句是比较语句-例如:“如果某和某相等,则用某种方法做这个动作”
  PHP有一串特意设计的操作符以方便在条件语句中使用。这儿是一个列表:
假设 $delta = 12 并且 $omega = 9

操作符
意义
表达方式
结果
==
等于
$delta == $omega
False
!=
不等于
$delta != $omega
True
>
大于
$delta > $omega
True
<
小于
$delta < $omega
False
>=
大于或等于
$delta > = $omega
True
<=
小于或等于
$delta <= $omega
False

  PHP4还增加了一种新的操作符"===",用来测试两个数据数值和类型是否都相同,在这一部分的最后一小节有一个简单的例子。

  在PHP中,最简单的条件语句的形式是 "if" 语句,一般如下所示:
--------------------------------------------------------------------------------
if (条件)
{
do this!
}
--------------------------------------------------------------------------------
  这里的 "条件" 是一个条件的描述, PHP经过判断将得出"true"或"false"的任意之一值。如果是真值,所有大括弧里的PHP代码将被执行,相反,如果是假值大括弧里的代码将被忽略,继续执行"if"语句结构块以后的行。

  我们通过给上面的 "login.php"脚本添加一个身份认证的例子来给你演示 "if" 语句是如何工作的。只有当用户输入的用户名是"neo"时才允许接入。

--------------------------------------------------------------------------------
< html>
< head>
< basefont face="宋体">
< /head>
< body>
< center>
< ?
// 检查名字并反馈相应的信息
if ($name == "neo")
{
?>
< font face="Arial" size="-1">
欢迎进入母体,Neo。
< p>
也许是武力强迫你才这样做的,,,哦,不正当的影片!< /font>
< ?
}
?>

< ?
//如果密码错了的话
if ($name != "neo")
{
?>

< font face="Arial" size="-1">
我想知道你是否听说过莎士比亚?, < ? echo $name; ?>.
< p>
他要求得到一束另一个名字的玫瑰化,因为那束闻起来可能会更芳香一些。
< p>
对于你,很不幸,我不同意。拒绝进入!
< /font>
< ?
}
?>

< /center>
< /body>
< /html>
--------------------------------------------------------------------------------
  在这种情况下, "if" 语句通过判断输入的密码是否正确来反馈相应的两种信息。PHP还允许你“嵌套”条件语句-例如,这是一段有效的PHP代码:
--------------------------------------------------------------------------------
< ?
if ($day == "Thursday")
{
if ($time == "12")
{
if ($place == "Italy")
{
$lunch = "pasta";
}
}
}
?>

  除了"if"语句,PHP还提供了"if-else"结构,用来定义当语句中的条件描述为"false”值时所执行的PHP代码。

  "if-else" 结构使用方法如下:
--------------------------------------------------------------------------------
if (condition)
{
do this!
}
else
{
do this!
}
--------------------------------------------------------------------------------
  你将看到,这种结构可以用来对上一篇那个例子进行大大简化-替代两个分开的 "if" 语句嵌套,我们可以把他们混合在一个单一的"if-else" 语句中:
--------------------------------------------------------------------------------
< html>
< head>
< basefont face="Arial">
< /head>
< body>
< center>
< ?
// 检查名字并反馈相应的信息
if ($name == "neo")
{
?>
< font face="Arial" size="-1">
欢迎进入母体,Neo。
< p>
也许是武力强迫你才这样做的,,,哦,不正当的影片!
< /font>
< ?
}
else
{
?>

< font face="Arial" size="-1">
我想知道你是否听说过莎士比亚, < ? echo $name; ?>.
< p>
他要求得到一束另一个名字的玫瑰化,因为那束闻起来可能会更芳香一些。
< p>
对于你,很不幸,我不同意。拒绝进入!
< /font>
< ?
}
?>

< /center>
< /body>
< /html>

  PHP还给你提供了一种处理多种可能的方式-"if-elseif-else"结构。一个典型的"if-elseif-else"结构语句将如下所示:
--------------------------------------------------------------------------------
if (第一个条件正确)
{
do this!
}
elseif (第二个条件正确)
{
do this!
}
elseif (第三个条件正确)
{
do this!
}
... 等等 ...
else
{
do this!
}
--------------------------------------------------------------------------------
  这儿有一个说明如何使用的例子:
--------------------------------------------------------------------------------
< html>
< head>
< style type="text/css">
td {font-family: Arial;}
< /style>
< /head>
< body>
< font face="Arial" size="+2">
令人惊奇的幸运甜饼生产程序
< /font>
< form method="GET" action="cookie.php">
< table cellspacing="5" cellpadding="5" border="0">
< tr>
< td align="center">
请选择日期
< /td>
< td align="right">
< select name="day">
< option value="Monday">Monday
< option value="Tuesday">Tuesday
< option value="Wednesday">Wednesday
< option value="Thursday">Thursday
< option value="Friday">Friday
< option value="Saturday">Saturday
< option value="Sunday">Sunday
< /select>
< /td>
< /tr>
< tr>
< tr>
< td colspan="2" align="center">
< input type="submit" value="点击我!">
< /td>
< /tr>
< /table>
< /form>
< /body>
< /html>
--------------------------------------------------------------------------------
  你将看到,这个简单的表单允许你选择一周的一天。真正的处理工作由提交后的 PHP 脚本 "cookie.php"来做。
--------------------------------------------------------------------------------
< ?
if ($day == "Monday")
{
$fortune = "当能找到使每件事做的复杂精彩的方法的时候,不要使它简单有效.";
}
elseif ($day == "Tuesday")
{
$fortune = "生活是游戏的桥梁?-你一定施展某种巧计了。";
}
elseif ($day == "Wednesday")
{
$fortune = "什么能使头脑清醒的人生活在这个世界上永不发疯?";
}
elseif ($day == "Thursday")
{
$fortune = "不要疯狂,要有趣";
}
elseif ($day == "Friday")
{
$fortune = "仅仅跟着时代走,顺着风气行,当你得到提升时你会发现类型是个魔鬼。";
}
else
{
$fortune = "很抱歉,周末关门";
}
?>
< html>
< head>
< basefont face="Arial">
< /head>
< body>
这是你< ? echo $day; ?>的幸运语:
< br>
< b>< ? echo $fortune; ?>< /b>
< /body>
< /html>
--------------------------------------------------------------------------------
  在这种情况中,我们使用控制句给每天分配不同的幸运语。
  这里有一个重要的值得注意的一点-当结构中的一个"if" 语句被发现是真值时,PHP将执行相应的代码,忽略剩下的结构中的"if"语句,立即跳出 "if-elseif-else" 结构,执行整个结构后面的行。

  现在,你已经明白PHP允许你嵌套条件语句。然而,如果你再看看那个用来示范此概念的例子时你将同意那是既复杂又令人感到可怕。

--------------------------------------------------------------------------------
< ?
if ($day == "Thursday")
{
if ($time == "12")
{
if ($place == "Italy")
{
$lunch = "pasta";
}
}
}
?>
--------------------------------------------------------------------------------
  还好,除了我们已经可以不受任何限制使用的比较操作符之外,PHP 还提供了一些逻辑操作符来允许你把条件语句描述聚集起来。下面的表格清楚地表明了这些:

假设 $delta = 12 并且 $omega = 9
操作符
意义
例子
结果
&&
AND
$delta == $gamma && $delta > $omega
True
$delta && $omega < $omega
False
||
OR
$delta == $gamma || $delta < $omega
True
$delta > $gamma || $delta < $omega
False
!
NOT
!$delta
False
< =
小于或等于
$delta < = $omega
False

  好,我们可以用逻辑操作符重写上面例子的代码,你看,下面的表述是不是更简单些?
--------------------------------------------------------------------------------
< ?
if ($day == "Thursday" && $time == "12" && $place == "Italy")
{
$lunch = "pasta";
}
--------------------------------------------------------------------------------
简单文雅吗? Yes

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 11:35 , Processed in 0.108936 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部