×

ci框架

CI框架某个方法不加载公共的头部怎么做?CI框架中如何使用验证码

admin admin 发表于2023-12-05 08:16:12 浏览34 评论0

抢沙发发表评论

大家好,如果您还对ci框架不太了解,没有关系,今天就由本站为大家分享ci框架的知识,包括CI框架某个方法不加载公共的头部怎么做的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

CI框架某个方法不加载公共的头部怎么做

我们在做web编程的过程中,为了减少一些公共的部分重复引用和代码过多的冗余,我们通常会使用include的方式来进行引入,在HTML中也可以实现相应的功能,有兴趣可以查看: 在html文件中引入另一个html文件 .本文主要介绍使用CI框架实现头部和底模板的功能:views-》include---------footer.php---------header.php 我们首页需要创建一个template.php文件,里面写上如下代码:《?php $this-》load-》view(’include/header’); $this-》load-》view($content_text); $this-》load-》view(’include/footer’); 在Controller里面用变量把View名称存储起来,然后调用。public function index(){ $data = ’home’; $this-》load-》view(’template’,$data);}public function add(){ $data = ’addcategory’; $this-》load-》view(’template’,$data);}

CI框架中如何使用验证码

和其他的一样,你先把登录成功信息,用户名,保存在sesion,当然可以保存在cisession但是是cookie,记得加密,跳转以后,判断sesion值是不是存在用户名,登录成功没就可以了,记得是并||

ci框架提示 Call to undefined function error_get_last()如何解决

你的PHP版本是多少的?

error_get_last这个方法是PHP5.2以上版本才支持的,

你的PHP版本太低造成的,

如果不想改,可以在Common.php里加一句:

if ( ! function_exists(’error_get_last’)){    function error_get_last(){    }}

CI框架怎么引外部的CSS和JS文件

以CI框架使用2.0版本为例:

我们下载解压后就看到如下文件目录:

这里要注意一下:如果你使用版本较低的话,目录结构就不这样的了,不过不影响我们。

 1  我们将application、system、index.php 上传到网站根目录下。

 2  我们再在根目录下新建一个目录“resources” 来专门存放我们CSS、JS、image等资源(这里资源目录的结构可自行定义,我这里为了做演示,只是简单处理)。

这里css、JS等是不能放到application、system目录的(有网友就这么做)。 因为出于安全原因(或者MVC模式) 这里目录是只不能直接通过URL形式访问到的,这些目录里有一个..htaccess 文件,里包含一句代码:“Deny from all”。就是此命令阻止用户直接访问这些目录。

3  我们在 resources 目录里添加一个文件:ajax.js。 这样我们在VIEW层中的文件为index.html引入JS时,如下方式: 

《script type="text/javascript" src="url/ajax.js’?》"》《/script》

注这里url是你的网站绝对URL。

另外:

1 使用 BASE_URL() 函数

当然为了可维护性,你也可以用CI自带的BASE_URL来设置,如下:

1)  首先进入 application/config/config.php文件,在config.php文件中设置base_url:

***隐藏网址***

2) 导入 BASE_URL()函数

   base_url()函数是helper 函数,需要导入才能使用。

  可以在控制器里如下导入:

 $this-》load-》helper(’url’);

或者在config/autoload.php 文件里自动导入

/*| -------------------------------------------------------------------|  Auto-load Helper Files| -------------------------------------------------------------------| Prototype:||    $autoload = array(’url’, ’file’);*/$autoload = array(’url’);

3) 然后进入VIEW层中具体页面中引入即可:

《script type="text/javascript" src=’《?=base_url().’resources/Ajax.js’?》’》《/script》

2 隐藏了url中的index.php文件、使用URL重写规则时。当然我们有时为了URL SEO方面考虑,会将index.php 隐藏起来,即让URL重写。但要注意像CSS、JS等这些资源是要排除掉的。

   我们在网站根目录里放入.htaccess文件,内容为:

       RewriteEngine on           RewriteCond $1 !^(index\.php|resources|robots\.txt)    #在这里写要排除的资源等       RewriteRule ^(.*)$ index.php/$1 

 也就是说:当用户访问resources目录、robots.txt文件时都不重定向到index.php, 其它一律重定向到index.php。

