制作一个智能问答系统,系统根据存储于文本文件中的用户信息判断用户是否是合法登录。用户登录后可以进行智力问答,回答完后,系统会计算其所得分数。

目录

(1)制作登陆表单

 登陆页面的运行结果 :

(2)制作主页面

主页面的运行结果 :

(3)制作问答页面

问答页面的运行结果 :


(1)制作登陆表单

先建立一个info.txt的文本文件在其中保存用户的信息,有用户名、密码两个信息,中间用“|”隔开,如输入以下几行数据:

user1|123456
user2|654321
user3|111111

新建login.php文件(用户登录页面),输入以下代码:

<style type="text/css">
table
{
	margin:0 auto;
}
td
{
    text-align:center;
}
</style>
</head>
<body>
<form action="main.php" method="get">
<table border="0">
	<tr>
		<td>用户名<input name="username"type="text"></td>
	</tr>
	<tr>
		<td>密码<input name="password"type="password"></td>
	</tr>
	<tr>
		<td colspan="2">
            <input type="submit"name="Submit"value="登录">
            <input type="reset"name="Submit2"value="重置">
		</td>
	</tr>
</table>
</form>
</body>
</html>

 登陆页面的运行结果 :

运行login.php文件,结果如下图所示,需要输入正确的用户名和密码:

 


(2)制作主页面

新建main.php文件(主页面),输入以下代码:

<?php
session_start();
$username=@$_GET['username'];
$password=@$_GET['password'];

function loadinfo()
{
    $user_array=array();
    $filename='info.txt';
    $fp=fopen($filename,"r");
    $i=0;
    while($line=fgets($fp,1024))
    {
        list($user,$pwd)=explode('|',$line);
        $user=trim($user);
        $pwd=trim($pwd);
        $user_array[$i]=array($user,$pwd);
        $i++;
    }
    fclose($fp);
return$user_array;
}
$user_array=loadinfo();
if($username)
{
    if(!in_array(array($username,$password),$user_array))
        echo"<script>alert('用户名或密码错误!');location='login.php';</script>";
    else
    {
        foreach($user_array AS $value)
        {
            list($user,$pwd)=$value;
            if($user==$username&&$pwd==$password)
            {
                $_SESSION['username']=$username;
                $_SESSION['password']=$password;
                echo"<div>您的用户名为:".$user."</div>";
                echo"<br/>";
                if($points=@$_SESSION['QA_points'])
                {
                    echo"您刚刚答题得到了".$points."分<br/>";
                    echo"<input type='button'value='继续答题'
                                  onclick=window.location='QA.php'>";
                }
                else
                {
                    echo"您还没有答题记录<br/>";
                    echo"<input type='button'value='开始答题'
                                  onclick=window.location='QA.php'>";

                }
            }
        }
    }
}
else
    echo"您尚未登录,无权访问本页";
?>

主页面的运行结果 :

用户在登陆成功后才能进入主页面,例如,使用"user1”登陆后的主页面如下图所示。单击【开始答题】按钮转至问答页面。

 


(3)制作问答页面

新建QA.php文件(答题页面),输入以下代码:

<?php
session_start();
$username=@$_SESSION['username'];
$password=@$_SESSION['password'];
if($username)
{
    echo $username.",请回答以下题目: <br/>";
    ?>
    <form method="post" action="">
    <div>
        1.农夫有17只羊,除了9只以外都病死了,农夫还剩几只羊?<br/>
        <input type="radio"name="q1"value="1">17
        <input type="radio"name="q1"value="2">9
        <input type="radio"name="q1"value="3">8
    </div>
    <br/>
    <div>
        2.大月有31天,小月有30天,那么一年中几个月有28天?<br/>
        <input type="radio"name="q2"value="1">1个
        <input type="radio"name="q2"value="2">4年1个
        <input type="radio"name="q2"value="3">12个
    </div>
    <br/>
    <div>
        3.小明的妈妈有三个小孩,老大叫大毛,老大叫二毛,老三叫什么?<br/>
        <input type="radio"name="q3"value="1">三毛
        <input type="radio"name="q3"value="2">小明
        <input type="radio"name="q3"value="3">不知道
    </div>
    <br/>
    <div>
        4.英国有没有七月四日(美国独立纪念日)?<br/>
        <input type="radio"name="q4"value="1">有
        <input type="radio"name="q4"value="2">没有
        <input type="radio"name="q4"value="3">不知道
    </div>
    <br/>
    <div>
        5.医生给你3个药丸,要你每30分钟吃1个,这些药丸多久以后会被吃完?<br/>
        <input type="radio"name="q5"value="1">90分钟
        <input type="radio"name="q5"value="2">60分钟
        <input type="radio"name="q5"value="3">30分钟
    </div>
    <br/>
    <input type="submit"value="提交"name="submit">
    </form>
    <?php
    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++;
        $_SESSION['QA_points']=$i*20;
        echo"<script>alert('您一共答对".$i."道题,得到".($i*20)."分');";
        echo"if(confirm('返回继续答题?'))";
        echo"window.location='QA.php';";
        echo"else";
        echo"window.location='main.php?username=$username&password=$password';";echo"</script>";
    }
}
else
    echo"您尚未登录,无权访问本页";
?>

 

 

 

问答页面的运行结果 :

单击【开始答题】按钮,进入答题页面,如下图所示:

 

回答完问题后单击【提交】按钮,页面会提示所得答题分数,如下图所示:

单击【确定】之后,询问是否返回继续答题,如下图所示:

单击【取消】按钮则返回主页面,在主页面中会有相应的提示,如下图所示:

 

更多推荐

制作一个PHP互动网页