站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
HDWiki/运行机制和原理
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{HDWiki top}} ==基本原理== [[HDwiki]]是基于[[URL]][[编程]]的方式。 HDwiki运行机制和原理很简单,一句话:通过传入特定的URL以分发给相应的控制器中某个函数进行处理,最后将控制器处理后信息呈现于所包含的视图中。 在[[WEB]]开发中,主要工作无外呼是显示页面和提交表单这两个工作。因此控制器通过URL访问来确定显示页面,得到信息后那么只需要显示的视图”。而处理表单只需要处理完后重定向或者输出某个信息。 为了最简单完成[[MVC]]模式开发的要求,在开发过程中,需要遵循3个规则: 1、URL中都必须带有两个参数 ,分别是control和method,用于表明改URL将由哪一控制器及方法处理 2、表单提交中的参数统一被处理,防[[SQL]]注入等,在一个control的方法里面不能带用$_POST或$_GET。如果要访问表单提交的参数,则通过$this->post['username']或 $this->get[3]类似的形式。 3、控制器类的文件名定义了控制器能做到事情,如user.php,表示这个是和用户相关的控制器,所以注册登录等都应该写道user.php里面。这里框架设计的时候,考虑到不需要控制器去调用控制器,所以所有的控制器的类名都是相同,名字就叫做 control 另外注意[[linux]]下区分大小写,建议统一使用小写. ==HDwiki运行机制和原理== index.php文件中有两个参数control和method,此两个参数会交由../model/HDwiki.class.php文件以分发到user控制器中的doregister方法,也就是说control和method用来指定哪一控制器和控制器中的那个方法处理。最后将处理后的数据显示到view下view/default/register.htm中. ===如何找到HDwiki相关代码=== 当大家想改动某个功能的[[代码]]的时候,一定要先看清这个功能的URL。 例如:浏览词条的URL为 :doc-view-1 那么,说明这个浏览词条的相关代码在 control/doc.php 里面的 doview方法。 其中URL中的第一段为doc,表明代码在 control/doc.php 里面,第二段为view,表示调用的方法是 doview 再如:百科分类的URL为:category.html 其中URL中的第一段为category,表明代码在 control/category.php 里面,第二段为空,表示调用的方法是默认方法 dodefault 例子:想改动后台seo设置的代码 后台的[[SEO]]设置的url为:index.php?admin_setting-seo 那么,你就找到 control/admin_setting.php 这个文件 然后 查找 function doseo() 这个里面的代码就是你需要改动的地方。 ==开发实例== 步骤: (1)、建立注册的模板页面 view\default\register.htm (2)、 打开control目录,建立一个文件user.php,代码内容如下: <pre> <?php !defined('IN_HDwiki') && exit('Access Denied'); class control extends base{ function control(& $get,& $post){ $this->base( & $get,& $post); $this->load('user'); } function doregister() { if(!isset($this->post['submit'])){ $this->view->display('register'); exit; } $user_nick=$this->post['nick_name']; $password=$this->post['password']; $this->post['re_password']; $email=$this->post['email_addr']; $_ENV['user']->add_user($user_nick, $password, $email); echo '恭喜 <b>'.$user_nick.'</b> 注册成功!'; } } ?> </pre> (3)、打开model目录,建立一个文件user.class.php ,代码内容如下: <pre> <?php !defined('IN_HDwiki') && exit('Access Denied'); class usermodel { var $db; var $base; function usermodel(&$base) { $this->base = $base; $this->db = $base->db; } function add_user($user_nick, $password, $email) { $password = md5($password); $user_nick_upper=strtoupper($user_nick); $this->db->query(" INSERT INTO ".DB_TABLEPRE."user(user_email,user_nick,user_nick_upper,user_password) values ('$email','$user_nick','$user_nick_upper','$password') "); return $this->db->insert_id(); } } ?> </pre> (4)访问: <nowiki>http://127.0.0.1/HDwiki/index.php?user-register</nowiki> 即可看到效果 ==注意事项== 在control中获得页面提交的参数共有两种方法: 1、$this->get[2]; //获取get方式的参数,按照数字序号 2、$this->post['username']; //获取post的参数,按照表单名字 ==相关调用代码== 1、获取ip $this->ip; 2、获取设置参数 $this->setting['site_name']; 3、获得当前用户 $this->user; 4、获得语言文件变量 $this->view->lang['adduserSuccess']; 5、页面上需要显示时间的时候,请注意,需要调用date方法 <pre> while($user=$this->db->fetch_array($query)){ $user['lasttime']=$this->date($user['lasttime']); $user['regtime']=$this->date($user['regtime']); $userlist[]=$user; }</pre> ==参考来源== http://kaiyuan.hudong.com/ {{HDWIKI}} [[category:HDWiki|Y]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:HDWIKI
(
编辑
)
模板:HDWiki top
(
编辑
)