我将此控制器设置为登录:
<?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 …
我已经创建了一些助手来捕获任何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) 我目前正在使用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
我最近开始使用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的限制,谷歌搜索似乎是这种情况,但也许我错过了一个聪明的解决方案.
希望这是有道理的.现在我有两个部分到我的网站,一个管理员和客户端.我已经能够将它分成两个从基础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)
我正在使用一个身份验证库来封装一些较低级别的函数,而不是坚持布局逻辑和类似的东西.如果这是一个愚蠢的问题,请原谅我.谢谢!
我正在使用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)
这条线上方的警告信息听起来很吓人.允许所有角色可能出错?我会被黑客攻击吗?
我在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)
该位在显示填充了用户要选择的值的下拉列表时非常有效.
因此,当用户选择一个值,然后点击保存,它保存到数据库.
在管理员看到的编辑页面上,我使用相同的代码显示填充了选项的下拉列表,但是如何让它自动选择用户在初始阶段选择的那个?
干杯,
我正在开发一个PHP应用程序来管理公司的订单.要查看URL当前的订单/orders/view/3502.
我不希望订单ID号出现在URL中,因此我使用CodeIgniter的加密库来加密URL中的ID.URL(加密后)看起来像/orders/view/AaffGdQQ.
我遇到的问题有时加密ID包含正斜杠或加号,在URL中无法正常工作.CodeIgniter基于斜杠读取URL,因此,如果加密的ID有斜杠,它将读取为2个变量,而不是一个.此外,加号会被解释为URL中的空格.
所以,我的问题是,如何加密ID并确保字符串不包含加号或斜杠?
编辑:我有一个想法,看看加密的ID是否包含斜杠或加号,如果是,则再次加密.出于某种原因,每次ID被加密时,它都是不同的,所以这会起作用.
我的客户端有一个在CodeIgniter上运行的站点(我没有创建它,对CI知之甚少),他们想添加丢失的密码功能,我不知道如何使用CI实现此功能.我知道PHP的大部分经验来自WordPress.
有人能指出我正确的方向来实施这种事情的最佳做法吗?
我的文件上传脚本一切都很好,直到我决定上传更大的文件和更大的文件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及以下的较小文件.我无法解释发生了什么.任何帮助,将不胜感激.
codeigniter ×10
php ×8
oop ×2
arrays ×1
autocomplete ×1
eclipse ×1
eclipse-pdt ×1
inheritance ×1
javascript ×1
mcrypt ×1
security ×1
session ×1
upload ×1
url ×1