小编Rom*_*man的帖子

使用CodeIgniter的Active Record将NOW()插入数据库

我想在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)

php mysql codeigniter

77
推荐指数
6
解决办法
12万
查看次数

在CodeIgniter中显示404错误的视图

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默认错误消息.

php codeigniter http-status-code-404

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

MVC中控制器与模型的区别

我对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)

它们应该放在控制器还是模型中?

目前,我将所有上述功能放在控制器中.这是对的吗?

php model-view-controller controller model codeigniter

12
推荐指数
1
解决办法
6069
查看次数

Codeigniter form_open指定id

如何在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)

谢谢.

forms codeigniter

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

在CodeIgniter中的另一个Controller中调用Controller函数

我的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.如果无法做到这一点,或者不推荐,我应该在多个控制器中将此功能放在哪里?谢谢.

php codeigniter class-visibility codeigniter-classloader

11
推荐指数
3
解决办法
6万
查看次数

在写上下文中不能使用方法返回值

以下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)

我该如何解决?

php codeigniter

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

CodeIgniter选择查询

我有一个简单的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)

谢谢.

php mysql variables select codeigniter

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

如何在CodeIgniter中检索cookie值?

我可以在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?

php cookies codeigniter setcookie

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

CodeIgniter中的加密密钥

CodeIgniter 2.0.2要求在配置文件中设置加密密钥,即$config['encryption_key'],如果要使用Session类.可以是任何字符串吗?安全encryption_key的任何例子?

谢谢.

codeigniter

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

在Cookie中存储登录信息

我想在浏览器cookie中保存用户的身份验证信息以进行持久登录.正如他们所说,它永远不会安全地在cookie中存储任何秘密信息(如密码),但为了有一个选项,如"记住密码",我认为没有任何其他选择.

因此,如果用户想要记住他的登录信息,并且我存储用户名(电子邮件)+不是密码,而是存储其他一些独特信息,例如cookie中的HASHED DB ID.然后我应检查存储在cookie中的散列ID是否与存储在Cookie中的用户电子邮件匹配.我认为任何人都可以很容易地看到存储在浏览器中的cookie(例如在Firefox中,选项 - > Cookies).

那么这就像有人从保存的计算机中读取cookie一样弱,然后在其他计算机上设置带有该信息的cookie并且他将登录?(因为脚本将检查存储的电子邮件并使用数据库散列id并且它将匹配)?

如果不在数据库中存储其他信息(例如会话ID等),这种方法可以改进吗?谢谢

php cookies

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