我想在Codeigniter的活动记录中使用mySQL函数NOW()在数据库中插入当前时间.以下查询将不起作用:
$data = array(
'name' => $name ,
'email' => $email,
'time' => NOW()
);
$this->db->insert('mytable', $data);
Run Code Online (Sandbox Code Playgroud)
这是因为CodeIgniter的ActiveRecord类会自动转义输入.
以下工作正常,通过调用set()并传递peratmeter FALSE,以便它不会逃避NOW().
$data = array(
'name' => $name ,
'email' => $email,
);
$this->db->set('time', 'NOW()', FALSE);
$this->db->insert('mytable', $data);
Run Code Online (Sandbox Code Playgroud)
但是,我的问题是除此之外还有其他方法吗?例如,如果我可以通过添加数据数组中的所有内容以某种方式使用?例如,类似于:
$data = array(
'name' => $name ,
'email' => $email,
'time' => NOW(), FALSE
);
Run Code Online (Sandbox Code Playgroud) CodeIgniter有一个非常简单的默认错误404消息:
404 Page Not Found
The page you requested was not found.
Run Code Online (Sandbox Code Playgroud)
我没有在完全空白页面上使用此错误消息,而是将此消息包装在我的页眉和页脚视图之间,以便错误消息与其他页面具有相似的外观.
为此,我创建了一个错误视图?例如:
my404_view.php
<? $this->load->view('header'); ?>
404 Page Not Found
The page you requested was not found.
<? $this->load->view('footer'); ?>
Run Code Online (Sandbox Code Playgroud)
现在,我如何使用它my404_view.php作为默认视图来显示404消息,而不是使用CodeIgniter默认错误消息.
我对MVC框架(codeIgniter)中的控制器和模型感到困惑.我清楚地知道控制器方法调用视图和模型方法与数据库交互.但是,我对以下类型的方法感到困惑,这些方法由控制器中的方法调用.
hash_password //returns hash password.
valid_email //validates email format and return true or false
is_logged //check if session has a variable, returns true or false
generate_random_string //generates and hashes a random string
Run Code Online (Sandbox Code Playgroud)
它们应该放在控制器还是模型中?
目前,我将所有上述功能放在控制器中.这是对的吗?
如何在CodeIgniter中的form_open函数中编写表单ID?(我需要使用CSS的ID).例如,这是简单的HTML:
<form method="post" action="" id="my_form">
Run Code Online (Sandbox Code Playgroud)
我正在尝试以下代码,但它不起作用:
<?php echo form_open('my_form'); ?>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我的codeigniter应用程序中有一个控制器"user".该控制器具有以下功能logged_user_only():
public function logged_user_only()
{
$is_logged = $this -> is_logged();
if( $is_logged === FALSE)
{
redirect('user/login_form');
}
}
Run Code Online (Sandbox Code Playgroud)
由于此函数调用另一个被调用的函数is_logged(),它仅检查会话是否已设置,如果是,则返回true,否则返回false.
现在,如果我将此函数放在同一控制器内的任何函数的开头,它将检查用户是否未被记录,它将重定向到login_form否则继续.这很好用.例如,
public function show_home()
{
$this -> logged_user_only();
$this->load->view('show_home_view');
}
Run Code Online (Sandbox Code Playgroud)
现在我想logged_user_only()在另一个控制器的函数中调用此函数来检查用户是否已登录?
PS.如果无法做到这一点,或者不推荐,我应该在多个控制器中将此功能放在哪里?谢谢.
以下if条件导致错误:
if( !empty ($this -> session -> userdata( 'user_id') ) )
{
$user_id = $this -> session -> userdata( 'user_id' );
}
else
{
$error = "ID doesn't exist";
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Fatal error: Can't use method return value in write context in (line number)
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我有一个简单的CodeIgniter Active记录查询来选择ID:
$q = $this -> db
-> select('id')
-> where('email', $email)
-> limit(1)
-> get('users');
Run Code Online (Sandbox Code Playgroud)
如何将上述ID分配给变量(例如$ id)例如,
echo "ID is" . $id;
Run Code Online (Sandbox Code Playgroud)
谢谢.
我可以在codeigniter中打印会话值print_r($this->session->userdata);
我如何在codeigniter中打印cookie?我刚刚设置了一个cookie:
$cookie = array(
'name' => 'test_cookie',
'value' => 'test',
'domain' => '/',
'secure' => TRUE
);
$this->input->set_cookie($cookie);
Run Code Online (Sandbox Code Playgroud)
我该如何打印上述cookie?
CodeIgniter 2.0.2要求在配置文件中设置加密密钥,即$config['encryption_key'],如果要使用Session类.可以是任何字符串吗?安全encryption_key的任何例子?
谢谢.
我想在浏览器cookie中保存用户的身份验证信息以进行持久登录.正如他们所说,它永远不会安全地在cookie中存储任何秘密信息(如密码),但为了有一个选项,如"记住密码",我认为没有任何其他选择.
因此,如果用户想要记住他的登录信息,并且我存储用户名(电子邮件)+不是密码,而是存储其他一些独特信息,例如cookie中的HASHED DB ID.然后我应检查存储在cookie中的散列ID是否与存储在Cookie中的用户电子邮件匹配.我认为任何人都可以很容易地看到存储在浏览器中的cookie(例如在Firefox中,选项 - > Cookies).
那么这就像有人从保存的计算机中读取cookie一样弱,然后在其他计算机上设置带有该信息的cookie并且他将登录?(因为脚本将检查存储的电子邮件并使用数据库散列id并且它将匹配)?
如果不在数据库中存储其他信息(例如会话ID等),这种方法可以改进吗?谢谢
codeigniter ×9
php ×8
cookies ×2
mysql ×2
controller ×1
forms ×1
model ×1
select ×1
setcookie ×1
variables ×1