Mysql入门系列:运行PHP
2006-12-31 10:48:57 来源:WEB开发网学生ID 的值和相关的分数通过迭代PHP 的each 函数的$score 数组来获得。每个分数处理如下:
如果分数是空白的,则表明什么也没有输入,但是我们还要试图删除这个分数,以免它以前曾经存在(也许以前我们为缺席的学生错误地输入了分数)
如果分数不是空白的,就对值进行一些根本的确认。用函数trim() 去掉前后的空格之后,如果剩余部分是空白或者整数,就接受这个结果。然而,表格值通常作为字符串来编码,因此不能用is_long() 或者is_int() 检查值是否为整数。即使值只包括数字,这些函数也会返回FA L S E。既然这样,最好用模型匹配操作。如果字符串从开始到结束每个字符都是数字,则下面的测试为T R U E:
ereg("^[0-9]+$",$str)
如果分数检查完毕,我们就将它加到score 表中。查询使用REPLACE 而不用INSERT,因为我们可能替换了已存在的分数而不是输入一个新的分数( REPLACE 在两种情况下都适用)。
注意score _ e n t r y.php 脚本。现在所有的分数项和编辑项都能从Web 浏览器执行。一个明显的缺点是:脚本没有提供安全措施,连接到Web 服务器的任何人都可以对分数进行编辑。以后,我们用编辑历史同盟成员项编写的脚本来说明这个脚本所采取的简单确认方案。也可以使用PHPLIB 程序包来提供更完善的确认。
美国总统测验
历史同盟Web 站点的目标之一就是用它给出测验的在线版本,这类似于同盟在时事通信“美国编年史”的儿童部分发表的一些测验。实际上我们创建了president 表,因此对基于历史的测验可以用它作为问题的来源。为了给出这个测验,我们将编写称为pres_quiz.php 的脚本。
基本的想法是随机挑选一个总统,问一个关于他的问题,然后请求用户回答并且察看答案是否正确。为了简单一点,可以把主题限制为询问总统出生在哪里。另外一种简单的衡量就是以多个选择的格式给出这个问题。这对用户来讲很容易,他只需从一组选择中挑选一个,而不用将之键入等待回应。这对我们来讲也是容易的,因为我们不需做任何棘手的匹配字符串来检查用户可能键入的内容,而只需对用户的选择和我们寻找的值做一个简单的比较。
更多精彩
赞助商链接