2016/05/05 smarty ① 登录 ②主页面 ③删除 ④让缩略信息显示完整 (补:增加 修改 )

共  八个页面  

①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>&nbsp;&nbsp;&nbsp;&nbsp;码:<input type="text" name="pwd"></div>
12         <div><input type="submit" value="登录"></div>
13     </form>
14 </body>
15 </html>
View Code

 

③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  ?>
View Code

 

 

④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  ?>
View Code

 

⑤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>
View Code

 

⑥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  ?>
View Code

 

⑦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 }
View Code

显示效果:

登录:

 

经过 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>

posted on 2016-05-05 18:52  一棵树2016  阅读(174)  评论(0编辑  收藏  举报