标签: codeigniter

Codeigniter/PHP会话安全问题

我正在使用Codeigniter开发Web应用程序.当用户使用我的网站进行身份验证时,我当前正在将我的"用户标识符"存储在我的会话cookie中(我已启用加密).我的几个模型类使用session/cookie的'user-identifier'参数中的值来更改用户帐户的属性.

我担心的是,我想知道某人是否有可能使用我设置的用户标识符来获取有效的codeigniter-session cookie,将user-identifier的值更改为其他用户的值,然后进行更改另一个用户的帐户.如果有人试图更改会话cookie的属性,codeigniter/php会话会产生错误吗?

php session codeigniter session-cookies

8
推荐指数
1
解决办法
7301
查看次数

在不成功的表单验证后重新填充Codeigniter中的复选框

在不成功的表单验证将用户返回到同一表单后,我有一个问题是重新填充一组复选框.下拉菜单和文本输入可以重新填充,但不能重新填充!

这是复选框代码的片段:

        <td>
            <?php echo form_checkbox('ambience[]', 'casual', set_checkbox('ambience[]', 'casual')); ?> Casual <br />
            <?php echo form_checkbox('ambience[]', 'romantic', set_checkbox('ambience[]', 'romantic')); ?> Romantic <br />
            <?php echo form_checkbox('ambience[]', 'outdoor', set_checkbox('ambience[]')); ?> Outdoor / Alfresco <br />
            <?php echo form_checkbox('ambience[]', 'trendy', set_checkbox('ambience[]')); ?> Hip & Trendy <br />
            <?php echo form_checkbox('ambience[]', 'vibrant', set_checkbox('ambience[]')); ?> Vibrant <br />
            <?php echo form_checkbox('ambience[]', 'up_scale', set_checkbox('ambience[]')); ?> Upscale <br />
        </td>
Run Code Online (Sandbox Code Playgroud)

成功重新填充的文本输入的代码段是:

<?php echo form_dropdown('price_range', $options, set_value('price_range')); ?>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我真的很困惑为什么set_checkbox不像宣传的那样工作.

php codeigniter

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

Codeigniter环境设置

Codeigniter开发环境没有设置.我总是在index.php中使用这段代码.但我不明白为什么我在使用localhost时将"生产"作为输出.

switch(dirname(__FILE__)){
 case "H:\wamp\www\sitedirectory":
    define('ENVIRONMENT', 'development');
 break;
 default:
    define('ENVIRONMENT', 'production');
 break;
 }

  echo ENVIRONMENT ;   // output is "production" while i am on localhost
  echo dirname(__FILE__) ;  // output is "H:\wamp\www\sitedirectory"
Run Code Online (Sandbox Code Playgroud)

php development-environment codeigniter

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

找不到"GuzzleHttp\Client"类

我第一次使用BOTH Guzzle和Codeigniter 3.0.我也承认我第一次使用php命名空间.

我试图根据文档中提供的示例使用Guzzle做一个非常简单的get请求.(Guzzle文档没有提及codeigniter).

Guzzle文件位于application/class/guzzle

这是我非常简单的控制器

public function indey () {

        $data = array();
        $data['main_content'] = "hiview";
        $data['title'] = "Data Analyzer - Welcome";
        $data['xas'] = $this->guzzler();
        $this->load->view('template', $data);
    }

    private function guzzler() {
        $client = new GuzzleHttp\Client;
        $response = $client->get('http://guzzlephp.org');
        return $response;
    }
Run Code Online (Sandbox Code Playgroud)

这是我的简单看法

    <div class="row">
        <div class="col-xs-12">
             <h1>Hi</h1>
        </div>
    </div>
    <div class="row">
        <div class="col-xs-12">
            <h1><?php var_dump($xas); ?></h1>
        </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

遇到PHP错误严重性:错误消息:找不到类'GuzzleHttp\Client'文件名:controllers/hello.php行号:22 Backtrace:

php codeigniter guzzle

8
推荐指数
2
解决办法
1万
查看次数

php rename()访问被拒绝.(代码:5)

所以我试图在php中使用重命名功能.

在第一次尝试时,如果目标文件夹为空或者不包含与源文件夹同名的任何目录,则重命名功能可以正常工作.但是,如果存在相同的目录名,则会失败.我想要的只是覆盖它,我认为重命名()就足够了.

这是我的代码:

/**
        *   Move temp folders to their permanent places
        *
        *   $module_folder = example (violator, pnp, etc)       
        *   $folders = name of folders within module_folder
        **/
        public function move_temp_to_permanent($module_folder, $folders){
            $bool = false;

            $module_folder_path = realpath(APPPATH . '../public/resources/temps/' . $module_folder);

            $module_folder_destination_path = $_SERVER['DOCUMENT_ROOT'] . '/ssmis/public/resources/photos/' . $module_folder . '/';

            foreach($folders as $folder){
                $bool = rename($module_folder_path . '/' . $folder, $module_folder_destination_path . $folder);
            }

            return $bool;
        }
Run Code Online (Sandbox Code Playgroud)

上面的代码给我一个错误说:

消息:重命名(C:\ xampp\htdocs\ssmis\public\resources\temps\violator/SJ-VIOL-2015-0002,C:/ xampp/htdocs/ssmis/public/resources/photos/violator/SJ-VIOL- 2015-0002):访问被拒绝.(代码:5)

我使用CodeIgniter作为框架.

