无法在 CodeIgniter 中使用会话类检索会话 ID

2023-12-04

我的控制器中有这段代码

class Upload_center extends Controller 
{
    function __construct()
    {
        parent::Controller();
        $this->load->model('auth_model') ;
        if(!$this->auth_model->authorize())
        {
            redirect('login');

        } 

    }

我认为这段代码

$('#swfupload-control').swfupload({
    upload_url: "<?=base_url()?>index.php/upload_center/upload",
    file_post_name: 'fileupload',
    file_size_limit : "200000000",
    file_types : "*.zip;*.rar;*.pdf;*.doc;*.docx;*.mp3;*.avi;*.wmv;*.docx;*.jpg;*.jpeg;*.JPG;*.JPEG;*.png;*.gif;*.bitmap;",
    file_types_description : "zip files ",
    post_params: {"PHPSESSID": "<?=$this->session->userdata('session_id');?>"} ,
    file_upload_limit : 1,
    flash_url : "<?=base_url()?>js/jquery-swfupload/js/swfupload/swfupload.swf",
    button_image_url : '<?=base_url()?>js/jquery-swfupload/js/swfupload/wdp_buttons_upload_114x29.png',
    button_width : 114,
    button_height : 29,
    button_placeholder : $('#button')[0],
    debug: false

我希望用户在登录后上传文件,因此我有一种方法需要用户登录才能继续上传文件。虽然我认为我使用的是 Flash Uploader,但我认为它没有传递会话值,并且 PHP 认为用户尚未登录,并将其重定向到登录页面。我发送phpsessionid通过邮寄,但仍然没有成功。


您的会话 cookie 过期时间设置为多少? CodeIgniter 中有一个已知的错误,如果您停留在使 AJAX 请求超过 cookie 过期的页面上,它将重置数据库中的会话 ID,但无法在浏览器 cookie 中设置它,因为它是异步的要求。这会导致下一个非异步 GET 请求断开连接,从而导致会话库调用 sess_destroy()。如果这听起来像您的情况,请告诉我。否则,请提供更多详细信息。

Edit:也许我还应该在这里包含此错误的修复程序。在 /application/libraries 中创建一个名为“MY_Session.php”的文件(如果该文件尚不存在)。您可以在其中粘贴以下内容:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
* Session Class Extension
*/
class MY_Session extends CI_Session {
   /*
    * Do not update an existing session on ajax calls
    *
    * @access    public
    * @return    void
    */
    function sess_update() {
        if ( !isAjax() ){
            parent::sess_update();
        }
    }
}
?>

isAjax() 函数是我在 /application/helpers/isajax_helper.php 中的一个助手,如下所示:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* is_ajax_call
*
* Determines if the current page request is done through an AJAX call
*
* @access    public
* @param    void
* @return    boolean
*/
if ( ! function_exists('isAjax')) {
    function isAjax() {
        return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
    }
}
?>

我的配置文件中引用了如下内容:

$autoload['helper'] = array('otherhelper1', 'isajax', 'otherhelper2');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 CodeIgniter 中使用会话类检索会话 ID 的相关文章

  • Rails 中的会话、子域和 authlogic 问题

    我有一个带有 authlogic 身份验证的 Rails 应用程序和一个使用 subdomain fu 构建的 username domain com 结构 但是当从domain com转到username domain com时 我的会话
  • Jquery Ajax 调用返回 403 状态

    我有一个 jquery Ajax 调用来实现会话的 keepalive 这个 keepAlive 方法将每 20 分钟调用一次 function keepAlive ajax type POST url KeepAliveDummy asp
  • 登录后,Codeigniter 会话数据在其他页面不可用

    因此 我设置了一个登录页面来验证用户的凭据 然后设置 codeigniter 会话数据 email 和 is logged in 以及其他一些项目 登录后第一页 数据即可访问 在该页面之后 我无法再访问会话数据 事实上 如果我尝试重新加载第
  • 登录代码示例已通过 SQL 注入被黑客攻击,尽管 mysql_real_escape_string...

    我使用 CodeIgniter 但在黑客攻击方面遇到了麻烦 是否可以对以下登录代码进行 SQL 注入 function process login username mysql real escape string this gt inpu
  • 生成 Flask 中使用的签名会话 cookie 值

    我正在用另一个需要将项目注入会话的 Flask 服务器代理 Flask 服务器 两台服务器具有相同的密钥 因此加密签名将相同 当使用 Flask 和会话时 http 响应包含一个 Set Cookie 标头session text 其中 t
  • 代码点火器 JSON

    你好 我使用 codeigniter 然后我从控制器中的数据库中回显输出 然后在我的视图文件中执行以下操作 但它没有显示任何内容 S 我的模型文件 function forumList this gt db gt select oversk
  • 从 CodeIgniter 中的 URL 捕获哈希值 (#)

    我有一个看起来像的网址 mysite com transactions view 123456 效果很好 但是我的客户现在希望在 url 中包含 hashbang mysite com transactions view 123456 现在
  • Zend 框架会话丢失

    我有一个注册表单 当用户注册时 它会将他重定向到他的页面 在 Firefox 和 Chrome 中一切正常 但在 Internet Explorer 中则正常 看起来保存用户信息后 会话就关闭了 并且不会将用户重定向到他的页面 我该如何解决
  • 加载视图 - codeigniter 错误

    我是 codeigniter 的新手 我正在做一个菜单 所以我将所有链接不放在同一个主文件中 以免一直重复 我的代码是 在main php中 main agregar gt Agregar span a href Modificar a s
  • omn​​ipay paypal Express 不返回地址

    我在这里使用omnipay 设置 https github com adrianmacneil omnipay https github com adrianmacneil omnipay处理贝宝快速结帐 该过程工作正常 因为用户被重定向到
  • PHP:会话.auto_start

    我在同一台服务器上有两个项目 它们的设置在 session auto start 中冲突 相关post https stackoverflow com questions 1378324 php setting variables in i
  • CodeIgniter 中的 base_url() 和 403 错误

    在 HTML 视图中 css 链接代码如下所示 但我的浏览器显示的地址具有双域地址 www jedendzien pl www jedendzien pl assets css style css 所以我收到 403 错误 我通过以下方式创
  • 按带宽限制成员资格

    我刚刚将 Codeigniter 应用程序部署到 Amazon EC2 使用 S3 作为媒体 使用 RDS 作为 MySQL 我需要根据使用的带宽量限制用户帐户访问 帐户将基于带宽 例如基本帐户 x 每月最多 20GB 等 但是我不知道最好
  • 如何完全刷新 CodeIgniter 中的页面?

    我正在叠加层中加载表单 覆盖层对于调用覆盖层的页面有一个单独的控制器和操作 在表单提交时 如果成功 我只想重新加载加载叠加层的引用页面 我可以加载引用页面 但它将内容放置在覆盖层内 header Location www example c
  • Codeigniter:用户会话不断过期

    我正在使用 CodeIgniter 但在会话方面遇到了一个小问题 我已将 config php 中的 sess expiration 设置为 0 以便用户会话永远不会过期 但用户 甚至我自己 仍然偶尔会被踢出并要求再次登录 顺便说一句 我将
  • CodeIgniter 数据库连接未关闭

    我在 CodeIgniter 中建立了一个社交社区网站 该网站现在获得了相当多的流量 托管公司已经开始抱怨并说数据库正在接收空连接以及未关闭的连接 我不完全确定空查询是什么或者最终如何发出空查询 有什么想法吗 我添加了额外的代码以在代码结束
  • OnPostAuthenticateRequest 中的 HttpContext.Current.Session 为 null

    这是一个n00b问题 也许你可以帮忙 当我在Application OnPostAuthenticateRequest事件 我无法查看Session since HttpContext Current Session一片空白 这是空的原因吗
  • Tomcat 如何保持会话完整性?

    HttpServletRequest s 获取会话 布尔值 http download oracle com javaee 6 api javax servlet http HttpServletRequest html getSessio
  • 传递多个数组以在 codeigniter 中查看

    我的模型是这个 两个函数view和spl function view result this gt db gt get tb ourcity return result gt result array query this gt db gt
  • 我如何从mysql获取上周、本周和上个月的记录

    我在 Codeigniter 中以 strtotime 格式存储日期 一周从周日开始 this gt db gt where this gt weight create date lt curdate INTERVAL DAYOFWEEK

随机推荐

  • 在元素中创建响应式对角线

    不确定这是否可行 但是如何创建一条从元素左上角到右下角的 1px 对角线 无论该元素的宽度和 或高度如何 您可以通过多种方式做到这一点 1 背景图片 1 1 SVG 您可以直接创建 svg 作为内联代码并使用它来绘制线条 使用它你可以实现漂
  • .NET 反射 - 从实例属性获取声明类类型

    是否可以从属性实例获取类的类型 我尝试了以下方法 var model new MyModel SomeValueForMyProperty Type declaringType model MyProperty GetType Declar
  • 将单词添加到一行的最后一个单词之前

    我想在一行的最后一个单词前面添加一个目录名称 该行具有以下格式 100644 bfadfab6f98b8fa1e9989fe16b2bf0fb13ffd39e 0 IoneFile where I表示一个tab and 表示行尾 该行是由生
  • 如何在 Typescript Enum 中查找具有值的键?

    我想搜索一个具有值的枚举 并获取它的键 这就是我现在所拥有的 private find value MyEnum string for const key in MyEnum if value MyEnum key return key r
  • 如何在 java 中将节点附加到现有 XML 文件

    public static void addALLToXML Collection
  • return 语句上的 Perl 引用和取消引用

    我正在学习 perl 并且有一个与参考文献相关的问题 我正在研究 get id 函数 如果我回来 self gt id 我将得到两个无法运行的数组地址 c 以我的理解 a是参考和 a 是数组并且 a 0 会返回值0吗 这是我第一次在 sta
  • bitParity - 查找整数中的奇数位

    我必须创建一个函数bitParity int x 接受一个整数并返回1如果有奇数个0的位形式为x and 0否则 Ex bitParity 5 0 bitParity 7 1 然而 这很困难 因为我只能使用位运算符来解决这个问题 lt lt
  • 我想在 Rstudio 中更改 --max-ppsize

    我读过了如何在 R 中设置最大 ppsize 我也有同样的问题 我目前在 Rstudio 工作 我需要将 max ppsize 设置为更大的值 这是我的方法 gt setwd C Program Files R R 3 3 1 bin gt
  • Emacs 用增量序列替换正则表达式

    我正在尝试找出一种方法 将文本文件中的字符串替换为增量超过 1 的数字 我正在尝试将以下几行转为这样 result A in S1 S2 txt result A in S1 S2 txt result A in S1 S2 txt res
  • php mPDF,无法设置字体系列和字体大小

    好吧 在花了这么多时间阅读他们的文档和我的测试之后 我决定向 SO 社区寻求帮助 我使用 mPDF 从 HTML 生成 pdf 图书馆工作正常 pdf 已生成等 但我无法根据需要设置字体系列和字体大小 我尝试过的代码 mpdf new mP
  • shell编程中的“导出”有什么作用? [复制]

    这个问题在这里已经有答案了 据我所知 无论前面是否有 export 变量赋值都是相同的 这是为了什么 导出的变量如 HOME and PATH可供 shell 运行的其他程序使用 继承 并将它们导出为环境变量 以及这些其他程序运行的程序等
  • 使用当前连接从 sql 存储过程调用 dll 函数

    我可以使用打开的连接从存储过程调用 dll 吗 我有一个从 SQL Server 获取数据的 dll 当我从存储过程调用它时 我不想打开新连接 谢谢 这是一个例子 public class Class1 public static SqlS
  • JavaScript Promise .then() 在事件循环中到底是如何处理的?

    我对如何将以下测试代码放入 JS 事件循环中感到困惑 var p1 new Promise function resolve reject setTimeout function resolve 1 100 var p2 new Promi
  • 用JS从outlook导入联系人

    我需要将 Outlook 中的联系人导入到 Web 应用程序中 我认为用JS可以做到这一点 但我不知道如何做 谁能给我一个解决我的问题的示例代码 您可以使用activex和javascript导出outlook联系人 但需要用户在浏览器中启
  • 如何将H2数据库嵌入到交付给客户端的jar文件中?

    我在嵌入式模式下使用 H2 数据库作为桌面应用程序 当我将应用程序压缩到 jar 文件中时 数据库文件被省略 因此 当我运行 MyApplication jar 时 没有任何效果 将 h2 jar 文件嵌入 包含 连接 MyApplicat
  • 删除 JSON 中的 Null 值并更新 JSON

    我通过使用 Newtonsoft 序列化列表将 JSON 数组作为字符串 如下所示 ID 1 Name somename Class 12 Section null ID null Name somename Class 13 Sectio
  • MapView 上的 java.util.ConcurrentModificationException

    fellas 很多天以来我都面临着非常奇怪的问题 我正在尝试经常更新覆盖 因此 有时当我触摸地图时 我会收到 java util ConcurrentModificationException 或者有时当地图尝试更新叠加层时 我会收到 ja
  • 如何使用 Json.NET 序列化和反序列化数组的 ArrayList

    我需要在应用程序中使用 JSON NET 将对象序列化 反序列化为 json Object 具有 ArrayList 属性类型 其中包含字符串数组 为了模拟它 我编写了以下单元测试 public class JsonTests public
  • 仅在释放模式下按 HOME 时才会终止 Activity

    首先 我有两个 Activity Splash 和 MainActivity 仅支持纵向 在 MainActivity 中 我有很多片段使用幻灯片菜单 我想在用户离开 MainActivity 时保留当前片段 这是我的尝试 int curr
  • 无法在 CodeIgniter 中使用会话类检索会话 ID

    我的控制器中有这段代码 class Upload center extends Controller function construct parent Controller this gt load gt model auth model