mvc建站心得
来源:互联网 发布:uu加速器网络异常 编辑:程序博客网 时间:2024/04/27 15:04
后台管理里面删除功能的设计:
1.在视图c控制器下面不要出现任何输出代码,包括SQL查询语句也不能出现。
$sql='DELETE FROM article WHERE id =\''.$id.'\'';if(mysql_query($sql)) {$msg = $id."内容删除成功";} else {$msg = $id."删除失败";} }
例如如此。。。。。
2.在接收来自URL的数据用$_GET[ '' ]接收时,最好用
intval($_GET['id']);
来处理下,以保证接收数据的安全性;
3.
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
这个语句通常用来处理判断接收的信息;于网站安全性考虑,在运算符“:”后面0是比较合理的选择;
4.
$sql='DELETE FROM article WHERE id =\''.$id.'\'';//$_GET['id']
这个语句注意两点:a. $sql一般用小写,最好不要用大写;
b. $_GET['id']与\''.$id.'\''比较写后面的是比较好的选择,这在网站安全性方面是理智的;
5.
<?phpif($yes) {echo $msg.'<br/>';echo '<a href="?admin=article">return</a>';}else{?> <h1><font color="#FF0000">你确定要删除吗?</font></h1> <br/><br/><div class="padd"> </div> <a href="?admin=article_del&id=<?php echo $id;?>&yes=1">yes</a> <a href="?admin=article">no</a><?php}?>
此语句用if....else....来判断视图页面的显示效果,牢记此种方法;
6.在控制器使用方面,可以用少量的文件来实现同样的功能,就选择少量的控制器,比如:
此personal2的制作中c下面的控制器可以有add(添加),del(删除),edit(编辑);可以同时写在一个类里面保存在一个文件中。然后实例化类调用不同的类中方法;
例如:
class ad_article{function add(){}function edit() {}function add(){}
然后用单入口文件index.php调用
<?phpinclude('conn.php');$c = isset($_GET['admin']) ? $_GET['admin'] : 'admin';$do = isset($_GET['do']) ? $_GET['do'] : 'index';if(!file_exists('c/admin/'.$c.'.php')) {echo '404 not find'; exit();}include ('c/admin/'.$c.'.php');$c ='ad_'.$c;$app = new $c;$app->$do();?>
里面分类用$do代表调用的不同方法;
http://127.0.1.3/jmb/003/personal2/admin.php?admin=articlehttp://127.0.1.3/jmb/003/personal2/admin.php?admin=article_del&id=2http://127.0.1.3/jmb/003/personal2/admin.php?admin=article_edit&id=2http://127.0.1.3/jmb/003/personal2/admin.php?admin=article_addhttp://127.0.1.3/jmb/003/personal2/admin.php?admin=article&do=add
另外查看Url也是一种解决问题的方法;牢记~~~
7.程序优化:
一切要用到的变量都要用$id = isset($_GET['id'])?intval($_GET['id']):0;方式书写;
网站的程序哪些地方是重复的,可以合并为一个控制器。
8.如果有错误提示是没用定义的变量,就用一些if($_post)来判断是否接收到了;
if($_POST) {
$classid = $_POST['classid'];
$title = $_POST['title'];
$content = $_POST['content'];//debug
$sql = "INSERT INTO `dev_personal`.`article` (`id`, `classid`, `title`, `content`, `lasttime`, `count`) VALUES (NULL, '".$classid."', '".$title."', '".$content."', now(), 0);";
}
————————————————————————————————————————————
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
$yes = isset($_GET['yes']) ? intval($_GET['yes']) : 0;
if($yes){//------------------------切记----------
- mvc建站心得
- MVC心得
- MVC---Mediator,Proxy心得
- mvc初试心得【鸡蛋】
- Spring MVC 使用心得
- MVC模式心得
- MVC开发中的工作心得
- 心得12--MVC设计模式
- MVC Html.BeginForm 使用心得
- Jqgrid+spring mvc使用心得
- Spring MVC 环境配置心得
- 建站心得
- 我的读书心得——mvc
- MVC---张国亮总结心得第一季
- 关于 MVC API 控制器一点心得
- Spring mvc 拦截器 配置心得
- 使用phpnuke建站心得
- WordPress企业建站心得
- VMWare不能安装64位操作系统原因探析
- 逻辑数据库PCH常用的评估路径(Evaluation path)及对界面上评估路径选择的隐藏
- 关于printopia
- 【基础知识】数组和枚举
- [转]Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- mvc建站心得
- WebMVC架构图
- 如何通过代码判断某个ip是否有效
- 单例模式(Singleton)的6种实现
- MFC一些宏消息以及一些控件操作
- 页面滚动动态加载数据,页面下拉自动加载内容
- Python strip lstrip rstrip使用方法(字符串处理空格)
- tableview中cell的设置
- python 中用SWIG包装C和C++和接口