




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Cakephp 入门一、 环境设置和安装1、 环境设置Cakephp的url传参数的时候不是用平常的get格式,而是用controller action名后面的“/”分隔的字符作为这个controller action的参数(action是一个函数)。也因为这样,需要apache服务器支持rewrite,只要加载rewrite模块就行了在httpd.conf里加入LoadModule rewrite_module modules/mod_rewrite.so,至于加在那一行,我想最好加在类似的LoadModule xxx附近吧。其它的和普通的php环境没有区别。2、 安装从cakephp的官方网站( )下载一个最新版本(目前的版本号是427),解压后把app、cake、vendors、.htaccess(linux下要注意了,这是隐藏文件),index.php复制或剪切到apache服务器的documentroot或者它下面的某个目录,我这里假设放在cake目录下,以后也这样。接下来就是设置数据库了,进入app/config/目录,把database.php.default重命名为database.php,打开这个文件就可以看到关于数据库用户名密码之类的设置了,里面的注释说得很清楚。3、 测试打开/cake,看到“Cake is able to connect to the database”的提示基本大功告成了。还出问题的话就要具体问题具体处理了,反正这里想象不出来。二、 用户登录的简单例子1、 功能用户注册和验证用户登录,登录后可以修改自己的资料。2、 数据库,暂时只有一个users表,包含“用户名”、“密码”、“email”、“年龄”、“个人网站”: CREATE TABLE users ( id int(8) NOT NULL auto_increment, name varchar(30) collate latin1_general_ci default NULL, password varchar(100) collate latin1_general_ci default NULL, email varchar(50) collate latin1_general_ci default NULL, age int(3) default NULL, website varchar(50) collate latin1_general_ci default NULL, PRIMARY KEY (id) )3、 创建Model在app/models下创建user.php文件,代码如下:class user extends AppModel var $name=user;可以看出model要继承AppModel,$name属性是用来查找数据库中对于的表的,同时作为表数组在controller中$this-data的key。4、 创建test controller在app/controllers下创建user_controller.php,代码如下:class UserController extends AppController var $name=user;var $helpers = array(Html, Form );var $layout=;function test($strFromUrl)$this-set(testStr,这是测试字符串);$this-set(strFromUrl,网址参数:.$strFromUrl)$name属性决定了对应的view文件在app/views下的目录名,helpers加载在view里用到的helper,方便用来生成html,layout是这个model的网页布局,可以在方法里动态改变,这里使用了空布局,因为默认的不怎么好看,还会扰乱新手视线。里面的任何方法代表这个controller的一个操作,test将在后面用来测试5、 创建test view在app/views创建user目录,这个目录将存放所有user的view文件,view文件是标准的php文件,不过扩展名要改为thtml。这里先建一个test.thtml小探一下,对应于上面UserController的test方法。test.thtml的代码如下:?phpecho $testStr;echo ;echo $strFromUrl?仅仅输出controller的test方法传过来的testStr和strFromUrl变量,其中strFromUrl包含了网址传过来的参数。现在打开/cake/user/test/这个是参数 ,就可以看到效果了。6、 创建注册页面在UserController里加入register函数,代码如下:function register()if(!empty($this-data)$this-cleanUpFields();if($this-User-save($this-data)$this-Session-setFlash(注册成功);表单提交的数据会放在controller中的$this-data里,$this-User是user model的对象,save是一个model方法,用来保存数据。在这里get和post依然有效。具体参照model的api文档。创建注册页面的view文件app/views/user/register.thtml,代码如下:用户注册信息用户名input(,array(label=false); ?密码password(user.password); ?确认密码password(user.password2);?Emailinput(user.email,array(label=false); ?年龄input(user.age,array(label=false); ?个人主页input(user.website,array(label=false); ?submit(注册);?这里的$form是就是controller里$helpers = array(Html, Form )的Form helper的对象,用来生产html代码。其中$form-input(,array(label=false,)生成的代码如下:,具体看api吧。这里的user对应于model中的name,这样就可以直接用save之类的方法保存或作为查询条件。现在打开/cake/user/register 注册一个用户7、 创建登录页面在UserController里加入一个login方法,代码如下:function login()$this-set(error,false);if($this-data)$user=$this-User-find($this-data);if($user)$this-Session-write(login,array(id=$useruserid,name=$userusername);$this-redirect(viewinfo);else$this-set(error,用户名不存在或密码错误);直接用用户名和密码查询用户,如果这个用户存在就写session,并跳转到用户信息页面,没有就警告。在创建login的view文件app/views/user/login.thtml,代码如下:用户登录用户名input(,array(label=false); ?密码input(user.password,array(label=false); ?submit(登录);?8、 创建用户信息页面首先在UserController里加入viewinfo方法,如下:function viewinfo()if($login=$this-Session-read(login)$this-data=$this-User-read(null,$loginid);else$this-redirect(login);这里先判断用户有没有登录,有就读出用户的信息,没有就跳到登录页面。接着是查看用户信息的view app/views/user/viewinfo.thtml,如下:用户资料用户名value(); ?密码value(user.password); ?Emailvalue(user.email); ?年龄value(user.age); ?个人主页value(user.website); ?同样的方法做编辑用户信息的页面,在UserController里加editinfo方法,如下:function editinfo()if($login=$this-Session-read(login)if(empty($this-data)$this-data=$this-User-read(null,$loginid);else$this-datauserid=$loginid;/防止修改了别的数据$this-User-save($this-data);else$this-redirect(login);也是先判断有没有登录,没有就跳到登录页面;有的话先判断有没有提交数据,有提交数据就保存,没有就从数据库中读出。编辑用户信息的view文件 app/views/user/editinto.thtml如下:用户注册信息用户名input(,array(label=false); ?密码password(user.password); ?Emailinput(user.email,array(label=false); ?年龄input(user.age,array(label=false); ?个人主页input(user.website,array(label=false); ?submit(保存);?最后还需要注销,在UserController里加入logout方法,如下:function logout()$this-Session-delete(login);$this-redirect(login);这里注销后直接跳到login页面,就不需要view了。现在重新注册一个用户并登录试试吧。9、 创建layoutlayout其实就是一个包含头、脚和通用菜单但缺少我们刚才创建的主体内容的html页面。没有layout的页面很难看,现在创建一个吧。在app/view/layouts下创建caketest.thtml文件,代码如下:lifloat:left;border-left:1px solid #654321;padding:0 10px 0 10pxli acolor:#654321;text-decoration:noneli a:hovercolor:orangeinputwidth:120px;height:20pxtabletext-align:leftlink(查看用户信息,/use
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息技术审计优化策略-洞察及研究
- 中医药在运动损伤康复中的作用-洞察及研究
- 供应链人才需求结构分析-洞察及研究
- 医疗大数据隐私保护技术-第1篇-洞察及研究
- 浸字演变过程课件
- 2025安置房买卖版合同协议
- 2025年教师招聘之《小学教师招聘》题库高频难、易错点100题模拟试题附答案详解【典型题】
- 衣柜电脑桌买卖合同6篇
- 2025年排球1理论考试题及答案
- 君乐宝酸奶订购协议2篇
- 2025中国农业科学院棉花研究所第二批招聘7人备考考试题库附答案解析
- 2025-2026学年人教版PEP英语二年级上册教学计划(三篇)
- 2025年秋季学期教科版二年级上册科学教学计划(三篇)
- 买家赎楼签协议签合同
- (2025年标准)整容医师聘用协议书
- 2024版风力发电站智能运维与远程监控合同3篇
- 不一样的卡梅拉2-我想有颗星星幼儿绘本
- 希望杯数学竞赛小学三年级试题
- 高分子化学6离子聚合阳离子
- NB_T 10337-2019《水电工程预可行性研究报告编制规程》_(高清最新)
- 环保节能供热锅炉项目建议书范文
评论
0/150
提交评论