标签: codeigniter

销毁Code Igniter中的特定会话

工作人员注意:此问题及相关答案已锁定,以防止围绕与当前问题相关的当前事件进行主题讨论.有关此活动的 问题可以在我们的meta网站上找到.谢谢!

我希望能够将用户从我在Code Igniter中构建的应用程序中注销.

我知道如何结束活动的本地会话:

$this->session->sess_destroy();
Run Code Online (Sandbox Code Playgroud)

但是,如何销毁在另一台计算机上启动的会话,从而将用户从会话中注销?

我在会话数据中存储了与其帐户关联的唯一ID,因此我可以在数据库的会话表中看到它,但它与其他会话数据一起存储在名为user_data的列中,其内容看起来像这个:

a:4:
{s:9:"user_data";s:0:"";s:6:"userid";s:6:"189034";s:9:"logged_in";b:1;s:5:"token";i:1767727789;}
Run Code Online (Sandbox Code Playgroud)

189034用户的ID 在哪里.

那么,有没有办法以某种方式根据用户的id选择会话表中的行,然后删除该行并销毁会话.或者还有另一种方法可以完全做到这一点吗?

session codeigniter destroy

43
推荐指数
2
解决办法
4万
查看次数

使用空格访问类属性

stdClass Object ([Sector] => Manufacturing [Date Found] => 2010-05-03 08:15:19)

所以我可以[Sector]通过使用访问,$object->Sector但我如何访问[Date Found]

php oop codeigniter properties class

42
推荐指数
3
解决办法
1万
查看次数

如何运行CodeIgniter迁移?

我知道如何通过http://codeigniter.com/user_guide/libraries/migration.html创建它们

但是,一旦我创建了我的迁移文件,我该如何运行它们?

migration codeigniter codeigniter-2

42
推荐指数
3
解决办法
4万
查看次数

致命错误:在第5行的C:\ wamp\www\Test-CI\application\views\layout.php中调用未定义的函数base_url()

你好我是CodeIgniter和PHP的新手,我试图在第一次设置它,但它给出了以下错误.

致命错误:调用未定义的函数base_url()

  1. 第5行的C:\ wamp\www\Test-CI\application\views\layout.php
     
  2. {main}()IN ..\index.php:0 require_once('C:\ wamp\www\Test-CI\system\core\CodeIgniter.php')IN ..\index.php:202

  3. call_user_func_array()IN ..\CodeIgniter.php:359

  4. CodeGo.net> index()IN ..\CodeIgniter.php:0

  5. CI_Loader-> view()IN ..\home.php:17

  6. CI_Loader - > _ ci_load()IN ..\Loader.php:419

  7. include('C:\ wamp\www\Test-CI\application\views\layout.php')IN ..\Loader.php:833

我的代码:

 <html>
    <head>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8">
        <title>Galleriffic | Custom layout with external controls</title>
        <link rel="stylesheet" href="<?php base_url(); ?>/assets/css/basic.css" type="text/css" />
        <link rel="stylesheet" href="<?php base_url(); ?>/assets/css/galleriffic-5.css" type="text/css" />

        <!-- <link rel="stylesheet" href="<?php base_url(); ?>/assets/css/white.css" type="text/css" /> -->
        <link rel="stylesheet" href="<?php base_url(); ?>/assets/css/black.css" type="text/css" />

        <script type="text/javascript" src="<?php base_url(); ?>/assets/js/jquery-1.3.2.js"></script>
        <script type="text/javascript" src="<?php base_url(); …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

42
推荐指数
5
解决办法
18万
查看次数

如何在javascript中获取基本URL

我正在使用CodeIgniter构建一个网站,我有各种资源,我使用base_url帮助函数加载,就像这样

<link rel="stylesheet" type="text/css" href="'.base_url('assets/css/themes/default.css').'" id="style_color"/>

生产(即www.mysite.com)

<link rel="stylesheet" type="text/css" href="http://www.mysite.com/assets/css/themes/default.css" id="style_color"/>

然后,我可以在这样的javascript中将此资源与另一个交换

$('#style_color').attr("href", "assets/css/themes/" + color_ + ".css");

会发生什么事情,它会尝试加载资源而不使用php生成的绝对路径,所以我的解决方案是在每个页面添加一个虚拟标签,像这样的PHP

<div id="base_url" class="'.base_url().'"></div>

然后我修改了javascript行

$('#style_color').attr("href", $('#base_url').attr("class") + "assets/css/themes/" + color_ + ".css");

它确实有效,但它看起来并不优雅,所以,我将不胜感激如何在javascript或任何其他解决方案中生成这个基本网址,谢谢:)


我更喜欢仅使用Javascript的解决方案,因为我使用的是CodeIgniter,一个document.base_url带有url段的变量protocol从而index.php显得很方便

document.base_url = base_url('index.php');

功能base_url()正在

