共  八个页面

①login.php

 <?php
include("init.inc.php"); $smarty->display("login.html");
?>

②login.html  显示模板  在templates模板文件夹中

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>登录页面</h1>
<form action="chuli.php" method="post">
<div>用户名:<input type="text" name="uid"></div>
<div>密&nbsp;&nbsp;&nbsp;&nbsp;码:<input type="text" name="pwd"></div>
<div><input type="submit" value="登录"></div>
</form>
</body>
</html>

③chuli.php

 <?php
session_start();
$uid=$_POST["uid"];
$pwd=$_POST["pwd"];
include("DBDA.php");
$db=new DBDA(); $sql="select count(*) from users where username='{$uid}' and password='{$pwd}'"; $result=$db->StrQuery($sql,1,"mydb2");
if ($result==1) {
$_SESSION["uid"]=$uid;
header("location:main.php");
} else{
header("location:login.php");
} ?>

④main.php

 <?php
session_start(); include("init.inc.php");
include("DBDA.php"); $db=new DBDA(); if (!empty($_SESSION["uid"])) {
;
$sqlf="select * from news";
$attr=$db->Query($sqlf,1,"mydb"); $smarty->assign("news",$attr); $smarty->assign("jsurl","./js/jquery-1.11.2.min.js");
$smarty->display("main.html");
} else{
header("location:login.php");
}
?>

⑤main.html  显示模板  在templates模板文件夹中

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="<{$jsurl}>"></script>
<style type="text/css">
.fu
{
width:360px; background-color: yellow;
position: absolute;
} </style>
</head>
<body>
<h1>主页面</h1>
<table style="position:absolute" width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>编号</td>
<td>标题</td>
<td>内容</td>
<td>时间</td>
<td>类型</td>
<td>操作</td>
</tr>
<{foreach $news as $guo}> <tr> <td><{$guo[0]}></td>
<td class='dq' bs='<{$guo[1]}>'><{$guo[1]|truncate:20}></td>
<td><{$guo[2]|truncate:40}></td>
<td><{$guo[3]}></td>
<td><{$guo[4]}></td>
<td><a href="shanchu.php?code=<{$guo[0]}>">删除</a></td>
</tr>
<{/foreach}>
</table>
</body>
<script type="text/javascript">
$(document).ready(function(e){ $(".dq").mouseover(function(e){
var top=e.clientY; //获取鼠标位置
var name=$(this).attr("bs");
var div="<div class='fu' style='top:"+top+"px;left:100px'>"+name+"</div>";
$(".fu").remove();
$("body").append(div);
})
$(".dq").mouseleave(function(e){
$(".fu").remove();
})
}); </script>
</html>

⑥shanchu.php

 <?php
$code=$_GET["code"];
include("DBDA.php");
$db=new DBDA(); $sqls="delete from news where ids='{$code}'"; $db->Query($sqls,0,"mydb"); header("location:main.php"); ?>

⑦init.inc.php   (smarty.class.php 核心的配置文件/在libs文件夹下)需要应用smarty模板的php  页面引入

 <?php

 define("ROOT",str_replace("\\","/",dirname(__FILE__)).'/'); //常量ROOT中指定项目根目录

 //echo str_replace("\\","/",dirname(__FILE__))."/";

 require ROOT.'libs/Smarty.class.php'; //加载Smarty类文件

 $smarty = new Smarty(); //实例化Smarty对象<br>

 //$smarty -> auto_literal = false; //就可以让定界符号使用空格
$smarty->setTemplateDir(ROOT.'templates/'); //设置所有模板文件存放位置
//$smarty->addTemplateDir(ROOT.'templates2/'); //添加一个模板文件夹
$smarty->setCompileDir(ROOT.'templates_c/'); //设置编译过的模板存放的目录 $smarty->addPluginsDir(ROOT.'plugins/'); //设置为模板扩充插件存放目录
$smarty->setCacheDir(ROOT.'cache/'); //设置缓存文件存放目录
$smarty->setConfigDir(ROOT.'configs/'); //设置模板配置文件存放目录 $smarty->caching = false; //设置Smarty缓存开关功能
$smarty->cache_lifetime = 60*60*24; //设置缓存模板有效时间一天
$smarty->left_delimiter = '<{'; //设置模板语言中的左结束符
$smarty->right_delimiter = '}>'; //设置模板语言中的右结束符 ?>

