《PHP网站开发》学生实验报告
一、基本信息
实验(项目名称
PHP互动网页
课程名称
网站开发(PHP)
学生层次
本科
学生专业
计算机科学与技术
学生年级
2015级
学生班级
学生学号
学生姓名
完成日期
2017年11月19日
指导教师
二、实验目的
(1) 掌握使用PHP接收表单数据的方法;
(2) 掌握使用PHP获取URL参数的方法;
(3) 掌握在网页中实现页面跳转的方法;
(4) 掌握会话原理和实现会话的方法。
三、 实验步骤(及实验数据)
1. 制作登录表单。本次实验用于登录的用户信息保存在文本文件中。在sy文件夹下新建一个1.text的文件,在其中保存用户信息,有用户名,密码两个信息,中间用“|”个隔开,例如,输入几行数据如下:
Moxue|123456
Mofeng|123456
2. 新建login.php文件。用于密码和用户名的输入;
3. 在login.php中,利用form表单布局,用get方法进行页面之间的传值。具体代码如下:
<form action="main.php" method="get">
<table border="0" align="center">
            <tr><td align="center">用户名</td><td><input name="username" type="text"></td></tr>
            <tr><td align="center">密码</td><td><input name="password" type="password" size="21"></td></tr>
            <tr><td clospan="2" align="center">
                    <input type="submit" name="submit" value="提交">
                <input type="reset" name="reset" value="重置"></td></tr>
         
</table>
</form>
4. 该页面的运行图如下图1。
图 1
5.   新建main.php文件,用于判断密码的正确性,并做为登录后的第一个页面;
6. 在main文件中,先用get方法接收从上个文件中传递过来的username和passwd。
7. 该页面的运行效果图,如下图2.
图 2
8. 再创建loadinfo()函数,用于读取文件1.text中的数据。
9. 在lodinfo函数中,创建建数组user_array()用于存储从文件中读取出来的值。
10. 创建句柄用于操作1.text文件。并利用fopen函数以读的方式打开。
11. 利用while循环读取文件,并将文件的数据储存到数据中,直到循环结束。关闭句柄,返回数组。
12. 利用in_array函数和user_array()数组判断密码是否正确。如果不正确,则重新加载登录页面。代码如下:
if(!in_array(array($username,$password),$user_array))
        {
            echo "<script>alert('用户名或密码错误!');location='login.php';</script>";
        }
13. 如果密码正确,则利用foreach函数遍历数组,并将每次的值赋值给$value,并利用list给$value数组的每个键值赋键名。代码如下:
foreach($user_array AS $value)
            {
                list($user,$pwd)=$value;
14. 利用判断$user是否等于$username和$pwd是否等于$password,来判断该用户是否登录了
if($user==$username&&$pwd==$password)         
15. 如果登录了该页面,则利用session将用户名和密码传到其他页面。代码如下:
$_SESSION['username']=$username;
$_SESSION['password']=$password;
16. 利用$opionts接收从QA.php文件中session传递过来的值。,如果有则显示上次答题所得的分数。并显示继续答题按钮,当按下按钮是课跳转到答题页面。代码如下:
if($points=@$_SESSION['QA_points'])
                    {
                        echo "你刚刚答题得到了".$points."分";
                        echo "<input type='button' value='继续答题' onclick=window.location='QA.php'>";   
                    }   
17. 如果未接受到则显示“你跟还没有答题记录”,并显示答题按钮,如果按下按钮则将页面跳转到答题页面。代码如下:
else
                    {
                        echo"你还没有答题记录<br/>";
                        echo "<input type='button' value='开始答题' onclick=window.location='QA.php'>";   
                    }
18. 创建QA.php文件夹用于答题。
19. 接收session中的会话变量,代码如下:
$username=@$_SESSION['username'];
    $password=@$_SESSION['password'];
20. 判断是否登录了,如果已登录则显示题目,代码如下:
if($username)
    {
        echo $username.",请回答以下题目: <br/>";
    ?>
        <form method="post" action="">
21. 利用post方法接收从表单中传递过来的答案,,并用变量i来记录正确题目数量。代码如下:
if(isset($_POST['submit']))
        {
            $q1=@$_POST['q1'];
            $q2=@$_POST['q2'];
            $q3=@$_POST['q3'];
            $q4=@$_POST['q4'];
            $q5=@$_POST['q5'];
            $i=0;
            if($q1=="1")
                $i++;
            if($q2=="3")
                $i++;
            if($q3=="2")
                $i++;
            if($q4=="1")
                $i++;
            if($q5=="2")
                $i++;
            echo $i;
22. 再创建会话变量@_SESSION[QA_points]来记录分数。代码如下:
    $_SESSION['QA_points']=$i*20;
23. 一份完整的网页代码和效果图利用script语句来显示本次答题的分数。并判断是否继续答题。代码如下:
    echo "<script>alert('您一共答对".$i."道题,得到".($i*20)."分');";
            echo "if(confirm('返回继续答题?'))";
            echo " location.href='QA.php';";
            echo "else;";
            echo "location.href='main.php?username=$username&password=$password'; ";
            echo "</script>";
    }        }
24. 该页面的运行结果如图3,图4。
图 3
图 4
四、实验结果分析与总结
这次实验的主页内容是(1)从表单中接收数据;(2)PHP中获得URL的方法;(3)页面的跳转;(4)会话原理和会话的实现方法。
第一点中,从表单中接收数据的方法一般是post方法和get方法。一般post方法用于本页面中的数据传递。Get方法一般用于两个页面之间的值的传递。
Php中操作文件的方法一般是通过句柄来实现对文件的操作。在利用句柄操作文件的时候要注意目标文件的位置和打开文件方式。并且在操作结束时应关闭句柄。
页面的跳转可以有多种方法,经常员工的有表单中的action,javascript语句中的location.href,还有PHP中的window.location语句。
会话变量可用于值在各个页面之间的传递。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。