【自学php】第二天 - php快速入门
打算看《php和mysql web开发》来学习php,所以也算是这本书的学习笔记吧,也按照书里的例子来练习,但是也有些取舍。第一章是一个订单表单的例子,php用于处理提交的表单。
1.先创建订单表单orderform.html:

代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="processorder.php" method="post">
<table>
<tr style="background-color:#ccc">
<td width="100">种类</td>
<td>数量</td>
</tr>
<tr>
<td>轮胎</td>
<td><input type="text" name="tireqty" size="3"></td>
</tr>
<tr>
<td>汽油</td>
<td><input type="text" name="oilqty" size="3"></td>
</tr>
<tr>
<td>火花塞</td>
<td><input type="text" name="sparkqty" size="3"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="submit order">
</td>
</tr>
</table>
</form>
</body>
</html>
2.再创建procssorder.php来处理表单。
1)添加一点动态内容,显示表单的处理时间:
php的注释有多行注释/*... */,单行注释//或#。
php有4种风格的标记:
XML风格 <?php code ?>
简短风格 <? code ?>
script风格 <script language="php">code</script>
asp风格 <% code %>
推荐使用xml风格,简短风格和asp风格需要在配置文件中启用相应的选项。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>订单处理页</title>
</head>
<body>
<h1>汽车配件网店</h1>
<h2>订单</h2>
<?php
echo "<p>订单处理时间:".date("H:i, jS F Y")."</p>"; //php用“.”连接字符串
?>
</body>
</html>
2)访问表单变量。
在php中可以通过如下三种方式访问tireqty域的值:
$tireqty //简短风格
$_POST['tireqty'] //中等风格
$HTTP_POST_VARS['tireqty'] //冗长风格
简短风格需要将register_gloabals配置选项设置为on,这可能会导致安全性问题的错误,所以不建议用这种方式。冗长风格已经被弃用,通过register_long_arrays配置禁用它可以改进性能。所以中等风格是如今所推荐的。
中等风格包括从$_POST, $_GET或$_REQUEST数组中检索变量。$_GET或$_POST保存相应的表单提交方式的数据,$_REQUEST保存了所有提交方式的表单数据。
<?php
//php每一行要用;结尾
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>订单处理页</title>
</head>
<body>
<h1>汽车配件网店</h1>
<h2>订单</h2>
<?php
echo "<p>订单处理时间:".date("H:i, jS F Y")."</p>"; //php用“.”连接字符串
echo "<p>您的订单如下:</p>";
echo $tireqty." 个轮胎<br>";
echo $oilqty." 桶汽油<br>";
echo "$sparkqty 个火花塞"; //简单类型的变量可以直接写在双引号中,php会用变量的内容插入到字符串中,单引号没有这个特性。
?>
</body>
</html>
3)计算购买的数量和总价。
php变量不需要提前声明,变量名前面必须加$。
常量用define函数定义,并且引用常量的时候前面没有$符号。
define('TIREPRICE', 100);
echo TIREPRICE;
<?php
//php每一行要用;结尾
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
$totalqty = 0;
$totalamount = 0.00; define('TIREPRICE', 100);
define('OILPRICE', 10);
define('SPARKPRICE', 4); $totalqty = $tireqty + $oilqty + $sparkqty;
$totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>订单处理页</title>
</head>
<body>
<h1>汽车配件网店</h1>
<h2>订单</h2>
<?php
echo "<p>订单处理时间:".date("H:i, jS F Y")."</p>"; //php用“.”连接字符串
echo "购买总数:$totalqty <br>";
echo "购买总额:¥$totalamount<br>";
?>
</body>
</html>
4)加上简单的服务器端验证。
可以用exit结束整个php脚本的执行。
empty()可以检查变量是否为空或0,is_numeric()可以检查变量是否为数字或数字字符串。
<?php
//php每一行要用;结尾
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
$totalqty = 0;
$totalamount = 0.00; define('TIREPRICE', 100);
define('OILPRICE', 10);
define('SPARKPRICE', 4); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>订单处理页</title>
</head>
<body>
<h1>汽车配件网店</h1>
<h2>订单</h2>
<?php
if(empty($tireqty) && empty($oilqty) && empty($sparkqty)){
echo "<p style='color:red'>您没有选购商品</p>";
exit;
}
if(is_numeric($tireqty) && is_numeric($oilqty) && is_numeric($sparkqty)){ $totalqty = $tireqty + $oilqty + $sparkqty;
$totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE; echo "<p>订单处理时间:".date("H:i, jS F Y")."</p>"; //php用“.”连接字符串
echo "购买总数:$totalqty <br>";
echo "购买总额:¥$totalamount<br>";
}else{
echo "<p style='color:red'>参数必须为数字</p>";
exit;
}
?>
</body>
</html>
3.大功告成:


【自学php】第二天 - php快速入门的更多相关文章
- RabbitMQ学习总结 第二篇:快速入门HelloWorld
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- 第二章 Vue快速入门-- 28 自定义按键修饰符
事件处理-按键修饰符 js 里面的键盘事件对应的键码 <!DOCTYPE html> <html lang="en"> <head> <m ...
- 第二章 Vue快速入门-- 27 字符串的padStart方法使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 第二章 Vue快速入门-- 26 过滤器-定义私有过滤器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 第二章 Vue快速入门-- 25 过滤器-定义格式化时间的全局过滤器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 第二章 Vue快速入门-- 23 品牌案例-根据关键字实现数组的过滤
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 第二章 Vue快速入门--20 品牌案例-完成品牌列表的添加功能+ 21 品牌案例-根据Id完成品牌的删除
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 第二篇 CSS快速入门
学CSS 和 JS的路线: 1. 首先,学会怎么找到标签.只有找到标签,才能操作标签——CSS通过选择器去找标签 2. 其次,学会怎么操作标签对象. CSS概述 CSS是Cascading Style ...
- 第二章 Vue快速入门--14 使用v-model实现计算器的案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
随机推荐
- 【转】【可用】Android 登录判断器,登录成功后帮你准确跳转到目标activity
我们在使用应用时肯定遇到过这样的情景,打开应用,并不是需要我们登录,你可以浏览应用中的大部分页面,但是当你想看某个详情页的时候,点击后突然跳转到了登录页面,好,我们输入账号密码,点击登录,登录成功,跳 ...
- Javascript-数据类型、类型转换
typeof 判断数据类型: var n = 1; var t = "echo"; var fn = function() {} var arr = [1,2,3]; typeof ...
- C++ 包含头文件 和 宏的使用 和 条件编译
1 #define命令剖析 1.1 #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本. ...
- ISSkin 使用技巧,WinXP 下的窗口阴影
原文 http://restools.hanzify.org/article.asp?id=109 是否觉得在使用 ISSkin 的时候感觉窗口太过平板,尤其对于那些窗口边缘和窗口内部颜色一致的皮肤尤 ...
- poI地址纠偏查询存储过程理解
1.POI存储过程查询 服务器类型:PostgreSQL function name 函数名字 address_parse_no_save(lon float8, lat float8) DECLAR ...
- [Linux]shell编程基础/linux基础入门
声明执行程序 #!/bin/bash 用来告诉系统使用/bin/bash 程序来执行该脚本.譬如python 脚本,可以这样写: #!/usr/bin/python 赋值和引用 赋值公式: 变量名 ...
- 基于最大最小距离的分类数目上限K确定的聚类方法
聚类是数据挖掘很重要的组成部分.而大多数聚类算法都需要事先确定分类数目K.而本文是在实际 情况下确定分类数目K的上限.进而对数据样本进行自动分类. 首先介绍下最大最小距离算法: 设样本集为X{x(1) ...
- 让app在ios6上具有ios7的扁平效果
使用cocoapods在工程中加入UI7Kit,关于UI7Kit请自行google. 加入到工程 如果没安装cocoapods,则安装.(http://www.cocoapods.org) 安装方法: ...
- linux(边压缩边传输边解压)
比如我要转移旧VPS /home/wwwroot 下的web目录到新VPS(123.123.123.123)的/home/wwwroot 目录下 1.进入目录 cd /home/wwwroot ...
- getgrent
http://baike.baidu.com/link?url=JNyoNvukL-LP7ayYlNNWLv2gPOzn-bjiwuX1CE_QwUTyrRGCWu4NhDW-JznHQoG4aIfw ...