共 八个页面
①login.php
1 <?php 2 include("init.inc.php"); 3 4 $smarty->display("login.html"); 5 ?>
②login.html 显示模板 在templates模板文件夹中
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <h1>登录页面</h1> 9 <form action="chuli.php" method="post"> 10 <div>用户名:<input type="text" name="uid"></div> 11 <div>密 码:<input type="text" name="pwd"></div> 12 <div><input type="submit" value="登录"></div> 13 </form> 14 </body> 15 </html>
③chuli.php
1 <?php 2 session_start(); 3 $uid=$_POST["uid"]; 4 $pwd=$_POST["pwd"]; 5 include("DBDA.php"); 6 $db=new DBDA(); 7 8 $sql="select count(*) from users where username=‘{$uid}‘ and password=‘{$pwd}‘"; 9 10 $result=$db->StrQuery($sql,1,"mydb2"); 11 if ($result==1) { 12 $_SESSION["uid"]=$uid; 13 header("location:main.php"); 14 } 15 16 else{ 17 header("location:login.php"); 18 } 19 20 ?>
④main.php
1 <?php 2 session_start(); 3 4 5 include("init.inc.php"); 6 include("DBDA.php"); 7 8 $db=new DBDA(); 9 10 11 12 if (!empty($_SESSION["uid"])) { 13 ; 14 $sqlf="select * from news"; 15 $attr=$db->Query($sqlf,1,"mydb"); 16 17 $smarty->assign("news",$attr); 18 19 $smarty->assign("jsurl","./js/jquery-1.11.2.min.js"); 20 $smarty->display("main.html"); 21 } 22 23 else{ 24 header("location:login.php"); 25 } 26 ?>
⑤main.html 显示模板 在templates模板文件夹中
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script src="<{$jsurl}>"></script> 7 <style type="text/css"> 8 .fu 9 { 10 width:360px; 11 12 background-color: yellow; 13 position: absolute; 14 } 15 16 </style> 17 </head> 18 <body> 19 <h1>主页面</h1> 20 <table style="position:absolute" width="100%" border="1" cellpadding="0" cellspacing="0"> 21 <tr> 22 <td>编号</td> 23 <td>标题</td> 24 <td>内容</td> 25 <td>时间</td> 26 <td>类型</td> 27 <td>操作</td> 28 </tr> 29 <{foreach $news as $guo}> 30 31 <tr> 32 33 <td><{$guo[0]}></td> 34 <td class=‘dq‘ bs=‘<{$guo[1]}>‘><{$guo[1]|truncate:20}></td> 35 <td><{$guo[2]|truncate:40}></td> 36 <td><{$guo[3]}></td> 37 <td><{$guo[4]}></td> 38 <td><a href="shanchu.php?code=<{$guo[0]}>">删除</a></td> 39 </tr> 40 <{/foreach}> 41 </table> 42 </body> 43 <script type="text/javascript"> 44 $(document).ready(function(e){ 45 46 $(".dq").mouseover(function(e){ 47 var top=e.clientY; //获取鼠标位置 48 var name=$(this).attr("bs"); 49 var div="<div class=‘fu‘ style=‘top:"+top+"px;left:100px‘>"+name+"</div>"; 50 $(".fu").remove(); 51 $("body").append(div); 52 }) 53 $(".dq").mouseleave(function(e){ 54 $(".fu").remove(); 55 }) 56 }); 57 58 </script> 59 </html>
⑥shanchu.php
1 <?php 2 $code=$_GET["code"]; 3 include("DBDA.php"); 4 $db=new DBDA(); 5 6 $sqls="delete from news where ids=‘{$code}‘"; 7 8 $db->Query($sqls,0,"mydb"); 9 10 header("location:main.php"); 11 12 ?>
⑦init.inc.php (smarty.class.php 核心的配置文件/在libs文件夹下)需要应用smarty模板的php 页面引入
1 <?php 2 3 define("ROOT",str_replace("\\","/",dirname(__FILE__)).‘/‘); //常量ROOT中指定项目根目录 4 5 //echo str_replace("\\","/",dirname(__FILE__))."/"; 6 7 require ROOT.‘libs/Smarty.class.php‘; //加载Smarty类文件 8 9 $smarty = new Smarty(); //实例化Smarty对象<br> 10 11 12 //$smarty -> auto_literal = false; //就可以让定界符号使用空格 13 $smarty->setTemplateDir(ROOT.‘templates/‘); //设置所有模板文件存放位置 14 //$smarty->addTemplateDir(ROOT.‘templates2/‘); //添加一个模板文件夹 15 $smarty->setCompileDir(ROOT.‘templates_c/‘); //设置编译过的模板存放的目录 16 17 $smarty->addPluginsDir(ROOT.‘plugins/‘); //设置为模板扩充插件存放目录 18 $smarty->setCacheDir(ROOT.‘cache/‘); //设置缓存文件存放目录 19 $smarty->setConfigDir(ROOT.‘configs/‘); //设置模板配置文件存放目录 20 21 $smarty->caching = false; //设置Smarty缓存开关功能 22 $smarty->cache_lifetime = 60*60*24; //设置缓存模板有效时间一天 23 $smarty->left_delimiter = ‘<{‘; //设置模板语言中的左结束符 24 $smarty->right_delimiter = ‘}>‘; //设置模板语言中的右结束符 25 26 27 28 29 30 ?>
⑧DBDA.php (query方法查询输出数组,StrQuery方法查询输出字符串,显示时需要拆)
1 <?php 2 3 class DBDA 4 { 5 public $host = "localhost"; //服务器地址 6 public $uid = "root"; //数据库的用户名 7 public $pwd = "123"; //数据库的密码 8 9 //执行SQL语句,返回相应结果的函数 10 //$sql是要执行的SQL语句 11 //$type是SQL语句的类型,0代表增删改,1代表查询 12 //$db代表要操作的数据库 13 public function Query($sql,$type,$db) 14 { 15 //造连接对象 16 $conn = new MySQLi($this->host,$this->uid,$this->pwd,$db); 17 18 //判断连接是否成功 19 !mysqli_connect_error() or die("连接失败!"); 20 21 //执行SQL语句 22 $result = $conn->query($sql); 23 24 //判断SQL语句类型 25 if($type==1) 26 { 27 //如果是查询语句返回结果集的二维数组 28 return $result->fetch_all(); 29 } 30 else 31 { 32 //如果是其他语句,返回true或false 33 return $result; 34 } 35 } 36 37 //Ajax调用返回JSON 38 public function JsonQuery($sql,$type=1,$db="test2") 39 { 40 //定义数据源 41 $dsn = "mysql:dbname={$db};host={$this->host}"; 42 //造pdo对象 43 $pdo = new PDO($dsn,"{$this->uid}","{$this->pwd}"); 44 45 46 //准备执行SQL语句 47 $st = $pdo->prepare($sql); 48 49 //执行预处理语句 50 if($st->execute()) 51 { 52 if($type==1) 53 { 54 $attr = $st->fetchAll(PDO::FETCH_ASSOC); 55 return json_encode($attr); 56 } 57 else 58 { 59 if($st) 60 { 61 return "OK"; 62 } 63 else 64 { 65 return "NO"; 66 } 67 } 68 69 } 70 else 71 { 72 echo "执行失败!"; 73 } 74 75 76 77 } 78 //Ajax调用返回字符串 79 public function StrQuery($sql,$type,$db) 80 { 81 //造连接对象 82 $conn = new MySQLi($this->host,$this->uid,$this->pwd,$db); 83 84 //判断连接是否成功 85 !mysqli_connect_error() or die("连接失败!"); 86 87 //执行SQL语句 88 $result = $conn->query($sql); 89 90 //判断SQL语句类型 91 if($type==1) 92 { 93 $attr = $result->fetch_all(); 94 $str = ""; 95 //如果是查询语句返回字符串 96 for($i=0;$i<count($attr);$i++) 97 { 98 for($j=0;$j<count($attr[$i]);$j++) 99 { 100 $str = $str.$attr[$i][$j]; 101 $str = $str."^"; 102 } 103 $str = substr($str,0,strlen($str)-1); 104 $str = $str."|"; 105 } 106 $str = substr($str,0,strlen($str)-1); 107 108 return $str; 109 } 110 else 111 { 112 //如果是其他语句,返回true或false 113 if($result) 114 { 115 return "OK"; 116 } 117 else 118 { 119 return "NO"; 120 } 121 } 122 } 123 124 125 }
显示效果:
登录:
经过 login.html chuli.php 到达 main.php 通过main.html 模板显示出来
位于编号为1 的新闻 被 点击右侧 删除掉
main.html页面 传值
<td><a href="shanchu.php?code=<{$guo[0]}>">删除</a></td>
通过 shanchu.php 页面链接数据库 做删除动作
让缩略信息显示完整 通过js完成
1 <script type="text/javascript"> 2 $(document).ready(function(e){ 3 4 $(".dq").mouseover(function(e){ 5 var top=e.clientY; //获取鼠标位置 6 var name=$(this).attr("bs"); 7 var div="<div class=‘fu‘ style=‘top:"+top+"px;left:100px‘>"+name+"</div>"; 8 $(".fu").remove(); 9 $("body").append(div); 10 }) 11 $(".dq").mouseleave(function(e){ 12 $(".fu").remove(); 13 }) 14 }); 15 16 </script>
时间: 2024-12-20 21:29:10