⑧DBDA.php    (query方法查询输出数组,StrQuery方法查询输出字符串,显示时需要拆)

 <?php

 class DBDA
{
public $host = "localhost"; //服务器地址
public $uid = "root"; //数据库的用户名
public $pwd = "123"; //数据库的密码 //执行SQL语句,返回相应结果的函数
//$sql是要执行的SQL语句
//$type是SQL语句的类型,0代表增删改,1代表查询
//$db代表要操作的数据库
public function Query($sql,$type,$db)
{
//造连接对象
$conn = new MySQLi($this->host,$this->uid,$this->pwd,$db); //判断连接是否成功
!mysqli_connect_error() or die("连接失败!"); //执行SQL语句
$result = $conn->query($sql); //判断SQL语句类型
if($type==1)
{
//如果是查询语句返回结果集的二维数组
return $result->fetch_all();
}
else
{
//如果是其他语句,返回true或false
return $result;
}
} //Ajax调用返回JSON
public function JsonQuery($sql,$type=1,$db="test2")
{
//定义数据源
$dsn = "mysql:dbname={$db};host={$this->host}";
//造pdo对象
$pdo = new PDO($dsn,"{$this->uid}","{$this->pwd}"); //准备执行SQL语句
$st = $pdo->prepare($sql); //执行预处理语句
if($st->execute())
{
if($type==1)
{
$attr = $st->fetchAll(PDO::FETCH_ASSOC);
return json_encode($attr);
}
else
{
if($st)
{
return "OK";
}
else
{
return "NO";
}
} }
else
{
echo "执行失败!";
} }
//Ajax调用返回字符串
public function StrQuery($sql,$type,$db)
{
//造连接对象
$conn = new MySQLi($this->host,$this->uid,$this->pwd,$db); //判断连接是否成功
!mysqli_connect_error() or die("连接失败!"); //执行SQL语句
$result = $conn->query($sql); //判断SQL语句类型
if($type==1)
{
$attr = $result->fetch_all();
$str = "";
//如果是查询语句返回字符串
for($i=0;$i<count($attr);$i++)
{
for($j=0;$j<count($attr[$i]);$j++)
{
$str = $str.$attr[$i][$j];
$str = $str."^";
}
$str = substr($str,0,strlen($str)-1);
$str = $str."|";
}
$str = substr($str,0,strlen($str)-1); return $str;
}
else
{
//如果是其他语句,返回true或false
if($result)
{
return "OK";
}
else
{
return "NO";
}
}
} }

显示效果:

登录:

经过 login.html  chuli.php  到达  main.php    通过main.html  模板显示出来

位于编号为1 的新闻   被   点击右侧  删除掉

main.html页面   传值

<td><a href="shanchu.php?code=<{$guo[0]}>">删除</a></td>

通过  shanchu.php  页面链接数据库  做删除动作

让缩略信息显示完整   通过js完成

 <script type="text/javascript">