非常感谢你!

php codeigniter

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

Codeigniter - .htaccess给出404页面找不到(文件在子文件夹中)

当我上传文件时,我将它们上传到共享主机中.问题是我的codeigniter的文件和文件夹位于其中一个网站名称文件夹中.

当我访问该网站时,它给我一个404错误.

我的.htaccesss档案:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications …
Run Code Online (Sandbox Code Playgroud)

php .htaccess codeigniter

8
推荐指数
1
解决办法
9439
查看次数

使用纯CodeIgniter创建RESTful API?

我需要仅使用CodeIgniter创建RESTful web api.我不能使用任何第三方插件或库来执行此操作.我见过大多数人都在使用https://github.com/chriskacerguis/codeigniter-restserver.请指导我仅使用CodeIgniter编写REST API.有用的链接和步骤非常感谢.

提前致谢.

php rest codeigniter

8
推荐指数
1
解决办法
2万
查看次数

Yii2或Laravel5是否可以补偿Codeigniter中的弱点?

我是一名Web开发人员,我使用Codeigniter 3年,我在许多生产项目中使用它,Codeigniter也是我开发基于框架的项目的起点.后来,我注意到其他php框架提供了许多有用的功能,使开发人员的生活更轻松,例如:

  • 数据库迁移使更改数据库模式更容易,更有效
  • 代码生成(scaffolding):为实体生成模型,视图和控制器
  • 表单验证:表单验证规则在生成中确定,框架确定其余部分
  • REST API:在没有第三方插件的框架中原生支持REST控制器

所有这些原因让我想到切换到其他框架.

搜索之后,我发现Laravel5具有我需要的功能,它还有一个庞大的开发人员社区.

我的朋友使用Yii2,他建议我切换到Yii2,我也发现Laravel和Yii在这些统计数据中都有良好的声誉.

Laravel5和Yii2如何与其他框架不同,并为每个框架增加了价值

php model-view-controller codeigniter yii2 laravel-5

8
推荐指数
1
解决办法
1024
查看次数

在生产服务器codeigniter 3.1.2(PHP)会话销毁从Facebook图形API自动重定向?

codeigniter会话销毁从图形APi facebook重定向一段时间它的工作和一段时间它破坏会话并带一个用户登录页面

这是Config.php会话代码

$config['see_driver'] = 'database';
$config['see_cookie_name'] = 'ci_session';
$config['see_expiration'] = 0;
$config['see_save_path'] = 'ci_sessions';
$config['see_match_ip'] = FALSE;
$config['see_time_to_update'] = 10000;
$config['see_regenerate_destroy'] = FALSE;
Run Code Online (Sandbox Code Playgroud)

这就是我在登录后设置用户会话并在User_controller.php中从数据库进行身份验证的方式

private function __set_user_session($user)
    {
        if(isset($user))
        {
            $data = [
                'user_id' => $user['id'],
                'ilocal_user_id' => $user['ilocal_user_id'],
                'package_id' => $user['package_id'],
                'no_available_business' => $user['no_available_business'],
                'name' => $user['name']
             ];

            $this->session->set_userdata($data);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在面书连接和重定向之后,这个方法被调用并且它在登录页面上自动重定向到用户我不知道他为什么要破坏一个会话

public function connect_facebook_account($business_id)
    {
        $this->__load_business($business_id);
        try
        {
            if(isset($this->data['business'] ))
            {
                $this->fb = new Facebook();
                $this->data['facebook_url'] =  $this->fb->get_login_url($business_id);
                if(isset($_GET['code']))
                {
                    $social_acccount_info = $this->fb->fetch_access_token();
                    if($social_acccount_info['status'] …
Run Code Online (Sandbox Code Playgroud)

php session redirect facebook codeigniter

8
推荐指数
1
解决办法
475
查看次数

显示Jquery从数据库中选择的数据以更新[Codeigniter]

我有jQuery选择以插入形式命名为centro medicos,我可以选择所有数据,选择一些数据.如果我点击这里选择全部是结果:

在此输入图像描述

假设我只选择了3个项目,然后保存.现在我想编辑.加载编辑页面时,我想要加载我选择的3个项目:

在此输入图像描述

如果我点击全选(Selectionar待办事项),则会显示其余项目.

1-控制器

public function edit_form()
{
    $edit_id= $this->uri->segment(3);
    $data['ITEM_EDIT'] = $this->model->get_title_by_id($edit_id);
    $data['ITEM_ALL']= $this->model->get_all_title();
    $this->load->view('view_edit_form', $data);
}
Run Code Online (Sandbox Code Playgroud)

2-视图

<select class="chosen-select"  multiple  name="item[]">
<?php 
    foreach($ITEM_ALL as $item_all) {
        foreach($ITEM_EDIT as $item_edit) {
            if($title_edit->title== $title_all->title)
            { 
                 echo '<option value="'.$item_all->title.'" class="'.$item_all->id.'" selected>'.$item_all->title.'</option>';
             }
             else 
             {
                 echo '<option value="'.$item_all->title.'" class="'.$item_all->id.'" >'.$item_all->title.'</option>';
             }
        }
    }
?>
 </select>
Run Code Online (Sandbox Code Playgroud)

3- jQuery

$(".chosen-select").chosen({
    no_results_text: "Oops, nothing found : ",
})
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

php jquery codeigniter

8
推荐指数
1
解决办法
889
查看次数