采用smarty开发的一个个人小论坛
1)include 公共文件 最好使用include引入,
例如:页面的header 或者图片,还有底部的显示
一般是公共的
2)数据库的查询 插入 更新 删除
执行之后的提示 使用:
控制器:例如
$sql="insert into topics(bid,title,content,post_time) values ('$bid','".$_POST['title']."','".$_POST['content']."',now())";
$query->query($sql);
$smarty->assign('ok',1);
V输出模板文件上使用:
{if $ok}发表成功!
{else}
.........
{/if}
3)客户端输入数据的检测和判断
最佳的使用是js判断 原因是分工明确,易于维护,这是在客户端做的判断
其次是在服务器上面判断,这个成本高,容易降低服务器效率,但是判断是准确度是最高的
3)跨页面数据的查询
使用session保存机制,在夸页面的事实 session具有临时保存的功能
在控制器里面判断管理员是否登录, 还有在模版文件输出使用:{$smarty.session.username}
4)获取数据;
POST主要用于表单的提交的数据,GET主要是获得URL的数据, 例如对某条信息删除 修改 选择 都可以通过get获得id
5)URL的解析
常规:<a href="edit.php?id={$item.id}">修改</a>
<a href="delete.php?id={$item.id}">删除</a>
这个样的话需要写2个模版
常用URL;
<a href="ad_board.php?action=edit&id={$result[u].id}"><b>修改</b></a>
<a href="ad_board.php?action=del&id={$result[u].id}" )">删除</a>
控制器:----可以根据action的不同,调用不同的方法,在一个页面写 减收页面数量,在$_POST['submit']获得表单
//删除板块
if($_GET['action']=='del'&&isset($_GET['id'])){
$id=$_GET['id'];
$sql="delete from boards where id=".$id."";
// echo $sql;
$query->query($sql);
$smarty->assign('ok',1);
$smarty->display("ad_userdel.tpl");
}
//修改板块信息
if($_GET['action']=='edit'&&isset($_GET['id'])){
$sql="select * from boards where id='".$_GET['id']."'";
$q=$query->query($sql);
$res=$query->fetch_array($q);
$smarty->assign('info',$res);
if(isset($_POST['submit'])){
$sql="update boards set board_name='".$_POST['board_name']."' , board_desc='".$_POST['board_desc']."',build_time=now() where id='".$_POST['id']."'";
// echo $sql;
$query->query($sql);
$smarty->assign('ok',1);
}
$smarty->display('ad_boardedit.tpl');
}