| 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 ◎进入论坛网络编程版块参加讨论
	      |