绩效考核系统开发心得之四__PHP

前言

之前并没有学过PHP,这次为了做网站特意自学了一下,先总结一下学习方法吧。

1.谷歌是最好的老师,百度就是渣渣...

从前我还有一颗纯真善良的心,以为百度只是和谐版本的谷歌,在技术类的搜索结果上两边差距不会太明显。但这次是深深的被百度伤害了。搜出来的东西第一页根本就没有帮到我的..百度知道里边对于专业的问题也没有系统的解释,大家大多是就事论事而已,找解决办法很辛苦。
果断放弃百度之后,在谷歌的怀抱里找到了不少干货。谷歌当中搜索出来的结果有很多是一些技术博客,很多不知道要怎么解决的问题在这些博客里都能找到系统的解决方案,看起来非常方便,也很有效的解决了我的困惑。

2.w3school在线教程是个好东西..

有系统的网页开发的教程,包括前端的和后端的,关于数据库的使用也有很详细的教程。有实例有在线测试工具,很方便。我一般先从这里寻找答案,有不会的地方再去谷歌。

3.Codecademy也很不错

虽然是全英文的,不过作为程序员,洋文必须要懂一点的,况且这个网站上的英文也不见得多难。

正文

连接数据库

此刻我就不再吐槽PHP和Access的繁琐的连接方式了...这个ADOdb的库真心不好用,网站做好了想放到SAE、BAE上边去都没法运行,如果是MySQL的话就很简单了。

include('/adodb5/adodb.inc.php');
//连接数据库
$conn = new com("ADODB.Connection");
$rs = new com("ADODB.RecordSet");
$connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" . realpath("数据库名称");
$conn->Open($connstr);

这个include可有可无,我发现不管有没有这句代码,网站都可以顺利的执行。
new一个类com,在云平台上总会报错找不到类com,我觉得可能是include没有被执行,或者是目录的权限不够导致这个问题。当然也可能是云平台不支持自定数据库的原因。
所以如果一开始就打算在云平台上运行或者测试,就要先看好云平台给出的开发文档,提前做好准备,有一些平台给出的接口可以使用,利用平台自己的数据库(大多数是MySQL)
至于ADOdb的详细介绍,我也讲不清楚。大家可以在w3school里边找到教程,很详细。


loginCheck.php

最纯的php页面就是这个了,用于检查用户名和密码。它从index.html里接受到POST来的用户名和密码以及登录类型,根据类型从数据库里通过用户名读出条目然后匹配密码,分学生和老师引导到不同的页面去。

为了让用户在不同页面都能保持在线,一开始想尝试session,简单了试了试w3school的例子之后发现不能用,当时也没耐心去想是什么问题,就直接转用Cookies了,通过把用户的ID保存在Cookies里,然后判断ID是否存在,如果是就操作当前用户,如果不存在就说明没有登录或者很久没有登录了。


php操作cookies的函数语法

setrawcookie(Cookies名称,值,保存的时间);
其中保存的时间很有意思,当到了这个时间之后就会自动清除这个Cookies,如果需要清除Cookies的话,就可以通过设置Cookies的时间为过去,当浏览器执行到这一段的时候会发现Cookies过期,自动删除它。我还是觉得应该会有个更直接的办法删除Cookies。有空的时候再琢磨下看。


当验证成功后php的重定向语句:

//重定向浏览器   
header("Location: student.php");   
//确保重定向后,后续代码不会被执行   
exit; 
这一段是在网上搜索的教程,如何使用php跳转页面。


如果密码错误的话,需要引导回index.html,这时候我用了统一的跳转标签

在php代码段里边,如果密码错误,就把$url设置成inde.html

然后在里边加入这样一段

 

可以立即刷新页面到$url


student.php & teacher.php

这个算是绩效考核系统的主界面了

作为初学者,发现php一个很有意思的地方,print 和echo的内容会直接输出到浏览器里,

这就意味着,你可以

print "";
	print "";//";
	print "";
	print "";
	print "";
	print "";
	print "";
	print "";
print "
类别是标题单元格,s是内容单元格,th会自动加粗加大 print "内容审批老师提交时间备注审批状态评价得分
";

这只是一个静态的表格,只要加上循环语句和相关的变量,你就可以动态的生成一个表格,甚至可以做到自动分页并添加页面的链接。


你也可以在html里边嵌入一段php代码

类型:
	
		if($rs->Fields["stuType"]->Value==1)
			echo "硕士研究生";
		if($rs->Fields["stuType"]->Value==2)
			echo "博士研究生";
	?>

这里可以根据stuType的不同显示不同的内容。


studentInfoChange.php & teacherInfoChange.php

这个就没什么好说的了,改资料的页面,注意表要close掉之后才会真的写道磁盘上。

submit.php

主要是使用INSERT语句,没啥特别的



心得

总的来讲,
Cookies的使用还有不安全的因素在,在接下来的版本里会想办法修改成session的。至少也要弄清楚session怎么用。
SQL语句写的还是很乱,还需要修改。
数据库要改成MySQL,这个一旦改好了,一劳永逸…我的mac也能当服务器跑这个网站了。
感觉php有非常大的可能性,很强大。脑袋里能想到的一些效果基本上都可以用php直接或者间接的实现。
AJAX相信也是一个非常有用的工具,可以部分刷新页面,接下来的数据库大实验打算用这个。


你可能感兴趣的:(php)