资源描述
php动态网站开发教案
《PHP动态网站开发》教案
2016~2017学年第2学期
二○一七年二月
《ASP动态网站开发》课程教案
授课班级
15级淘宝班
课次
1
授课方式
理论课þ讨论课□实验课□习题课□其他□
课时
安排
3
授课题目(教学章、节或主题):
PHP环境配置、数据类型
常用PHP运算类型、PHP条件、循环语句的介绍与应用
教学目的、要求(分掌握、熟悉、了解三个层次):
了解PHP环境的配置,wamp环境的设置。
掌握PHP的数据类型及其数据的运算规则。
掌握PHP的条件语句、循环语句的用法及语法规则。
教学重点及难点:
动态网站的环境配置与PHP的条件语句、循环语句的用法及语法规则。
教学基本内容及方法手段
PHP环境搭配和代码调试
1、PHP的优势和背景
PHP是能让你生成动态网页的工具之一。PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点( )自由下载。
你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。如果更好的学习建议可以先看看些 HTML 和 SQL 的基础。
2、PHP环境的搭配
所需的工具: WampServer 5 集成环境
Wamp5是Apache+PHP+Mysql 在Windows下的集成环境,拥有简单的图形和
菜单安装。该版本集成了PHP5.2.5 、Mysql5、 Apache2 、phpMyAdmin 2.11.2.1 、
SQLiteManager 1.2.0 满了大部分PHPer的需求…
介绍一下wamp的虚拟目录、服务图标的显示、环境测试
3、PHP常用工具和数据库常用工具
PHP开发工具:Zend Stodio ,PHPedit , EditPlus 2 ,easyeclipse ,DW 等
MYSQL工具:MYSQL Administrator
4、书写和调试简单的PHP代码
从语法上看,PHP语言近似于C语言。可以说,PHP是借鉴C语言的语法特征,由C语言改进而来的。我们可以混合编写PHP代码和HTML代码,不仅可以将PHP脚本嵌入到 HTML 文件中,我们甚至还可以把 HTML 标签也嵌入在 PHP 脚本里。以下是你可以采用的几种方法。你可以选用其中一种你最适合的并且就这样坚持这种方法!从HTML中分离以下是可以使用的方法:
<? . . . ?> 短标签模式
<?php . . . ?> 标准模式
<script language="php"> . . . </script> 类似于javascript模式
<% . . . %> 修改模式,也可以支持
在PHP中用“;”来分隔语句。那些从HTML中分离出来的标志也表示语句的结束。
注释
PHP支持C,C 和Unix风格的注释方式:
/* C,C 风格多行注释 */
// C 风格单行注释
# Unix风格单行注释
例子:
<?php
echo "Hello World!"; 或phpinfo();
?>
5、如何处理简单的PHP错误
1、你要把PHP.ini 里的 display_errors = On 才可以显示错误位置
2、习惯使用echo或者print 打印,每一步输出看看结果是否正确。
3、学会使用注释来屏蔽符号来调试
// ……….
/*………… */
#..............
4、要懂得看错误信息
错误的显示信息的行数及什么错位置。
PHP的数据类型 源码调试
1、PHP基本语法和数据类型
(1)、PHP基本语法:
1、htm和php混编
<font color=red>我好</font>
2、一个语句以; (分号结束,英文半角)
3、如何定义一个变量,和变量的使用
$abc=9;//以$开始,以A-Z或a-z
Echo $abc;
(2)、PHP数据运算类型
四种标量类型:
boolean(布尔型) 理解为真假型
$bo=TRUE; $bo=FALSE;//赋值为0时为假,大于0为真
integer(整型)
$bo=1; $bo=-12;
float(浮点型,也作“double”) 理解为小数型
$bo=1.001; $bo=3.1415926;
string(字符串)
$bo=“这段字符串 or EN Word”; //双引号支持转义字符,单引号不支持。
两种复合类型:
array(数组)
$bo=array(1,2,3,4); $bo=array(“A”=>1 , “B”=>2);
object(对象)
源码调试
1、解压源码到网站目录
2、按照数据库
3、调试成功
2、学习一个PHP源码调试 (discuz论坛)
常用PHP运算类型介绍与应用
1、算术运算 //理解为数学运算
例:5 * 6 - 12
2*(28+1)
注:算术运算遵循数学运算规则:从左到右,先算乘除后算加减,遇到括号先算括号内.
2、赋值运算 //把一个值写入一个变量
例:$a=1;
$a+=2;
$a*=3;
注:把右边的值赋予左的变量。
3、比较运算 /用来确定两个数之间的关系
例:1==2
3!=2
5<3
"ok"=="ok"
1==='1' //值相等且类型相同,用echo输出时真为1,假不输出。
注:比较运算得到的值为布尔值
4、逻辑运算//先将比较的两边转换成布尔类型,再执行他们的关系
例:1 && 1
0 or 1
1xor1
!$a
注:逻辑运算得到的值为布尔值
5、递增递减运算 //只操作变量的一种运算
例:$a++ //$a=$a+1
++$a
$a-- //$a=$a-1
--$a
PHP条件语句的介绍与应用
1、 if 条件语句
程序中最常见的,大部分语言中都存在的一种条件语句,在开发中起着至关
重要的作用,格式如下:
if …else…
if …else…
if …elseif…
if(expr)
echo TRUE
else
echo FALSE
if(expr) {
echo TRUE
}else
{
echo FALSE
}
if(expr) {
echo TRUE
}
elseif(expr) {
echo CON
}else{
echo FALSE
}
2、switch 条件语句
在多个条件当中使用Switch 更加精巧,格式如下:
switch ($i) {
case 0:
echo "输出 0";
break;
case 1:
echo "输出 1";
break;
case 2:
echo "输出 2";
break;
default:echo “其他默认输出”;
}
if ($i == 0) {
echo "输出 0";
} elseif ($i == 1) {
echo "输出 1";
} elseif ($i == 2) {
echo "输出 2";
}
PHP循环语句的介绍与应用
1、break n 循环控制语句 //也可以理解为循环中断语句,跳出循环语句
break: 跳出一层循环
break n ;跳出N条
for($a=1;$a<10;$a++)
{
if($a==5) break;
echo"循环".$a."</br>";
}
2、do…while 循环语句
do{
……
}
while(expr)
while(expr){
……
}
先执行一次循环再判断条件
先判断条件执再行一次循环
for 循环语句//for 循环是PHP中最复杂的循环结构。
for (expr1; expr2; expr3){
……}
for ($i = 1; $i <= 10; $i++) {
echo $ i;
/ /$i = 1: 无条件执行
// $i <= 10,$i++: 循环条件
}
作业、讨论题、思考题:PHP环境的配置,wamp环境的设置,练习PHP的条件语句、循环语句的用法及语法规则的应用。
课后小结:本节课主要讲解了PHP环境的配置,wamp环境的设置,介绍了PHP的数据类型及PHP各种运算及运算规则。重点介绍了PHP的条件语句、循环语句的用法及语法规则。
《ASP动态网站开发》课程教案
授课班级
15级淘宝班
课次
2
授课方式
理论课þ讨论课□实验课□习题课□其他□
课时
安排
3
授课题目(教学章、节或主题):
PHP数组、函数及Mysql 简介和创建新的数据库与数据库中的常用SQL语句
教学目的、要求(分掌握、熟悉、了解三个层次):
熟练掌握PHP数组的定义、数组的遍历、foreach的应用。
掌握创建数据库的方法及其基本语句。
掌握数据库中的常用SQL语句。
教学重点及难点: creat、select、update、insert语句的应用。
教学基本内容及方法手段
PHP数组的创建修改使用
1、创建和修改数组 / 多维数组
PHP中的数组是一个关键字或值的集合(值可以是任何一种类型,包括另一个数组)
PHP中使用array来创建一个数组:
array( key=>value , key=>value …… )
例子:
$arr = array (3,5,7,9,6);
$arr = array ("id"=>2,"title"=>3);
用方括号的语法来修改数组: $arr[] = value
$arr = array("a" => "理论", "b"=>"教程", "c" => "第二次课");
$arr['a'] = "PHP学习";
$arr['c'] = "第二讲";
介绍一下print_r()函数
$arr=array(array(2,4),array(3,5));
print_r($arr);
Array ( [0] => Array ( [0] => 2 [1] => 4 ) [1] => Array ( [0] => 3 [1] => 5 ) )
2、数组与数组的函数
使用count 函数统计数组条数 count ( $arr );
使用 is_array函数判断数组 is_array ( $arr );
另一种创建数组的函数explode explode ( "key" , value);//分解函数
$a="1986-1983-2010";
$arr=explode("-",$a);
Print_r($arr);
3、使用foreach 遍历数组
遍历数组很多种方法,可以使用 For循环,while循环,最巧妙的
一种遍历数组foreach给我们带来了跟多方便
foreach ( $arr as $key => $value ){
……
}
$arr=array(1986,1983,2010);
foreach($arr as $key =>$value)
{
echo "需要的关键字 $key 需要的值 $value <br>";
}
PHP函数和自定义函数
1、PHP函数介绍
函数就是为了解决一些常见问题实现制作好的 “模”。PHP函数分为:系统内部函数和自定义函数。
格式: func(val1,val2,…);
例子
date("Y-m-d") md5("zzhtpz")
函数的优越性:
l 控制程序设计的复杂性
l 提高软件的可靠性
l 提高软件的开发效率
l 提高软件的可维护性
l 提高程序的重用性
查看PHP中文手册,查看有关的函数
2、PHP如何自定义函数
使用 Function 来自定义一个函数:
格式:Function func_name($val){……}
函数的命名跟自定义变量一样,只能使用 _, A~Z, a~z,一个自定义函数中的变量是局部的,函数外不生效,使用global全局变量的时候,在函数外才可使用变量(不建议)。为了放置全局变量的混乱可以使用 unset($var)删除一个变量。
function ee()
{
echo"输出自定义函数";
}
ee();
function ee($val)
{
echo"输出自定义函数".$val;
}
ee(33);
3、使用自定义函数实例操作
(1)使用return 函数返回函数内部值
function ee()
{
return "输出自定义函数";
}
$a=ee();
echo $a;
(2)自定义函数值的接收和选择性接收
function ee($val)
{
return "输出自定义函数".$val;
}
$a=ee("好?");
echo $a;
function ee($val,$val2=1)
{
$a=$val+$val2;
return $a;
}
$a=ee(5);
echo $a;
function ee($val,$val2=1)
{
$a=$val+$val2;
return $a;
}
$a=ee(5,6);
echo $a;
直接接收
选择性接收
(3)function_exists() 判断函数是否存在//防止错误
if(function_exists('ee'))
{
echo "真";
}
else
{
echo "假";
}
(4)引用返回值使用&符号
Mysql 简介和创建新的数据库
1、MYSQL简介与概要
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,现在已经被Sun公司收购,支持FreeBSD、Linux、MAC、Windows等多种操作系统,与其他的大型数据库例如Oracle、DB2、SQL Server等相比功能稍弱一些。
1、可以处理拥有上千万条记录的大型数据
2、支持常见的SQL语句规范
3、可移植行高,安装简单小巧
4、良好的运行效率,有丰富信息的网络支持
5、调试、管理,优化简单(相对其他大型数据库)
2、访问MYSQL的几种途径
知识点:MYSQL默认使用的是3306端口
1、使用工具MYSQL官方的工具访问:MySQL Administrator tool
安装:步骤 下载
Backup project//备份
Restore //导入
MySQL query//浏览表和数据库
2、使用第三方工具访问:mysqlexec 、 mysql连接器
3、使用WEB方式访问:phpMyAdmin //最常见
比较:
使用客户端工具操作效率高,安全性高,使用WEB方式简单方便,不受限制。
3、介绍数据库中常用字段类型
l 整数型:TINYINT,SMALLINT,INT,BIGINT
l 小数型:FLOAT,DOUBLE,DECIMAL(M,D)
l 字符型:CHAR,VARCHAR
l 日期型:DATETIME ,DATE,TIMESTAMP
l 备注型:TINYTEXT ,TEXT ,LONGTEXT
4、创建一个简单的数据库
创建一个数据库命令:CREATE TABLE
删除一个数据库命令:DROP TABLE
修改一个字段名称:RENAME TABLE `原字段` TO `新字段` ;
删除一个字段: ALTER TABLE `表` DROP `原字段`
插入一个字段:ALTER TABLE `表` ADD `新字段` … AFTER `原字段`
CREATE TABLE `test` (
`id` int(10) NOT NULL auto_increment,
`uid` varchar(10) NOT NULL default '0',
`regdate` date NOT NULL,
`remark` text NULL,
PRIMARY KEY (`id`)
)
实例讲解:
1.将命令复制到phpmyadmin中建立表
2. 用客户端工具建立表//设计几个字段
浏览/结构/SQL/搜索、插入、导出/import/操作.
导入数据库文件
1、SELECT 查询语句和条件语句
SELECT 查询字段 FROM 表名 WHERE 条件
查询字段:可以使用通配符* 、字段名、字段别名
表名: 数据库.表名,表名
常用条件: = 等于 、<>不等于、in 包含 、 not in 不包含、 like 匹配、 BETWEEN 在范围 、 not BETWEEN 不在范围 < 、>
条件运算: and 、 or 、 ( )
2、排序,分组,指针查询,计算
分组语句:group by 字段
排序语句:order by 字段,字段 ASC / DESC
指针查询:limit 初始值,结束值
计算:
COUNT(*) 统计函数
MAX(*) 最大值函数
MIN (*) 最小值函数
AVG(*) 平均值函数
SUM(*) 累计值函数(∑)
3、Insert 插入语句
insert into 表名 (字段…,…) values(值…,…)
insert into 表名 values(值…,…)
插入时须考虑清楚字段类型避免插入后出现缺值,乱码现象
2、 Update 更新语句
UPDATE 表名 SET 字段 = 值 WHERE 条件 limit
常用条件: = 等于 、<>不等于、in 包含 、 not in 不包含、 like 匹配、 BETWEEN 在范围 、 not BETWEEN 不在范围
条件预算: and 、 or 、 ( )
5、Delete 删除语句
DELETE FROM 表名 WHERE 条件 limit
常用条件: = 等于 、<>不等于、in 包含 、 not in 不包含、 like 匹配//%、
BETWEEN 在范围 、 not BETWEEN 不在范围
条件预算: and 、 or 、 ( )
MYSQL在PHP5中的应用
1、PHP与mysql建立链接
php.ini 加载mysql组件:
extension=php_mysql.dll 前的; 去掉
extension_dir = " " 路径是否正确
PHP链接mysql函数
mysql_connect: 开启 MySQL 链接
$conn=@mysql_connect("localhost","root","") or die("链接错误");
mysql_select_db: 打开一个数据库
mysql_select_db("ww",$conn);
注意:@ 和or die 隐藏错误 和 条件显示
mysql_connect("主机", "用户名", "密码")
mysql_select_db("打开数据库",连接标识符);
如果不特别声明连接标识符,则默认为是上一次打开的连接。
2、如何去执行一个SQL语句
mysql_query (SQL语句 ,连接标识符);
说明:mysql_query用来根据连接标识符向该数据库服务器的当前数据库发送查询,如果连接标识符默认,则默认为是上一次打开的连接。
返回值:成功后返回一个结果标识符,失败时返回false。
$sql="INSERT INTO test(id,name,regdate) values('','huafan',now())";
mysql_query($sql,$conn);
3、两种查询函数array / row区别
格式:mysql_fetch_row(result);
说明:mysql_fetch_row用来查询结果的一行保存至数组,该数组下标从0开始,每一个数组元素对应一个域。通过循环,可以将查询结果全部获得。
$sql="SELECT * FROM `test`";
$query=mysql_query($sql,$conn);
$row=mysql_fetch_row($query);
print_r($row);
格式:mysql_fetch_array(result);
说明:mysql_fetch_array和mysql_fetch_row功能基本相同,只不过它除了可以用从0开始的偏移量作索引,还可以用域名作索引。
值返回下一行的所有域值,并将其保存至一个数组中,没有行时返回false。
$sql="SELECT * FROM `test`";
$query=mysql_query($sql,$conn);
$row=mysql_fetch_array($query);
echo $row['name'];
输出所有内容:
$sql="SELECT * FROM `test`";
$query=mysql_query($sql,$conn);
while($row=mysql_fetch_array($query))
{
echo $row['name']." ".$row['regdate']."<br>"."<hr>";
}
mysql_query("set names 'GBK'"); 解决中文乱码
$conn=@mysql_connect("localhost","root","") or die("链接错误");
mysql_select_db("ww",$conn);
mysql_query("set names 'GBK'");
$sql="SELECT * FROM `test`";
$query=mysql_query($sql,$conn);
while($row=mysql_fetch_array($query))
{
echo $row['name']." ".$row['regdate']."<br>"."<hr>";
}
4、 其他常用Mysql函数介绍
mysql_num_rows 用于计算查询结果中所得行的数目
echo mysql_num_rows($query);
mysql_insert_id 传回最后一次使用 INSERT 指令的ID。
mysql_tablename 取得数据库名称
mysql_error 返回错误信息
mysql_close 关闭 MySQL 链接
学习制作PHP+MYSQL留言板
1、设计一个完整程序的流程
2、HTML部分表单标签的使用
<form action="" method="GET" >
<input type="text" size=10 name="user"/>
<input type="text" size=20 name="title"/>
<textarea name="content"></textarea>
<input type="submit" name="submit"/>
</form>
3、PHP里的页面相互调用
require() 与 require_once()
通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入require 所指定引入的文件,如果出现错误是致命的。
include() 与 include_once()
可以放在 PHP 程序的任何一个位置,PHP 程序在执行到时,才会先读入
include 所指定引入的文件,如果出现错误将会提示。
require('con.php') ;
include('con.php') ;
3、 PHP接收参数的几种方式
PHP5在默认的情况下接收参数是需要使用
$_GET['value'];
$_POST['value'];
还可以在PHP.ini 文件中的
将register_globals = Off
改register_globals = on
可以直接使用,$value的值
作业、讨论题、思考题:制作PHP+MYSQL留言板
课后小结: 本节课讲解了PHP数组的创建修改,用foreach遍历数组,PHP函数的应用和如何自定义函数,Mysql的简介和创建新的数据库。创建一个数据库命令:CREATE TABLE,删除一个数据库命令:DROP TABLE,修改一个字段名称:RENAME TABLE `原字段` TO `新字段` ;删除一个字段: ALTER TABLE `表` DROP `原字段`,插入一个字段:ALTER TABLE `表` ADD `新字段` … AFTER `原字段。
介绍了SELECT 查询语句和条件语句,排序,分组,指针查询,计算;Insert 插入语句,Update 更新语句 ,Delete 删除语句,PHP与mysql建立链接:$conn=@mysql_connect("localhost","root","") or die("链接错误");,如何去执行一个SQL语句:mysql_query (SQL语句 ,连接标识符);,两种查询函数array / row区别, 其他常用Mysql函数介绍如mysql_num_rows 用于计算查询结果中所得行的数目echo mysql_num_rows($query);mysql_insert_id 传回最后一次使用 INSERT 指令的ID。mysql_tablename 取得数据库名称,mysql_error返回错误信息,mysql_close 关闭 MySQL 链接。
《ASP动态网站开发》课程教案
授课班级
15级淘宝班
课次
3
授课方式
理论课þ讨论课□实验课□习题课□其他□
课时
安排
3
授课题目(教学章、节或主题):
制作PHP+MYSQL留言板
教学目的、要求(分掌握、熟悉、了解三个层次):
了解设计一个完整程序的流程。
掌握HTML部分表单标签的使用与PHP里的页面相互调用
掌握PHP接收参数的几种方式及提交表单Javascript验证
教学重点及难点: PHP接收参数的几种方式及提交表单Javascript验证。
教学基本内容及方法手段
实例操作我们的留言板
创建表:
CREATE TABLE `message` (
`id` tinyint(1) NOT NULL auto_increment,
`user` varchar(25) NOT NULL,
`title` varchar(50) NOT NULL,
`content` tinytext NOT NULL,
`lastdate` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=1
con.php //数据库配置
$conn=@mysql_connect("localhost","root","")or die("连接失败");
mysql_select_db("liuyanban",$conn);
mysql_query("set names 'GBK'");
add.php //操作文件
include("conn.php");
if($_POST['submit'])
{
$sql="insert into message(id,user,title,content,lastdate)".
"values('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
mysql_query( $sql);
echo"发表成功";
}
?>
<form action="add.php" method="post">
用户: <input type="text" size="10" name="user" /><br>
标题: <input type="text" name="title" /><br>
内容: <textarea name="content" > </textarea><br>
<input type="submit" name="submit" value="发布留言"/>
</form>
list.php //列表文件
<?php
include("conn.php");
?>
<table width=500 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
<?php
$sql="select * from message";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){
?>
<tr bgcolor="#eff3ff">
<td>标题:<?=$row['title']?>用户:<?=$row['user']?> </td>
</tr>
<tr bgColor="#ffffff">
<td>内容:<?=$row['content']?></td>
</tr>
<?
}
?>
</table>
Head文件
<head>
<b><a href="add.php">添加留言</a>| <a href="list.php">浏览留言</a>
|<a href="login.php">登录</a></b>
5、提交表单Javascript验证
6、str_replace替换函数
str_replace( 被替换的值,替换的值,被替换的内容);
$content="asfdasf
safasfasd
asfasf
afasfasf afasfas";
echo $content;
输出:
asfdasf safasfasd asfasf afasfasf afasfas
如果:
$content="asfdasf
safasfasd
asfasf
afasfasf afasfas";
echo htmtocode($content);
function htmtocode($content)
{
$content=str_replace("\n","<br>",str_replace(""," ",$content));
return $content;
}
7、htmlspecialchars 格式化html
主要功能是将HTML格式化,防止在输出html时被浏览器执行
8、md5加密函数
md5( 加密对象 )
9、COOKIE 的使用和登陆
作业、讨论题、思考题: 设计一个留言板
课后小结:本节介绍了设计一个完整程序的流程,HTML部分表单标签的使用,PHP里的页面相互调用,接收参数的几种方式,提交表单Javascript验证,str_replace替换函数。
讲解了htmlspecialchars 格式化html,md5加密函数与COOKIE 的使用和登陆。
《ASP动态网站开发》课程教案
授课班级
15级淘宝班
课次
4
授课方式
理论课þ讨论课□实验课□习题课□其他□
课时
安排
3
授课题目(教学章、节或主题):
PHP+MYSQL分页原理与PHP上传原理及应用及文件操作
教学目的、要求(分掌握、熟悉、了解三个层次):
了解SQL语句中的limit用法与学习分页的一种公式。
掌握FORM标签enctype属性与$_FILES 系统函数
掌握move_uploaded_file函数与is_uploaded_file 函数
了解PHP部分文件操作函数与unlink() rmdir() 删除函数
教学重点及难点: 分页公式与文件上传原理
教学基本内容及方法手段
1、SQL语句中的limit用法
SELECT * FROM table …… limit 开始位置 , 操作条数
SELECT * FROM table …… limit 0 , 20
SELECT * FROM table …… limit 10 , 20
2、学习分页的一种公式
(1)分页原理
所谓分页显示,也就是讲数据库中的结果集,一段一段显示出来
(2)需要的条件
怎么分段,当前在第几段 (每页有几条,当前再第几页)
前10条记录:select * from table limit 0,10
第11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10
(3)得到公式
(当前页数 - 1 )X 每页条数 , 每页条数
Select * from table limit ($Page- 1) * $PageSize, $PageSize
3、parse_url()解析URL函数
parse_url() 是讲URL解析成有固定键值的数组的函数
$ua=parse_url("http://username:password@hostname/path?arg=value#anchor");
print_r($ua);
结果:
Array
(
[scheme] => http //协议
[host] => hostname //域名
[user] => username //用户名
[pass] => password //密码
[path] => /path //路径
[query] => arg=value //取得的值
[fragment] => anchor //
)
4、$_SERVER["REQUEST_URI"]函数 /
展开阅读全文