3  还是无效果?浏览器访问一下。

    如果以上都OK后,还没有效果的话。就要看看JS、CSS是否引入进来了。你可以直接访问一下JS URL看是否有内容。

如何让CI框架支持service层

(1)让CI能够加载service,service目录放在application下,因为CI系统没有service,则在application/core下新建扩展MY_Service.php复制代码代码如下:《?phpclass MY_Service{ public function __construct() { log_message(’debug’, "Service Class Initialized"); } function __get($key) { $CI = & get_instance(); return $CI-》$key; }}(2)扩展CI_Loader实现,加载service,在application/core下新建MY_Loader.php文件:复制代码代码如下:《?phpclass MY_Loader extends CI_Loader{ /** * List of loaded sercices * * @var array * @access protected */ protected $_ci_services = array(); /** * List of paths to load sercices from * * @var array * @access protected */ protected $_ci_service_paths = array(); /** * Constructor * * Set the path to the Service files */ public function __construct() { parent::__construct(); $this-》_ci_service_paths = array(APPPATH); } /** * Service Loader * * This function lets users load and instantiate classes. * It is designed to be called from a user’s app controllers. * * @param string the name of the class * @param mixed the optional parameters * @param string an optional object name * @return void */ public function service($service = ’’, $params = NULL, $object_name = NULL) { if(is_array($service)) { foreach($service as $class) { $this-》service($class, $params); } return; } if($service == ’’ or isset($this-》_ci_services)) { return FALSE; } if(! is_null($params) && ! is_array($params)) { $params = NULL; } $subdir = ’’; // Is the service in a sub-folder? If so, parse out the filename and path. if (($last_slash = strrpos($service, ’/’)) !== FALSE) { // The path is in front of the last slash $subdir = substr($service, 0, $last_slash + 1); // And the service name behind it $service = substr($service, $last_slash + 1); } foreach($this-》_ci_service_paths as $path) { $filepath = $path .’service/’.$subdir.$service.’.php’; if ( ! file_exists($filepath)) { continue; } include_once($filepath); $service = strtolower($service); if (empty($object_name)) { $object_name = $service; } $service = ucfirst($service); $CI = &get_instance(); if($params !== NULL) { $CI-》$object_name = new $service($params); } else { $CI-》$object_name = new $service(); } $this-》_ci_services = $object_name; return; } }}

ci 框架 自定义验证码类库怎么用

class Verify {protected $config = array(’seKey’ =》 ’ThinkPHP.CN’, // 验证码加密密钥’codeSet’ =》 ’2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY’, // 验证码字符集合’expire’ =》 1800, // 验证码过期时间(s)’useZh’ =》 false, // 使用中文验证码’zhSet’ =》 ’们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这主中人上为来分生对于学下级地个用同行面说种过命度革而多子后自社加小机也经力线本电高量长党得实家定深法表着水理化争现所二起政三好十战无农使性前等反体合斗路图把结第里正新开论之物从当两些还天资事队批点育重其思与间内去因件日利相由压员气业代全组数果期导平各基或月毛然如应形想制心样干都向变关问比展那它最及外没看治提五解系林者米群头意只明四道马认次文通但条较克又公孔领军流入接席位情运器并飞原油放立题质指建区验活众很教决特此常石强极土少已根共直团统式转别造切九你取西持总料连任志观调七么山程百报更见必真保热委手改管处己将修支识病象几先老光专什六型具示复安带每东增则完风回南广劳轮科北打积车计给节做务被整联步类集号列温装即毫知轴研单色坚据速防史拉世设达尔场织历花受求传口断况采精金界品判参层止边清至万确究书术状厂须离再目海交权且儿青才证低越际八试规斯近注办布门铁需走议县兵固除般引齿千胜细影济白格效置推空配刀叶率述今选养德话查差半敌始片施响收华觉备名红续均药标记难存测士身紧液派准斤角降维板许破述技消底床田势端感往神便贺村构照容非搞亚磨族火段算适讲按值美态黄易彪服早班麦削信排台声该击素张密害侯草何树肥继右属市严径螺检左页抗苏显苦英快称坏移约巴材省黑武培著河帝仅针怎植京助升王眼她抓含苗副杂普谈围食射源例致酸旧却充足短划剂宣环落首尺波承粉践府鱼随考刻靠够满夫失包住促枝局菌杆周护岩师举曲春元超负砂封换太模贫减阳扬江析亩木言球朝医校古呢稻宋听唯输滑站另卫字鼓刚写刘微略范供阿块某功套友限项余倒卷创律雨让骨远帮初皮播优占死毒圈伟季训控激找叫云互跟裂粮粒母练塞钢顶策双留误础吸阻故寸盾晚丝女散焊功株亲院冷彻弹错散商视艺灭版烈零室轻血倍缺厘泵察绝富城冲喷壤简否柱李望盘磁雄似困巩益洲脱投送奴侧润盖挥距触星松送获兴独官混纪依未突架宽冬章湿偏纹吃执阀矿寨责熟稳夺硬价努翻奇甲预职评读背协损棉侵灰虽矛厚罗泥辟告卵箱掌氧恩爱停曾溶营终纲孟钱待尽俄缩沙退陈讨奋械载胞幼哪剥迫旋征槽倒握担仍呀鲜吧卡粗介钻逐弱脚怕盐末阴丰雾冠丙街莱贝辐肠付吉渗瑞惊顿挤秒悬姆烂森糖圣凹陶词迟蚕亿矩康遵牧遭幅园腔订香肉弟屋敏恢忘编印蜂急拿扩伤飞露核缘游振操央伍域甚迅辉异序免纸夜乡久隶缸夹念兰映沟乙吗儒杀汽磷艰晶插埃燃欢铁补咱芽永瓦倾阵碳演威附牙芽永瓦斜灌欧献顺猪洋腐请透司危括脉宜笑若尾束壮暴企菜穗楚汉愈绿拖牛份染既秋遍锻玉夏疗尖殖井费州访吹荣铜沿替滚客召旱悟刺脑措贯藏敢令隙炉壳硫煤迎铸粘探临薄旬善福纵择礼愿伏残雷延烟句纯渐耕跑泽慢栽鲁赤繁境潮横掉锥希池败船假亮谓托伙哲怀割摆贡呈劲财仪沉炼麻罪祖息车穿货销齐鼠抽画饲龙库守筑房歌寒喜哥洗蚀废纳腹乎录镜妇恶脂庄擦险赞钟摇典柄辩竹谷卖乱虚桥奥伯赶垂途额壁网截野遗静谋弄挂课镇妄盛耐援扎虑键归符庆聚绕摩忙舞遇索顾胶羊湖钉仁音迹碎伸灯避泛亡答勇频皇柳哈揭甘诺概宪浓岛袭谁洪谢炮浇斑讯懂灵蛋闭孩释乳巨徒私银伊景坦累匀霉杜乐勒隔弯绩招绍胡呼痛峰零柴簧午跳居尚丁秦稍追梁折耗碱殊岗挖氏刃剧堆赫荷胸衡勤膜篇登驻案刊秧缓凸役剪川雪链渔啦脸户洛孢勃盟买杨宗焦赛旗滤硅炭股坐蒸凝竟陷枪黎救冒暗洞犯筒您宋弧爆谬涂味津臂障褐陆啊健尊豆拔莫抵桑坡缝警挑污冰柬嘴啥饭塑寄赵喊垫丹渡耳刨虎笔稀昆浪萨茶滴浅拥穴覆伦娘吨浸袖珠雌妈紫戏塔锤震岁貌洁剖牢锋疑霸闪埔猛诉刷狠忽灾闹乔唐漏闻沈熔氯荒茎男凡抢像浆旁玻亦忠唱蒙予纷捕锁尤乘乌智淡允叛畜俘摸锈扫毕璃宝芯爷鉴秘净蒋钙肩腾枯抛轨堂拌爸循诱祝励肯酒绳穷塘燥泡袋朗喂铝软渠颗惯贸粪综墙趋彼届墨碍启逆卸航衣孙龄岭骗休借’, // 中文验证码字符串’useImgBg’ =》 false, // 使用背景图片’fontSize’ =》 25, // 验证码字体大小(px)’useCurve’ =》 true, // 是否画混淆曲线’useNoise’ =》 true, // 是否添加杂点’imageH’ =》 0, // 验证码图片高度’imageW’ =》 0, // 验证码图片宽度’length’ =》 5, // 验证码位数’fontttf’ =》 ’’, // 验证码字体,不设置随机获取’bg’ =》 array(243, 251, 254), // 背景颜色’reset’ =》 true, // 验证成功后是否重置); private $_image = NULL; // 验证码图片实例private $_color = NULL; // 验证码字体颜色private $code = null; //验证码 /*** 架构方法 设置参数* @access public* @param array $config 配置参数*/public function __construct($config=array()){$this-》config = array_merge($this-》config, $config);} /*** 使用 $this-》name 获取配置* @access public* @param string $name 配置名称* @return multitype 配置值*/public function __get($name) {return $this-》config;}

用php的CI框架怎么写登录和注册

第一步:login.php //登陆方法 public function login(){ //如果用户名和密码为空,则返回登陆页面 if(empty($_POST)){ $data = rand(1000,9999);//生成一个四位数字的验证码 //将验证码放入session中,注意:参数是数组的格式 $this-》session-》set_userdata($data); //注意:CI框架默认模板引擎解析的模板文件中变量不需要$符号 //$this-》parser-》parse("admin/login",$data); //smarty模板变量赋值 $this-》tp-》assign("verifycode",$data); //ci框架在模板文件中使用原生态的PHP语法输出数据 //$this-》load-》view(’login’,$data);//登陆页面,注意:参数2需要以数组的形式出现 //显示smarty模板引擎设定的模板文件 $this-》tp-》display("admin/login.php"); }else{ $username = isset($_POST):’’;//用户名 $password = isset($_POST):’’;//密码 $verifycode = isset($_POST):’’;//验证码 //做验证码的校验 if($verifycode == $this-》session-》userdata(’verifycode’)){ //根据用户名及密码获取用户信息,注意:参数2是加密的密码 $user_info=$this-》user_model-》check_user_login($username,md5($password)); if($user_info 》 0){ //将用户id、username、password放入cookie中 //第一种设置cookie的方式:采用php原生态的方法设置的cookie的值 //setcookie("user_id",$user_info,86500); //setcookie("username",$user_info,86500); //setcookie("password",$user_info,86500); //echo $_COOKIE; //第二种设置cookie的方式:通过CI框架的input类库 $this-》input-》set_cookie("username",$user_info,3600); $this-》input-》set_cookie("password",$user_info,3600); $this-》input-》set_cookie("user_id",$user_info,3600); //echo $this-》input-》cookie("password");//适用于控制器 //echo $this-》input-》cookie("username");//适用于控制器 //echo $_COOKIE;//在模型类中可以通过这种方式获取cookie值 //echo $_COOKIE;//在模型类中可以通过这种方式获取cookie值 //第三种设置cookie的方式:通过CI框架的cookie_helper.php函数库文件 //这种方式不是很灵验,建议大家采取第二种方式即可 //set_cookie("username",$user_info,3600); //echo get_cookie("username"); //session登陆时使用:将用户名和用户id存入session中 //$data; //$data; //$this-》session-》set_userdata($data); //跳转到指定页面 //注意:site_url()与base_url()的区别,前者带index.php,后者不带index.php header("location:".site_url("index/index")); } }else{ //跳转到登陆页面 header("location:".site_url("common/login")); } } } } 第二步:User_model.php//cookie登陆:检测用户是否登陆,如果cookie值失效,则返回false,如果cookie值未失效,则根据cookie中的用户名和密码从数据库中获取用户信息,如果能获取到用户信息,则返回查询到的用户信息,如果没有查询到用户信息,则返回0 public function is_login(){ //获取cookie中的值 if(empty($_COOKIE)){ $user_info = false; }else{ $user_info=$this-》check_user_login($_COOKIE); } return $user_info; } //根据用户名及加密密码从数据库中获取用户信息,如果能获取到,则返回获取到的用户信息,否则返回false,注意:密码为加密密码 public function check_user_login($username,$password){ //这里大家要注意:$password为md5加密后的密码 //$this-》db-》query("select * from "); //快捷查询类的使用:能为我们提供快速获取数据的方法 //此数组为查询条件 //注意:关联数组 $arr=array( ’username’=》$username,//用户名 ’password’=》$password,//加密密码 ’status’=》1 //账户为开启状态 ); //在database.php文件中已经设置了数据表的前缀,所以此时数据表无需带前缀 $query = $this-》db-》get_where("users",$arr); //返回二维数组 //$data=$query-》result_array(); //返回一维数组 $user_info=$query-》row_array(); if(!empty($user_info)){ return $user_info; }else{ return false; } } 第三步:其它控制器:public function __construct(){ //调用父类的构造函数 parent::__construct(); $this-》load-》library(’tp’); //smarty模板解析类 $this-》load-》helper(’url’); //url函数库文件 $this-》load-》model("user_model");//User_model模型类实例化对象 $this-》cur_user=$this-》user_model-》is_login(); if($this-》cur_user === false){ header("location:".site_url("common/login")); }else{ //如果已经登陆,则重新设置cookie的有效期 $this-》input-》set_cookie("username",$this-》cur_user,3600); $this-》input-》set_cookie("password",$this-》cur_user,3600); $this-》input-》set_cookie("user_id",$this-》cur_user,3600); } $this-》load-》library(’pagination’);//分页类库 $this-》load-》model("role_model");//member_model模型类 $this-》load-》model("operation_model");//引用operation_model模型 $this-》load-》model("object_model");//引用object_model模型 $this-》load-》model("permission_model");//引用permission_model模型 }

用CI框架做用户登录验证, 控制器中怎么给ajax返回数组

VIEW层模板上submit递交时触发用jquery ajax post对用的参数信息到验证控制器页面,//前端viewajax$(document).ready(function(){ $("#submit").click(function(){ htmlobj=$.ajax({url:"/check.php",async:false}); $("#myDiv").html(htmlobj.responseText); });});//后端登陆验证页面check.php$data = $REQUEST;//验证数据check($data);//函数里面主要涉及密码用户匹配,以及用户名是否合法function check($data ){//查询数据库用户$user = getUser($data);if($user&&$data){retun 1;}else{return 0}}

php的ci框架CodeIgniter目录的规划问题

阁下需要在使用框架,那么就要把项目里的第一个程序都放在框架架构之中,而不能在根目录下新建一个admin.php。阁下应该知晓,CI框架的入口文件是index.php,里面的任何页面都应该基于这个入口文件,即访问路径永远是index.php/*****这样的形式,而不能单独出来一个admin.php,这样的话,没有通过入口文件访问了,那么框架的效用也就没有了。所以,阁下应该在application里的controllers目录下建一个admin.php,并按CI框架控制器的规则来使用它,这样,访问路径就是index.php/admin这样了当然,阁下会以为所有的URL中都有一个index.php非常难看,那么阁下可以通过CI框架的路由规则将之隐藏掉,也可以使用服务器的伪静态功能来隐藏掉。但也仅是隐藏了而已,实际路径仍然有index.php这个入口文件。

php ci框架怎么利用session在页面跳转后判断用户是否登录

和其他的一样,你先把登录成功信息,用户名,保存在sesion,当然可以保存在ci session但是是cookie,记得加密,跳转以后,判断sesion值是不是存在用户名,登录成功没就可以了,记得是并||

OK,关于ci框架和CI框架某个方法不加载公共的头部怎么做的内容到此结束了,希望对大家有所帮助。