function base_url(segment){
   // get the segments
   pathArray = window.location.pathname.split( '/' );
   // find where the segment is located
   indexOfSegment = pathArray.indexOf(segment);
   // make base_url be the origin plus …
Run Code Online (Sandbox Code Playgroud)

html javascript css php codeigniter

42
推荐指数
5
解决办法
15万
查看次数

Codeigniter 3.x认证库?

使用新的Codeigniter 3.0版本,您使用哪些身份验证库?

  • Flexi auth非常好,非常强大,有很好的CI 2.0文档,但它已经很老了,我可以看到它已停止使用.当然,它不能与CI 3.0一起使用.我已经测试了它并尝试将其迁移到CI 3.0,但是因为它使用了旧的ci_sessions模式,我看到它有很多工作需要重写所有使用会话的代码部分.它似乎适用于文件会话和其代码的一些更改.
  • 社区auth有一个CI 3.0版本,但正如我所看到的,它有很多错误,而且目前还远远不够可靠.我已经彻底测试了它,它无法正常工作,因为它的令牌jar系统及其cookie管理存在问题.用户无法在大多数时间登录,并且它被用作Codeigniter的整个第三方库,我个人不喜欢这样,因为它有很多文件/文件夹需要维护.我更喜欢简单的CI库和1-2个模型,如flexi-auth.虽然如果它正常工作,我不介意Community Auth的方法.
  • Tank Auth过去是一个可靠的解决方案,但与Codeigniter 3.0不同,因为它也有许多不兼容性.有人询问它与CI 3.0的兼容性,但到目前为止还没有飞机.
  • DX Auth是一个旧的身份验证库,正如我在其github存储库中看到的,有一些尝试在CI 3.0上迁移它但我无法亲自测试它们中的任何一个.

那么,是否有人在大型CI 3.0 Web应用程序上成功集成(或迁移)了前面提到的任何库?你自己写的吗?你是否坚持使用CI 2直到进一步的CI 3.0开发?

降票的更新

这篇关于 codeigniter中的身份验证库的帖子非常受欢迎且非常有用.我认为,至少在一些有用的答案之前,不应该关闭以这种方式帮助社区的帖子.它之前没有讨论过,我真的希望看到更有经验的开发人员的意见.

authentication codeigniter codeigniter-3

42
推荐指数
2
解决办法
3万
查看次数

.htaccess问题:未指定输入文件

有人可以帮我弄这个吗?我觉得我现在已经在墙上撞了两个多小时了.

我已经Apache 2.2.8 + PHP 5.2.6安装在我的机器上,.htaccess下面的代码工作正常,没有错误.

RewriteEngine on
RewriteCond $1 !^(index\.php|css|gfx|js|swf|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

我的托管服务提供商服务器上的相同代码给我一个404错误代码并输出only: No input file specified.index.php就在那里.我知道他们安装了Apache(无法在任何地方找到版本信息),他们正在运行PHP v5.2.8.

我在Windows XP 64-bit,他们正在运行的一些LinuxPHPCGI/FastCGI模式.任何人都可以建议可能是什么问题?

PS.如果重要的是CodeIgniter使用友好的URL.


UPDATE1:

mod_rewrite 安装并打开.

我注意到的是,如果我RewriteRule改为/index.php?$1(问号而不是正斜杠),它会进入无限循环.无论如何,使用问号不是一个选项,因为CodeIgniter(必需)不会以这种方式工作.

当我直接请求index.php时,主页也可以使用: example.com/index.php

我开始认为可能是apache认为一旦添加了斜杠,它就不再是一个文件了,而是一个文件夹.如何改变这种行为?


更新2:

我错了.
Apache正确处理这些URL.
请求http://example.com/index.php/start/(主页)或任何其他有效地址有效.
似乎Apache只是因为某种原因没有转发查询.


更新3:

只是为了清楚我想要实现的目标.
我想重写这样的地址:

http://www.example.com/something/ => http://www.example.com/index.php/something/ http://www.example.com/something/else/ => http:// www.example.com/index.php/something/else/

php apache .htaccess codeigniter

41
推荐指数
3
解决办法
8万
查看次数

codeigniter检查每个控制器中的用户会话

我在我的一个控制器中有这个私有会话,用于检查用户是否已登录:

function _is_logged_in() {

   $user = $this->session->userdata('user_data');

   if (!isset($user)) { 
      return false; 
   } 
   else { 
      return true;
   }

}
Run Code Online (Sandbox Code Playgroud)

问题是我有多个控制器.如何在其他控制器中使用此功能?在每个控制器中重新定义功能不是很"干".

有任何想法吗?

php methods controller codeigniter

41
推荐指数
3
解决办法
6万
查看次数

Codeigniter:$ this-> db-> last_query(); 执行查询?

查询执行是否发生在get_where()以下codeigniter活动记录语句的子句中?

$this->db->select('*');
    $q = $this->db->get_where('Contacts', array('id' => $contact_id));

    $sql = $this->db->last_query();
Run Code Online (Sandbox Code Playgroud)

或者,一旦你打电话给它,它会发生result_array()吗?

并且是$this->db->last_query();获取查询字符串的可靠方法.

activerecord codeigniter codeigniter-2

41
推荐指数
1
解决办法
23万
查看次数

如何为codeigniter设置cron job url?

我在我的网站上使用Codeigniter.我必须使用cron job来运行一个控制器功能.我在网站上使用路线.而且我也没有在url中使用index.php.

例如http://my-domain.com/welcome/show,这里welcome是我的控制器,show是该控制器的功能名称.

我用过这样的,

0 * * * * php /home/username/public_html/welcome/show

这是'没有这样的目录'

如何在CPANEL中为上面的url设置cron jon.

谢谢.

php cron codeigniter

41
推荐指数
4
解决办法
8万
查看次数