PHP+Access设计留言版实战(2)

http://tech.ddvip.com   2007年08月26日    社区交流

内容摘要:PHP+Access设计留言版实战

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>
alert("输入必要的信息")
</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>
alert("密码错误或者用户名错误")
</script>";
echo "<script language=javascript>javascript:history.back()</script>";
exit();
}
}
else
{
//--------------------->用户没登陆而且表单没提交,输出表单.深度是 2
showf();
}
?>
<?}?>

责编:豆豆技术应用

正在加载评论...