我正在尝试在我的pre_controller挂钩中加载cookie帮助器,以便在我们的站点上使用"记住我"功能.我认为使用$ ci =&get_instance()创建CI对象的实例; 允许我访问加载助手,但事实并非如此.
思考?
$ci =& get_instance();
$ci->load->helper('cookie');
// does not load
Run Code Online (Sandbox Code Playgroud) 因此,我设置了一个验证用户凭据的登录页面,然后设置codeigniter会话数据'email'和'is_logged_in'以及其他一些项目.登录后的第一页,可以访问数据.在该页面之后,我无法再访问会话数据.事实上,如果我尝试重新加载第一页,会话数据就会消失.
我已经尝试将其存储在数据库中,将其存储为未加密的(我知道这是个坏主意,但它是用于故障排除),并将其加密存储.我在config.php中自动加载了会话库.
这是我用来设置会话数据的代码示例:
$data = array(
'email' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
Run Code Online (Sandbox Code Playgroud)
要检索它,我正在使用:
$this->session->userdata('email');
Run Code Online (Sandbox Code Playgroud)
要么
$this->session->userdata('is_logged_in');
Run Code Online (Sandbox Code Playgroud)
我以前用PHP和cookie以及会话做了很多工作,但这是我与Codeigniter的第一个项目,我感到很困惑.
它可能与目录问题有关吗?我有登录页面和进程由"登录"控制器控制,然后它重定向到"站点"控制器.
感谢您的帮助,如果我需要澄清任何问题,请告诉我.
我读了这个 使codeigniter网站成为多语言的最好方法.从lang数组调用取决于lang会话?
语言包含...我想知道如何为多语言显示网址...
如何在url中显示语言,以便它也将在搜索引擎中编入索引...
例如sitenameDOTcom/es或sitenameDOTcom/whoweare/es或类似的东西以及如何与控制器和网址同步......
那么如果客户端是curl,我如何检查使用codeigniter,然后为它返回不同的东西?
我正在使用Codeigniter中的CMS,其中一个主要部分是用于创建和编辑帖子的表单.
我一直在计划使用相同的视图文件,因为所有元素都是共享的.唯一的区别是创建时表单是空白的,并且在编辑时填充它.这是正确的方法吗?
我正在考虑为每个方法设置一个方法,所以发布/创建和发布/编辑($ id).
在post控制器的create方法中,我有这样的所有表单数据(用于错误):
$this->data['item_title'] = array(
'name' => 'item_title',
'id' => 'item_title',
'type' => 'text',
'value' => $this->form_validation->set_value('item_title'),
);
Run Code Online (Sandbox Code Playgroud)
我正在考虑改变值来保存数据库值而不是set_value(),所以类似于:
public function edit($id) {
$post_data = $this->post_model->get_post_data($id)
$this->data['item_title'] = array(
'name' => 'item_title',
'id' => 'item_title',
'type' => 'text',
'value' => $post_data['post_title'],
);
}
Run Code Online (Sandbox Code Playgroud)
我是在正确的轨道上还是有更好的方法来解决这个问题?我应该只使用2次观看吗?
我想使用get_where和order_by这样...
$query = $this->db->get_where($this->tbl_name, $where)->order_by('birth_date', 'ASC');
Run Code Online (Sandbox Code Playgroud)
但得到了这个错误......
Fatal error: Call to undefined method CI_DB_mysql_result::order_by() in C:\xampp\htdocs\OAWA\application\models\Member_model.php on line 82
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
所以我使用access database(*mdb).这是我的代码和成功连接:
$db['test']['hostname'] = 'Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\blabla.mdb';
$db['test']['username'] = '';
$db['test']['password'] = '';
$db['test']['database'] = 'Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\blabla.mdb';
$db['test']['dbdriver'] = 'odbc';
$db['test']['dbprefix'] = '';
$db['test']['pconnect'] = TRUE;
$db['test']['db_debug'] = TRUE;
$db['test']['cache_on'] = FALSE;
$db['test']['cachedir'] = '';
$db['test']['char_set'] = 'utf8';
$db['test']['dbcollat'] = 'utf8_general_ci';
$db['test']['swap_pre'] = '';
$db['test']['autoinit'] = TRUE;
$db['test']['stricton'] = FALSE;
Run Code Online (Sandbox Code Playgroud)
现在我想从其他计算机使用accessdb.此accessdb(*mdb)已共享,我制作地图网络驱动器(Z :).
所以我更改了主机名和数据库,但失败了:
$db['test']['hostname'] = 'Driver={Microsoft Access Driver (*.mdb)};DBQ=Z:\blabla.mdb';
$db['test']['database'] = 'Driver={Microsoft Access Driver (*.mdb)};DBQ=Z:\blabla.mdb';
Run Code Online (Sandbox Code Playgroud)
我试着这样做:
$db['test']['hostname'] = 'Driver={Microsoft Access Driver (*.mdb)};DBQ=\\10.0.0.107\share\blabla.mdb';
$db['test']['database'] = 'Driver={Microsoft Access Driver …Run Code Online (Sandbox Code Playgroud) 我得到了这个错误,并且知道我哪里出错了我是codeigniter的新手,所以我确信它有些愚蠢,任何人都可以事先想出这个.
create_view.php
<body>
<?php echo form_open('create'); ?>
<ul id="accordion">
<li>
<a>Survey Creation</a>
<ul id="survay">
<li>Enter a question:<?php echo form_input('Question')?></li>
<li>Answer A: <?php echo form_input('qA' );?></li>
<li>Answer B: <?php echo form_input('qB' );?></li>
<li>Answer C: <?php echo form_input('qC' );?></li>
<li><?php echo form_submit('submit', 'Set This Question' );?></li>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud)
create.php
<?php
class Create extends CI_Controller{
function index(){
$this->load->view('create_view');
}
// insert data
function create1()
{
$data = array(
'Question' => $this->input->post('Question'),
'qA' => $this->input->post('qA'),
'qB' => $this->input->post('qB'),
'qC' => $this->input->post('qC'),
);
$this->create_model->add_record($data);
$this->home(); …Run Code Online (Sandbox Code Playgroud) 我很难把MySQL查询放到php Codeigniter.我尝试搜索,但我还没有找到.
这是代码:
UPDATE `Pelayanan` SET `TGLBAYAR` = INSERT(`TGLBAYAR`, 3, 0, '/'), INSERT(`TGLBAYAR`, 6, 0, '/')
UPDATE `Pelayanan` SET `TGLRUBAH` = INSERT(`TGLRUBAH`, 3, 0, '/'), INSERT(`TGLRUBAH`, 6, 0, '/')
ALTER TABLE `Pelayanan` MODIFY COLUMN (`TGLBAYAR` DATE, `TGLRUBAH` DATE)
UPDATE `Pelayanan` SET `LAMA` = DATEDIFF(`TGLBAYAR`, `TGLRUBAH`)
Run Code Online (Sandbox Code Playgroud)
我想按顺序运行此代码,但我不知道是否使用CASE或其他东西.controller.php和model.php的代码如何?
我想在jQuery的更改事件上上传服务器上的图像但是使用codeigniter csrf我只能上传图像一次.如何使用ajax为多个请求上传图像.请在设置时记住
config['csrf_protection'] = FALSE;
Run Code Online (Sandbox Code Playgroud)
然后我能够发送多个请求jQuery onchange事件,但是当csrf_protection将为false时,我认为没有csrf的优势.所以问题是如何在启用csrf_protection时使用ajax发送多个请求.我的jquery代码如下
$("#avatar").change(function(){
var link = $("#avatar").val();
$.ajax({
url : "<?php echo base_url('main/test'); ?>",
type: 'post',
data: {'<?php echo $this->security->get_csrf_token_name(); ?>':'<?php echo $this->security->get_csrf_hash(); ?>',"id":"hello","link":link},
success : function(data)
{
alert(data);
}
});
});
Run Code Online (Sandbox Code Playgroud) codeigniter ×10
php ×9
ajax ×1
alter-table ×1
curl ×1
database ×1
jquery ×1
ms-access ×1
multilingual ×1
mysql ×1
session ×1
sql-update ×1
user-agent ×1