环境 : 因为并不是真实搭建服务器,所以我偷懒用了phpstudy,集成了轻量版的apache,mysql和php. IDE采用Eclipse PHP Studio,毕竟用惯了Eclipse.
设置好apache本机目录(与EPS工程目录一致),使用phpMyAdmin添加测试用数据库fansdb,并建立新表test(含两个字段:user和password)
各网页源码:
//index.php
后台管理登陆:<br>
<form action="login.php" method="post">
姓名:<input type="text" name="name" />
密码:<input type="text" name="password" />
<input type="submit" name="submit" value="提交" />
</form>
//login.php
<?php
require_once 'connectdb.php';
$name = $_POST['name'];
$passowrd = $_POST['password'];
$passowrd = md5($passowrd);
if ($name && $passowrd){
$sql = "SELECT * FROM test WHERE user = '$name' and password='$passowrd'";
$res = mysql_query($sql);
$rs=mysql_num_rows($res);
if($rs){
header("refresh:0;url=userui.php");
exit;
}
else
echo "<script language=javascript>alert('用户名密码错误');history.back();</script>";
}else {
echo "<script language=javascript>alert('用户名密码不能为空');history.back();</script>";
}
?>
//userui.php
<form action="" method="post">
<input type="submit" name="btn" value="列出所有"/>
<input type="submit" name="btn" value="增加"/>
<input type="submit" name="btn" value="删除"/>
<input type="submit" name="btn" value="修改"/>
<input type="submit" name="btn" value="查找"/>
</form>
<?php
require_once 'controldb.php';
$action = $HTTP_POST_VARS["btn"];
switch($action){
case "列出所有":
listuser();
break;
case "增加":
echo "<form action=\"\" method=\"post\">
姓名:<input type=\"text\" name=\"name\" />
密码:<input type=\"text\" name=\"password\" />
<input type=\"submit\" name=\"btn\" value=\"确定添加\"/>
<br>";
break;
case "删除":
echo "<form action=\"\" method=\"post\">
查找姓名:<input type=\"text\" name=\"name\" />
<input type=\"submit\" name=\"btn\" value=\"确定删除\"/>
<br>";
break;
case "修改":
echo "<form action=\"\" method=\"post\">
查找姓名:<input type=\"text\" name=\"name\" />
修改后姓名:<input type=\"text\" name=\"dest_name\" />
修改后密码:<input type=\"text\" name=\"dest_password\" />
<input type=\"submit\" name=\"btn\" value=\"确定修改\"/>
<br>";
break;
case "查找":
echo "<form action=\"\" method=\"post\">
查找姓名:<input type=\"text\" name=\"name\" />
<input type=\"submit\" name=\"btn\" value=\"确定查找\"/>
<br>";
break;
case "确定添加":
if(add($_POST['name'],$_POST['password']))
echo "添加成功";
else
echo "添加失败";
break;
case "确定删除":
if(del($_POST['name']))
echo "删除成功";
else
echo "删除失败,可能不存在此人";
break;
case "确定修改":
if(change($_POST['name'],$_POST['dest_name'],$_POST['dest_password']))
echo "修改成功";
else
echo "修改失败,可能不存在此人";
break;
case "确定查找":
$rs = search($_POST['name']);
if($rs)
echo "用户名:".$rs->user."<br>用户密码(after md5):".$rs->password;
else
echo "查找失败,可能不存在此人";
break;
}
?>
//conectdb.php
<?php
$mysql_servername = "localhost"; //主机地址
$mysql_username = "root"; //数据库用户名
$mysql_password ="root"; //数据库密码
$mysql_database ="fansdb"; //数据库
mysql_connect($mysql_servername , $mysql_username , $mysql_password);
mysql_select_db($mysql_database);
?>
//controldb.php
<?php
require_once 'connectdb.php';
function add($name,$password){
$password = md5($password);
$sql = "INSERT INTO test(user, password) VALUE('$name', '$password')";
$rlt = mysql_query($sql);
return $rlt;
}
function del($name){
$sql = "DELETE FROM test WHERE user='$name'";
$rlt = mysql_query($sql);
return $rlt;
}
function change($name,$dest_name,$dest_password){
$dest_password = md5($dest_password);
$sql = "UPDATE test SET user='$dest_name',password='$dest_password' WHERE user = '$name'";
$rlt = mysql_query($sql);
return $rlt;
}
function search($name){
$sql = "SELECT * FROM test WHERE user='$name'";
$rlt = mysql_query($sql);
$rs=mysql_fetch_object($rlt);
return $rs;
}
function listuser(){
$sql="SELECT * FROM test";
$rlt=mysql_query($sql);
while($rs=mysql_fetch_object($rlt)) {
echo "用户名:".$rs->user."<br>用户密码(after md5):".$rs->password."<br>";
}
}
?>
登陆页面:
操作页面:
注意:一次debug时手动用add函数为数据库添加密码和用户名都为root的item.
总结:其实这次题目并不是太难,主要还是考察sql语言?基本上第一次接触web开发,对html完全摸不着头脑,所以ui方面也就那个鸟样了.至于代码里面各种不规范和偷懒,额,也就那个样了,php为web而生,我还是玩我的lua比较贴心一点.都是基于弱类型但lua相对安全多了,大概. php里的系统全局变量应该都是基于hash表的伪数组?每次post动作将静态网页中name,value等值push进表中,然后用于与php交互? 嘛,标记一下,以后有时间,或者说有兴趣再学习下web和php吧.
至于创新班的事,暂时不做评论,老金的培训方法大概是很有道理的,但是时间固定的太死了,将所有时间放在web上而放弃自己感兴趣的东西,感觉我自己是做不来.总之,这件事也就这样了.