实训一 PHP语法基础
一、实训目的
- 掌握PHP数据类型知识。
- 掌握PHP变量与常量的知识和运用方法。
- 掌握PHP选择结构流程控制的知识及应用。
- 掌握PHP循环结构流程控制的知识及应用。
二、实训工具或设备
主流 PC 机一台(要求安装 windows 操作系统),PHP运行环境、MySQL数据库软件,最好选择PHPstudy和PHPstorm软件。
三、实训原理 - PHP基本语法
变量赋值就是为变量赋予具体的数据值。变量赋值有3种方式,分别是直接赋值、传值赋值和引用赋值。
- 直接赋值
直接赋值就是使用赋值运算符“=”直接将数据值赋给某变量。 - 传值赋值
传值赋值就是使用赋值运算符“=”将一个变量的值赋给另一个变量。注意的是,此时修改一个变量的值不会影响到另一个变量。 - 引用赋值
引用赋值也称传地址赋值,就是使用赋值运算符“=”将一个变量的地址传递给另一个变量。即两个变量共同指向同一个内存地址,使用的是同一个值。
2.if条件控制语句
if条件控制语句通过判断条件表达式的不同取值执行相应程序块,有三种编写方式,语法格式分别如下:
if(条件表达式){程序块} //如果条件成立,执行程序块
if(条件表达式){程序块1} else {程序块2} //如果条件成立,执行程序块1,否则,执行程序块2
if(条件表达式1){程序块1}else if(条件表达式2){程序块2} else{程序块3}//可以判断多个条件
3.switch多分支语句
switch 多分支语句的功能是将条件表达式的值与case子句的值逐一进行比较,如有匹配,则执行该case子句对应的程序块,直到遇到break跳转语句时才跳出switch语句;如果没有break语句,switch将执行这个case以下所有case中的代码,直到遇到break语句,语法格式如下:
switch( 条件表达式) {
case 值1:
程序块1;
break;
case 值2:
程序块2;
break;
…
default:
程序块n;
break;
}
- while循环语句
while循环语句属于前测试型循环语句,即先判断后执行。执行顺序是先判断表达式当条件为真时反复执行循环程序块;当条件为假时,跳出循环,继续执行循环后面的语句。while循环语句流程图如图4-7所示,语法格式如下:
while ( 条件表达式 ) { //先判断条件,当条件满足时执行语句块,否则不执行
程序块;
}
5.do…while循环语句
do…while循环语句属于后测试型循环语句,即先执行后判断。执行顺序是执行一次循环程序块,再判断表达式,当条件为真时反复执行循环程序块;当条件为假时,跳出循环,继续执行循环后面的语句。do…while循环语句流程图如图4-9所示,语法格式如下:
do {
程序块;
}while ( 条件表达式 )
6.for循环语句
当不知道所需重复循环的次数时,使用while或do…while语句,如果知道循环时,可以使用for语句,语法格式如下:
for ( expr1; expr2 ; expr3){
statement;
}
7.break跳转语句
break语句用于终止并跳出当前的循环,可以用于switch、while、do…while和for控制语句。
8.continue跳转语句
contiue语句的作用是终止本次循环,跳转到循环条件判断处,继续进入下一轮循环判断。
四、实训内容
任务1:预定义常量和自定义常量应用
本任务通过调用并输出系统预定义常量,定义并使用自定义常量,来说明预定义常量和自定义常量的应用方法。浏览页面效果如下图所示。
任务2 九九乘法表实现
任务3 封7过游戏
五、实训步骤
任务1:预定义常量和自定义常量的应用
本任务通过调用并输出系统预定义常量,定义并使用自定义常量,来说明预定义常量和自定义常量的应用方法
【实验步骤】
步骤1;创建.php文件,编写PHP代码如下:
<?php
echo'输出系统预定义常量:';
echo'<br/>当前操作系统为:'.PHP_OS;
echo'<br/>当前PHP版本为:'.PHP_VERSION;
echo'<br/>当前文件路径:'.__FILE__;
echo'<br/>输出自定义变量:';
define("PI",3.14159);
$r=20;
$c=PI*$r*2;
echo"<br/>圆的半径=",$r;
echo"<br/>圆的周长=",$c;
?>
步骤2:浏览页面效果图:任务2:九九乘法表
本任务使用PHP循环结构和表格实现
步骤:
步骤1 创建table.php文件,代码如下:
<?php
//九九乘法表
echo"<table border='1px'>";
for($i=1;$i<=9;$i++){
echo "<tr>";
for($j=1;$j<=$i;$j++){
$k=$j*$i;
echo"<td bgcolor='#ff7f50'>$j*$i=$k</td>";
}
echo"<tr>";
}
echo"</table>";
步骤二 浏览页面效果,显示九九乘法表
步骤三 加入相应的CSS样式。
任务3:逢七过游戏
本任务使用for()循环和if,else选择语句来实现
步骤:
步骤一 创建games.php文件,代码如下:
<?php
/**
* Created by PhpStorm.
* User: admin
* Date: 2019/10/26
* Time: 20:25
*/echo "<table border='1px'>";
$j=1;
//echo "<tr> </tr>";
for($i=1;$i<=100;$i++){
if($i%7==0||$i%10==7||($i-($i%10))/7==10){
echo "<td bgcolor='#deb887'>过 </td>";
}else{
echo"<td>$i</td>";
}
if($j%10==0)
echo"<tr> ";
$j++;
}
echo "</table>";
步骤二 浏览页面效果,显示逢七过游戏。
步骤三 加入相应的CSS样式。
六、实训注意事项
1.while语句和do while语句的区别。
2.switch语句中break必不可少。
七、思考题
Switch语句中少break以后会出现什么情况。
实训二 PHP数组
一、实训目的
- 掌握PHP数据的创建与输出。
- 掌握PHP数据元素的赋值及应用。
二、实训工具或设备
主流 PC 机一台(要求安装 windows 操作系统),PHP运行环境、MySQL数据库软件,最好选择PHPstudy和PHPstorm软件。
三、实训原理
1、创建数组
数字索引数组和关联数组的区别仅在于“键名”的取值不同,两者的创建方法相同,有两种方法,语法格式如下:
$数组名[键名1]=元素值1; //方法一
$数组名[键名2]=元素值2;
$数组名 = array(“键名1”=>“元素值1”,“键名2”=>“元素值2”,… ); //方法二
2、遍历数组
遍历数组是指依序访问数组中的每个元素,可以使用foreach语句、for语句遍历数组元素。 - foreach语句遍历数组
foreach( $array as k e y = > key=> key=>value){ //方法1 访问数组元素键和值
echo “ k e y − − > key --> key−−>value”;
}
foreach( $array as $value) { //方法2 访问数组元素值
echo KaTeX parse error: Expected 'EOF', got '}' at position 8: value; }̲ 参数说明:array为数组名称, k e y 为数组键名, key为数组键名, key为数组键名,value为键名对应的值。foreach语句可以遍历数字索引数组和关联数组。 - for语句遍历数组
for语句只能用于数字索引数组的遍历。先使用count()函数计算数组元素个数作为for循环执行的条件,才能完成数组的遍历。语法格式如下:
for($i=0; i < c o u n t ( i < count( i<count(array) ; $i++){
echo a r r a y [ array[ array[i] . “
”;
}
参数说明: a r r a y 为数组名称,函数 c o u n t ( array为数组名称,函数count( array为数组名称,函数count(array)用于计算数组元素个数
由于关联数组的关键字不是数字,因此无法使用for循环语句进行遍历。
四、实训内容
利用二维数组定义、遍历实现学生信息表
五、实训步骤
任务:利用二维数组定义遍历实现学生信息表
步骤1 创建php文件,代码如下:
步骤2 浏览页面效果,显示数组遍历结果。
步骤3 加入相应的CSS样式。
六、实训注意事项
1.实验任务由个人独立完成。
2.二维数组的遍历过程中加入表格时怎样加入相应的CSS样式。
七、思考题
怎样用数组实现随机抽奖程序?
实训三 网站注册功能实现
一、实训目的
- 掌握PHP连接MySQL的编程方法。
- 掌握PHP与MySQL开发简单网站注册功能。
二、实训工具或设备
主流 PC 机一台(要求安装 windows 操作系统),PHP运行环境、MySQL数据库软件,最好选择PHPstudy和PHPstorm软件。
三、实训原理
1.连接MySQL服务器
mysqli扩展提供了mysqli_connect()函数实现与MySQL数据库的连接,语法如下所示:
2.选择MySQL数据库
mysqli扩展还提供了mysqli_select_db()函数用来选择MySQL数据库,语法如下所示:
3.执行SQL语句
要对数据库中的表进行操作,通常使用mysqli_query()函数执行SQL语句,语法如下所示:
4.从结果集中获取一行作为枚举数组
mysqli_fetch_row()函数从结果集中取得一行作为枚举数组,语法如下所示:
5.从结果集中获取一行作为关联数组
mysqli_fetch_assoc()函数从结果集中取得一行作为关联数组,语法如下所示:
6.将结果集返回到数组中
mysqli_fetch_array()函数将结果集返回到数组中,语法如下所示:
7.获取查询结果集中的记录数
使用mysqli_num_rows()函数,可以获取由select语句查询到的结果集中行的数目语法如下所示:
8.从结果集中获取一行作为对象
mysqli_fetch_object()函数返回的是一个对象而不是数组,语法如下所示:
9.释放内存
mysqli_free_result()函数用于释放内存,语法如下所示:
10.关闭连接
使用mysqli_close()函数断开与MySQL服务器的连接,语法如下所示:
11.数据库的插入语句
向数据表中添加数据可以通过insert命令来实现,语法如下所示:
注意:值列表中的值应与字段列表中字段的个数和顺序相对应,值列表中值的数据类型必须与相应字段的数据类型保持一致。
四、实训内容
本任务综合应用PHP与MySQL数据库编程知识,开发党史学习教育网站注册功能,包括数据库创建,系统注册表单页面开发(register.php),注册处理页开发(doRegister.php)。
五、实训步骤
实训内容:创建数据库创建user表,制作党史学习教育网站注册界面,连接数据库,实现注册功能。
实训过程:
步骤1:使用PHPMyAdmain创建数据库,创建user表,表结构如下图所示:
步骤2:创建一个党史学习教育网站注册的静态页面register.php,页面中使用form表单和JavaScript代码判断注册的内容不能为空。
核心代码如下:
<body>
<div class="box">
<div class="top">
党史学习教育
</div>
<form method="post" name="form1" action="doRegister.php">
<input type="text" name="user" class="text" placeholder="用户名" >
<input type="password" name="pwd1" class="text" placeholder="密码">
<input type="password" name="pwd2" class="text" placeholder="确认密码">
<input type="text" name="tel" class="text" placeholder="手机号">
<input type="button" value="注册" class="submit" onclick="check()">
</form>
</div>
<script type="text/javascript">
function check(){
var user=document.getElementsByName("user")[0].value;
if(!user){
alert("请输入用户名");
return false;
}
var pwd1=document.getElementsByName("pwd1")[0].value;
if(!pwd1){
alert("请输入密码");
return false;
}
var pwd2=document.getElementsByName("pwd2")[0].value;
if(!pwd2){
alert("请输入确认密码");
return false;
}
if(pwd1!=pwd2){
alert("两次输入的密码不一致");
return false;
}
var tel=document.getElementsByName("tel")[0].value;
if(!tel){
alert("请输入手机号");
return false;
}
if(tel.length!=11){
alert("请输入11位的手机号");
return false;
}
form1.submit();
}
</script>
</body>
步骤3:创建一个实现注册功能的页面:doRegister.php。接收来自静态页面收集的数据并把收集到的数据插入到数据库的user表中。
核心代码如下:
<?php
//连接数据库
$conn=mysqli_connect("localhost","root","root","demo");
//连接错误时的提示
if(mysqli_connect_errno()){
exit(mysqli_connect_error());
}
//设置默认字符编码
mysqli_set_charset($conn,'utf8');
//执行插入语句
$result=mysqli_query($conn,"insert into user(user_name,user_pwd,user_tel) values('".$_POST["user"]."','".$_POST["pwd1"]."','".$_POST["tel"]."')");
if($result==true){
echo "<script>alert('用户注册成功')</script>";
}else{
echo "<script>alert('用户注册失败')</script>";
}
注册页面实现效果图
注册和登录最大的不同就在于登录是向数据库中直接查询,而注册是向数据库中插入数据。
六、实训注意事项
1.实验任务由个人独立完成;
2.实验作业在课堂上当场由老师检查并登记分数;
七、思考题
Mysqli_query()函数的返回值都有哪些?怎样判断注册成功?
实训四 网站登录功能实现
一、实训目的
- 掌握PHP连接MySQL的编程方法。
- 掌握PHP与MySQL开发简单网站后台功能。
- 掌握使用cookie技术实现免登录和记住密码的功能。
二、实训工具或设备
主流 PC 机一台(要求安装 windows 操作系统),PHP运行环境、MySQL数据库软件,最好选择PHPstudy和PHPstorm软件。
三、实训原理
1、创建Cookie
创建Cookie应用的是setcookie()函数。
2、读取Cookie
在PHP中应用全局数组$_COOKIE[]读取客户端Cookie的值。
3、Cookie的工作原理
4、删除Cookie
使用setcookie()函数删除Cookie
思考:如果不设置Cookie的有效期,那Cookie的有效期是多长时间呢?(会话Cookie)
会话Cookie:浏览器关闭就消失
永久Cookie:存放在硬盘上,总是可用。
5、连接MySQL数据库
mysqli扩展提供了mysqli_connect()函数实现与MySQL数据库的连接,语法如下所示:
6、执行SQL语句(登录就是执行查询语句)
连接到MySQL服务器,选择了要操作的数据库之后,接下来开始执行SQL语句。mysql_query( )函数用于执行SQL语句。语法格式如下:
mysqli_query(“SQL语句” [,
c
o
n
n
]
)
;
其中,参数
S
Q
L
语句是要执行的
S
Q
L
语句,可以是添加、修改、删除和查询语句;参数
conn]); 其中,参数SQL语句是要执行的SQL语句,可以是添加、修改、删除和查询语句; 参数
conn]);其中,参数SQL语句是要执行的SQL语句,可以是添加、修改、删除和查询语句;参数conn是MySQL服务器的连接标识。
四、实训内容
本任务综合应用PHP与MySQL数据库编程知识,开发党史学习教育网站登录功能,包括数据库创建,网站登录表单页面开发,登录处理页开发,以及记住密码和免登录功能实现。
五、实训步骤
实训内容:制作用户登录静态页面(login.php)并做非空判断,连接数据库,实现登录页面(doLogin.php),实现记住密码功能:(1)添加记住密码界面;(2)判断是否选中记住密码选项;(3)若选中,能获取到Cookie变量,用户名和密码显示在文本框中;(4)若没选中,重新输入用户名和密码。
实训过程:步骤一 制作用户登录静态页面(login.php)并做非空判断,代码如下:
<body>
<div class="box">
<div class="top">
党史学习教育
</div>
<form method="post" name="form1" action="doLogin.php">
<input type="text" name="user" class="text" placeholder="用户名" >
<input type="password" name="pwd" class="text" placeholder="密码">
<input type="button" value="登录" class="submit" onclick="check()">
</form>
<div class="bottom">
没有账户?<a href="register.php" class="register">注册</a>
</div>
</div>
<script type="text/javascript">
function check(){
var user=document.getElementsByName("user")[0].value;
if(!user){
alert("请输入用户名");
return false;
}
var pwd1=document.getElementsByName("pwd")[0].value;
if(!pwd1){
alert("请输入密码");
return false;
}
form1.submit();
}
</script>
步骤二 连接数据库,实现登录页面(doLogin.php),核心代码如下:
//连接数据库
c
o
n
n
=
m
y
s
q
l
i
c
o
n
n
e
c
t
(
"
l
o
c
a
l
h
o
s
t
"
,
"
r
o
o
t
"
,
"
r
o
o
t
"
,
"
d
e
m
o
"
)
;
/
/
连接错误时的提示
i
f
(
m
y
s
q
l
i
c
o
n
n
e
c
t
e
r
r
n
o
(
)
)
e
x
i
t
(
m
y
s
q
l
i
c
o
n
n
e
c
t
e
r
r
o
r
(
)
)
;
/
/
设置默认字符编码
m
y
s
q
l
i
s
e
t
c
h
a
r
s
e
t
(
conn=mysqli_connect("localhost","root","root","demo"); //连接错误时的提示 if(mysqli_connect_errno()){ exit(mysqli_connect_error()); } //设置默认字符编码 mysqli_set_charset(
conn=mysqliconnect("localhost","root","root","demo");//连接错误时的提示if(mysqliconnecterrno())exit(mysqliconnecterror());//设置默认字符编码mysqlisetcharset(conn,‘utf8’);
//执行查询语句
r
e
s
u
l
t
=
m
y
s
q
l
i
q
u
e
r
y
(
result=mysqli_query(
result=mysqliquery(conn,"select from user where user_name=‘“.
P
O
S
T
[
"
u
s
e
r
"
]
.
"
′
a
n
d
u
s
e
r
p
w
d
=
′
"
.
_POST["user"]."' and user_pwd='".
POST["user"]."′anduserpwd=′"._POST[“pwd”].”’“);
if(mysqli_num_rows(
r
e
s
u
l
t
)
>
0
)
e
c
h
o
"
登录成功
"
;
e
l
s
e
e
c
h
o
"
登录失败
"
;
步骤三利用
C
o
o
k
i
e
技术实现记住密码功能,核心代码如下:
1.
l
o
g
i
n
.
p
h
p
页面中添加如下代码:
v
a
l
u
e
=
"
<
?
p
h
p
e
c
h
o
e
m
p
t
y
(
result)>0){ echo "登录成功"; }else{ echo "登录失败"; } 步骤三 利用Cookie技术实现记住密码功能,核心代码如下: 1.login.php页面中添加如下代码: value="<?php echo empty(
result)>0)echo"登录成功";elseecho"登录失败";步骤三利用Cookie技术实现记住密码功能,核心代码如下:1.login.php页面中添加如下代码:value="<?phpechoempty(_COOKIE[“user”])?”“:
C
O
O
K
I
E
[
"
u
s
e
r
"
]
;
?
>
"
v
a
l
u
e
=
"
<
?
p
h
p
e
c
h
o
e
m
p
t
y
(
_COOKIE["user"];?>" value="<?php echo empty(
COOKIE["user"];?>"value="<?phpechoempty(_COOKIE[“pwd”])?”“😒_COOKIE[“pwd”]?>”
2.doLogin.php页面中添加如下代码:
//判断是否选中记住密码
e
x
p
i
r
e
=
e
m
p
t
y
(
expire=empty(
expire=empty(_POST[“expire”])?-1:intval(
P
O
S
T
[
"
e
x
p
i
r
e
"
]
)
;
/
/
创建
c
o
o
k
i
e
,有效期
7
天
s
e
t
c
o
o
k
i
e
(
"
u
s
e
r
"
,
_POST["expire"]); //创建cookie,有效期7天 setcookie("user",
POST["expire"]);//创建cookie,有效期7天setcookie("user",_POST[“user”],time()+360024*
e
x
p
i
r
e
)
;
s
e
t
c
o
o
k
i
e
(
"
p
w
d
"
,
expire); setcookie("pwd",
expire);setcookie("pwd",_POST[“pwd”],time()+360024$expire);
3.记住密码页面实现效果图,如下图所示:
步骤四 利用Cookie技术实现7天免登录功能,核心代码如下:
7天免登录功能与实现记住密码功能类似,具体区别如下:
1.login.php页面中删除如下代码:
value=“<?php echo empty($_COOKIE["user"])?"":$_COOKIE["user"];?>”
value=“<?php echo empty($_COOKIE["pwd"])?"":$_COOKIE["pwd"]?>”
2.login.php页面中添加如下代码:
发表评论 取消回复