$(document).ready(function(e){ $(".dq").mouseover(function(e){
var top=e.clientY; //获取鼠标位置
var name=$(this).attr("bs");
var div="<div class='fu' style='top:"+top+"px;left:100px'>"+name+"</div>";
$(".fu").remove();
$("body").append(div);
})
$(".dq").mouseleave(function(e){
$(".fu").remove();
})
}); </script>

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

  1. http://tedhacker.top/2016/08/05/Spring%E7%BA%BF%E7%A8%8B%E6%B1%A0%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95/

    http://tedhacker.top/2016/08/05/Spring%E7%BA%BF%E7%A8%8B%E6%B1%A0%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%9 ...

  2. Murano Weekly Meeting 2016.07.05

    Meeting time: 2016.July.05 1:00~2:00 Chairperson:  Kirill Zaitsev, from Mirantis Meeting summary: 1. ...

  3. Oracle 增加修改删除字段

    Oracle 增加修改删除字段 添加字段的语法:alter table tablename add (column datatype [default value][null/not null],…. ...

  4. 2016/05/05 smarty ①分页 ② 查询后分页 ③缓存

    samrty  分页   查询后分页 0505fch.php <?php include("init.inc.php"); include("DBDA.php&qu ...

  5. “耐撕”团队 2016.04.05 站立会议

    1. 时间: 20:10--20:25  共计15分钟. 2. 成员: Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), P 濮成林(博客:ht ...

  6. extern “C”原理,用法以及使用场景-2016.01.05

    1 问题提出 在编程过程中,经常发现如下用法: #ifndef _FILE_NAME_H_ #define _FILE_NAME_H_ #ifdef __cplusplus extern " ...

  7. iOS常识名词解释 2016/04/05

    Bundle : http://www.cnblogs.com/BigPolarBear/archive/2012/03/28/2421802.html http://blog.sina.com.cn ...

  8. 2016/07/05 zend optimizer

    Zend Optimizer是由PHP核心引擎“Zend” http://www.zend.com 创建者Zend技术公司所开的免费PHP优化软件.据Zend公司透露使用这个软件某些情况下至少可以提高 ...

  9. 2016.01.05 DOM笔记(一) 查找元素

    DOM节点的种类 元素和标签是一个意思,例如<body>标签或者称为<body>元素 节点DOM的节点分为三类  元素节点,文本节点,属性节点 例如 <div id=‘b ...

随机推荐

  1. Python中的函数(4)

    一.传递列表 你经常会发现,向函数传递列表很有用,这种列表包含的可能是名字.数字或者更复杂的对象(如字典). 将列表传递给函数后,函数就能直接访问其内容. 栗子:假设有一个用户列表,我们要和其中每一位 ...

  2. C++实现顺序栈类求解中缀表达式的计算

    控制台第一行打印的数值为使用形如以下方式得到的结果: cout << +*(+)*/- << endl; 即第一个待求解表达式由C++表达式计算所得结果,以用于与实现得出的结果 ...

  3. 初次使用xUtils3

    由于初学Android,之前也没接触过xUtils2.X系列,所以xUtils3.X弄了很久还是一直报空指针异常,后来看了Sample找到问题所在,现在把xUtils3.X的使用写来供像我这样的小白参 ...

  4. python编程之API入门: (二)python3中使用新浪微博API

    回顾API使用的流程 通过百度地图API的使用,我理解API调用的一般流程为:生成API规定格式的url->通过urllib读取url中数据->对json格式的数据进行解析.下一步,开始研 ...

  5. xtu summer individual 3 C.Infinite Maze

    B. Infinite Maze time limit per test  2 seconds memory limit per test  256 megabytes input standard ...

  6. 线段上的格点 辗转相除法(GCD)

    /*问题描述:线段上的格点给定平面上的两个格点 P1 = (x1, y1) ; P2 = (x2, y2) 线段P1 P2上,除P1 和 P2以外一共有几个格点*//*分析过程在格点上画P1(0,5) ...

  7. Python基础教程笔记——第7章:更加抽象(类)

    下面进入Python的面向对象: 对象的魔力: 多态:---可以对不同类的对象使用同样的操作 封装:---对外部隐藏对象内部的工作方式 继承:---以普通的类为基础建立专门的类对象 (1)多态: is ...

  8. visual svn 搭建

    详细出处参考:http://www.jb51.net/article/17365.htm 这里提示一个需要注意的地方: 在签入源代码到SVN服务器的时候: 点击Import,弹出下面的窗体(图2-2- ...

  9. hashlib-sha摘要算法模块

    摘要:hashlib: 摘要算法的模块 用处: 1.查看某两个文件是否完全一致 "abcdefggg" "abcdefhhg" 2.加密认证 把密码加密后写入文 ...

  10. RedirectAttributes

    RedirectAttributes是Spring mvc 3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的 他有两种带参的方式: 第一种:  attr.addAttribute(&q ...