标签: codeigniter

Codeigniter表单验证回调检查多个字段

我将此控制器设置为登录:

<?php
class Login extends Controller {

    function __construct() {
        parent::Controller();
        $this->form_validation->set_error_delimiters('', '');
        $this->output->enable_profiler(TRUE);
    }

    function index(){

        redirect('/login/terminal');

    }

    function terminal() {
    // terminal login

        $this->form_validation->set_rules(array('username','password'), 'Username', 'callback_terminal_login_check[$username,$password]');
        if ($this->form_validation->run() == FALSE) {
            $this->load->view('login_header');
            $this->load->view('login_terminal');
            $data['version'] = $this->master->GetVersion();
            $this->load->view('login_footer', $data);
        } else {
            redirect('/terminal');
        }

    }

    function terminal_login_check($username,$password) {
    // callback function to perform terminal login  

        if ($this->authentication->DoTerminalAuthentication($username,$password)) {
            echo $username;
            return TRUE;
        } else {
            $this->form_validation->set_message('terminal_login_check', 'Invalid');
            return FALSE;
        }


    }

}
Run Code Online (Sandbox Code Playgroud)

我正在看的是执行表单验证回调>>的行 $this->form_validation->set_rules(array('username','password'), 'Username', 'callback_terminal_login_check[$username,$password]');

我知道这不对.基本上我想要做的是检查Authentication-> DoTerminalAuthentication模型的用户名和密码来处理用户的登录.我想传递$username …

php codeigniter

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

Codeigniter中的set_error_handler?

我已经创建了一些助手来捕获任何PPH错误,然后发送一个curl post,它将使用我的bug跟踪软件创建一个票证.

但我无法与Codeigniter合作.这是我的代码:


<? function phpErrorHandler($errno, $errstr, $errfile, $errline, $errcontext){

    //If is a notice do nothing.
    if($errno == E_NOTICE | $errno == E_USER_NOTICE): null; else:

    //Error types
    $errortype = array(
      E_ERROR           => 'Error',
      E_WARNING         => 'Warning',
      E_PARSE           => 'Parsing Error',
      E_NOTICE          => 'Notice',
      E_CORE_ERROR      => 'Core Error',
      E_CORE_WARNING    => 'Core Warning',
      E_COMPILE_ERROR   => 'Compile Error',
      E_COMPILE_WARNING => 'Compile Warning',
      E_USER_ERROR      => 'User Error',
      E_USER_WARNING    => 'User Warning',
      E_USER_NOTICE     => 'User Notice',
      E_STRICT          => "Runtime Notice");

    //Just get the filename for …
Run Code Online (Sandbox Code Playgroud)

php oop error-handling codeigniter

5
推荐指数
1
解决办法
3896
查看次数

在使用&get_instance()时,如何为CI完成eclipse代码的完成?

我目前正在使用Eclipse PDT和CodeIgniter,是否可以像这样获得会话库的代码完成:

$CI = &get_instance();
$CI->session->se   (No auto-completion here.)
Run Code Online (Sandbox Code Playgroud)

此外,是否有某种插件(或只是一种方法)允许eclipse为我的所有CodeIgniter库执行此操作.

注意:我已经在本教程的大多数情况下得到了支持,但是我正在寻找专门用于何时使用变量来引用CodeIgniter而不是

$this->
Run Code Online (Sandbox Code Playgroud)

谢谢,

Lemiant

eclipse codeigniter autocomplete eclipse-pdt environment-variables

5
推荐指数
1
解决办法
1335
查看次数

我应该将哪个会话库与CodeIgniter一起使用?

我最近开始使用CI和它的CI会话,但我注意到有一件事特别是使用CI会话比使用基本PHP会话更耗时:数组.

无论登录/注销被调用$_SESSION['stats'],我都有一系列数据持续存在,然后我以下列形式将数据存储在该数组中:

$_SESSION['stats']['last_page'] = $_SERVER['REQUEST_URI'];.

当用户注销时,它会将stats数组保存在变量中,清除会话,然后将其加载回新会话.

问题是,为了编辑last_page键,而不是上面的一行,我必须使用这段代码:

$stats = $this->CI->session->userdata('stats');
$stats['last_page'] = $_SERVER["REQUEST_URI"];
$this->CI->session->set_userdata('stats', $stats);
Run Code Online (Sandbox Code Playgroud)

这是我在CI会话中发现的一些烦恼之一,这使我对它作为我的会话处理程序感到不满.所以我的问题是:我应该在CodeIgniter中使用哪个会话系统?...是否有使用CI会话的原因?您建议使用CI库吗?为什么不使用PHP会话?

谢谢,

Lemiant

php arrays session codeigniter

5
推荐指数
1
解决办法
3760
查看次数

Codeigniter和多重继承?

想知道这是否可能或PHP的限制,谷歌搜索似乎是这种情况,但也许我错过了一个聪明的解决方案.

希望这是有道理的.现在我有两个部分到我的网站,一个管理员和客户端.我已经能够将它分成两个从基础MY_Controller类继承的控制器(管理员和客户端),但我遇到的问题是实现我的身份验证控制器.

客户端/管理员登录之间有很多共享代码,现在我要么必须为扩展基础的每个管理员和客户端创建一个auth控制器(这意味着重复代码很多),或者只是扩展MY_Controller类和使用每个函数中的if/thens,然后变得有点混乱(并绕过管理员/客户端父类,这违背了拥有它们的目的......).

我想知道是否有办法让Auth控制器处于"中立"(?)并且能够从管理员/客户端控制器继承,所以如果X是基本控制器,并且Y是Auth ......

X -> Admin Controller -> Y
X -> Client Controller -> Y
Run Code Online (Sandbox Code Playgroud)

我正在使用一个身份验证库来封装一些较低级别的函数,而不是坚持布局逻辑和类似的东西.如果这是一个愚蠢的问题,请原谅我.谢谢!

php oop inheritance codeigniter

5
推荐指数
1
解决办法
2019
查看次数

允许CodeIgniter中URL中的任何字符

我正在使用CodeIgniter PHP框架.我使用JS动态加载PHP页面:

$('someIFrame').writeAttribute(
   'src',
   '/index.php/controller/method/' +
   escape(userGeneratedString)
);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,CodeIgniter给了我这个错误:

http://192.168.0.81/index.php/controller/method/dude%27s%20face
An Error Was Encountered
The URI you submitted has disallowed characters.
Run Code Online (Sandbox Code Playgroud)

这完全是不真实的,因为有问题的URL不包含任何不允许的字符.我的配置文件允许该URL中存在的所有字符:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_()@\-';
Run Code Online (Sandbox Code Playgroud)

所以我感到沮丧,只是允许所有字符来防止错误.

// Leave blank to allow all characters -- but only if you are insane.
// DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
//$config['permitted_uri_chars'] = 'a-z 0-9~%.:_()@\-';
$config['permitted_uri_chars'] = '';
Run Code Online (Sandbox Code Playgroud)

这条线上方的警告信息听起来很吓人.允许所有角色可能出错?我会被黑客攻击吗?

javascript php security url codeigniter

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

Code Igniter - form_dropdown从数据库中选择正确的值

我在CodeIgniter中的form_dropdown函数有一些问题....我的应用程序分为两部分,一个用户进入,输入一个表单并提交它....一旦提交管理员可以进入并编辑那些人形式然后将其保存到数据库.

因此,要显示初始表单中的下拉列表,请使用以下内容(下拉列表中的所有选项均来自数据库)

模型:

    function get_salaries_dropdown()
{
    $this->db->from($this->table_name);
    $this->db->order_by('id');
    $result = $this->db->get();
    $return = array();
    if($result->num_rows() > 0){
            $return[''] = 'please select';
        foreach($result->result_array() as $row){
            $return[$row['id']] = $row['salaryrange'];
        }
    }
    return $return;
}
Run Code Online (Sandbox Code Playgroud)

然后在控制器中:

$data['salaries'] = $this->salary_expectation->get_salaries_dropdown();
Run Code Online (Sandbox Code Playgroud)

然后最后查看:

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

该位在显示填充了用户要选择的值的下拉列表时非常有效.

因此,当用户选择一个值,然后点击保存,它保存到数据库.

在管理员看到的编辑页面上,我使用相同的代码显示填充了选项的下拉列表,但是如何让它自动选择用户在初始阶段选择的那个?

干杯,

codeigniter

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

URL中的加密数据

我正在开发一个PHP应用程序来管理公司的订单.要查看URL当前的订单/orders/view/3502.

我不希望订单ID号出现在URL中,因此我使用CodeIgniter的加密库来加密URL中的ID.URL(加密后)看起来像/orders/view/AaffGdQQ.

我遇到的问题有时加密ID包含正斜杠或加号,在URL中无法正常工作.CodeIgniter基于斜杠读取URL,因此,如果加密的ID有斜杠,它将读取为2个变量,而不是一个.此外,加号会被解释为URL中的空格.

所以,我的问题是,如何加密ID并确保字符串不包含加号或斜杠?

编辑:我有一个想法,看看加密的ID是否包含斜杠或加号,如果是,则再次加密.出于某种原因,每次ID被加密时,它都是不同的,所以这会起作用.

php codeigniter mcrypt

5
推荐指数
1
解决办法
4300
查看次数

CodeIgniter:丢失密码功能,如何实现?

我的客户端有一个在CodeIgniter上运行的站点(我没有创建它,对CI知之甚少),他们想添加丢失的密码功能,我不知道如何使用CI实现此功能.我知道PHP的大部分经验来自WordPress.

有人能指出我正确的方向来实施这种事情的最佳做法吗?

php codeigniter

5
推荐指数
1
解决办法
7842
查看次数

文件上传无法解释的问题

我的文件上传脚本一切都很好,直到我决定上传更大的文件和更大的文件2mb谈论更多的30mb文件.我去过我php.ini改变以下内容:

post_max_size = 100M
upload_max_filesize = 120M
Run Code Online (Sandbox Code Playgroud)

在所有这些设置仍然无效后,内存限制保留为@默认值128M,它显示此错误消息

"file could not be written to disk"
Run Code Online (Sandbox Code Playgroud)

有些朋友认为它与d权限有关,但我怀疑是因为相同的脚本适用于600kb及以下的较小文件.我无法解释发生了什么.任何帮助,将不胜感激.

php upload codeigniter

5
推荐指数
1
解决办法
757
查看次数