实训一 PHP语法基础

一、实训目的

  1. 掌握PHP数据类型知识。
  2. 掌握PHP变量与常量的知识和运用方法。
  3. 掌握PHP选择结构流程控制的知识及应用。
  4. 掌握PHP循环结构流程控制的知识及应用。
    二、实训工具或设备
    主流 PC 机一台(要求安装 windows 操作系统),PHP运行环境、MySQL数据库软件,最好选择PHPstudy和PHPstorm软件。
    三、实训原理
  5. PHP基本语法
    变量赋值就是为变量赋予具体的数据值。变量赋值有3种方式,分别是直接赋值、传值赋值和引用赋值。
  1. 直接赋值
    直接赋值就是使用赋值运算符“=”直接将数据值赋给某变量。
  2. 传值赋值
    传值赋值就是使用赋值运算符“=”将一个变量的值赋给另一个变量。注意的是,此时修改一个变量的值不会影响到另一个变量。
  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;
    }
  1. 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数组

一、实训目的

  1. 掌握PHP数据的创建与输出。
  2. 掌握PHP数据元素的赋值及应用。
    二、实训工具或设备
    主流 PC 机一台(要求安装 windows 操作系统),PHP运行环境、MySQL数据库软件,最好选择PHPstudy和PHPstorm软件。
    三、实训原理
    1、创建数组
    数字索引数组和关联数组的区别仅在于“键名”的取值不同,两者的创建方法相同,有两种方法,语法格式如下:
    $数组名[键名1]=元素值1; //方法一
    $数组名[键名2]=元素值2;
    $数组名 = array(“键名1”=>“元素值1”,“键名2”=>“元素值2”,… ); //方法二
    2、遍历数组
    遍历数组是指依序访问数组中的每个元素,可以使用foreach语句、for语句遍历数组元素。
  3. 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语句可以遍历数字索引数组和关联数组。
  4. 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样式。
七、思考题
怎样用数组实现随机抽奖程序?

实训三 网站注册功能实现

一、实训目的

  1. 掌握PHP连接MySQL的编程方法。
  2. 掌握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()函数的返回值都有哪些?怎样判断注册成功?

实训四 网站登录功能实现

一、实训目的

  1. 掌握PHP连接MySQL的编程方法。
  2. 掌握PHP与MySQL开发简单网站后台功能。
  3. 掌握使用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,有效期7setcookie("user",_POST[“user”],time()+3600
24* 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页面中添加如下代码:

<?php if(!empty($_COOKIE["user"])){ echo "欢迎你:".$_COOKIE["user"]; }else{ echo <<

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部