admin.php :
运行代码框
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
下面解释:
function showf($mode=1){ //--------------------->这个小函数是输出管理员登陆表单的,2中模式,和发表留言的思路一样 if ($mode==1) {$admin_f="admin.php";} else { $admin_f="admin.php?doaction=sys"; } ?> <form action="<?=$admin_f?>" method="post" name="newform" id="newform"> <label>用户:<input name="username" type="text" size="10" maxlength="10" /></label> <label>密码:<input name="password" type="text" size="20" maxlength="10" /></label> <label><input maxlength="20" type="submit" name="Submit" value=" 登陆" > </label> </form> <?}?>
<?php $admin = false; //--------------------->防止全局变量造成安全隐患 session_start(); //--------------------->启动会话,这步必不可少
if (isset($_SESSION["admin"]) ) { //--------------------->判断是否登陆,如果session["admin"]不为空,已经登陆.深度是 1 echo "<h4>您已经成功登陆--></h4>";
if(isset($_GET['doaction'])) { //--------------------->登陆成功后,提交字段action不为空时执行,深度 2
$doaction = $_GET['doaction']; switch($doaction){ case 'sys': //--------------------->登陆成功后,提交字段action为"sys"执行,深度 3
echo"系统设置-->"; if($Submit) { foreach ($posts as $key => $value) { $posts[$key] = trim($value); } $password=md5($password); $conn->execute("update [php_admin] set [szd_user]='$username',[szd_password]='$password'"); echo "成功,2秒后返回"; echo "<meta http-equiv=\"refresh\" content=\"1;URL=admin.php\">"; }else{ showf(2); } break; case 'logout': //--------------------->登陆成功后,提交字段action为"logout"执行清除session,深度 3
session_start(); unset($_SESSION["admin"]); header('location:index.php'); die; break; case 'delete': //--------------------->登陆成功后,提交字段action为"delete"执行删除留言,深度 3 $conn->execute("delete * from [php_guest] where id=$id") ; echo "删除成功,2秒后返回"; echo "<meta http-equiv=\"refresh\" content=\"1;URL=index.php\">"; die; break; case 'editor': //--------------------->登陆成功后,提交字段action为"editor"执行编辑留言,深度 3 if($Submit) { //--------------------->登陆成功后,提交字段action为"editor"而且表单已经提交时执行,深度 4
$posts = $_POST; foreach ($posts as $key => $value) { $posts[$key] = trim($value); } $conn->execute("update [php_guest] set [szd_user]='$user',[szd_title]='$title',[szd_qq]='$qq',[szd_content]='$ly',[szd_rep]='$rep' where id=$id"); header("location:index.php"); } else { //--------------------->登陆成功后,提交字段action为"editor"而且表单已经没有执行,深度 4 $rs=$conn->execute("select * from [php_guest] where id=$id"); if($rs->eof and $rs->bof){ header("location:index.php"); die;} require_once('postfunction.php'); postfunction($rs->fields[1],$rs->fields[3],$rs->fields[2],$rs->fields[4],$rs->fields[0],$rs->fields[6],2); } default: break; } }else { //--------------------->登陆成功后,提交字段action为空时执行,深度 2
?> <ul> <li><a href="?doaction=sys">系统设置</a></li> <li><a href="?doaction=logout">退出登陆</a></li> </ul> <?} } else { //--------------------->判断:如果session["admin"]为空,没登陆.深度是 1 ?> <?php if($Submit){ //--------------------->判断表单提交后.深度是 2
$posts = $_POST; //--------------------->清除一些空白符号.深度是 3 foreach ($posts as $key => $value) { $posts[$key] = trim($value); } $password = md5($posts["password"]); //--------------------->自带md5加密
$username = $posts["username"]; if (empty($password)||empty($username)) {echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">"; echo "<script language=javaScript> \n alert(\"输入必要的信息\") \n</script>"; echo "<script language=javascript>javascript:history.back()</script>"; exit();}
$query = "SELECT id FROM [php_admin] WHERE [szd_password] = '$password' and [szd_user]='$username'"; $userInfo = $conn->execute($query); //--------------------->取得查询结果,深度是 4 if (!($userInfo->eof and $userInfo->bof )) { //--------------------->如果有符合输入的记录,登陆成功 session_start(); //--------------------->当验证通过后,启动 Session $_SESSION["admin"] = 1; //--------------------->登陆成功的 admin 变量,并赋值 1 header('location:admin.php'); } else { //--------------------->如果发生eof 和 bof 错误,用户名或者密码错,报错,深度是 4 echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">"; echo "<script language=javaScript> \n alert(\"密码错误或者用户名错误\") \n</script>"; echo "<script language=javascript>javascript:history.back()</script>"; exit(); } } else { //--------------------->用户没登陆而且表单没提交,输出表单.深度是 2 showf(); } ?> <?}?>
如图,管理员没登陆:

管理员登陆成功:

管理员登陆成功以后首页出现了超连接:

出处:蓝色理想
责任编辑:moby
上一页 发表留言,处理留言页面 下一页 使留言支持UBB
◎进入论坛网络编程版块参加讨论
|