在codeigniter中发送到DB之前加密用户SMTP

时间:2013-08-29 12:12:49

标签: php codeigniter email encryption

我有这个问题:尝试创建管理面板,我有用户的输入和SMTP帐户的通过,我需要在将其发送到数据库之前尽可能安全,我这样做:

$config = array(
'protocol' => 'smtp',
'smtp_host' => Settings_model::$db_config['smtp_host'],
'smtp_port' => Settings_model::$db_config['smtp_port'],
'smtp_user' => $this->encrypt->decode(Settings_model::$db_config['smtp_user']),
'smtp_pass' => $this->encrypt->decode(Settings_model::$db_config['smtp_pass']),
'smtp_timeout' => 30,
'charset' => "utf-8",
'newline' => "\r\n"
            );

我收到了这个错误: Fatal error: Using $this when not in object context in /application/helpers/send_email_helper.php on line 29

这一行:

'smtp_user' => $this->encrypt->decode(Settings_model::$db_config['smtp_user']),

'smtp_pass' => $this->encrypt->decode(Settings_model::$db_config['smtp_pass']),

有什么想法吗?我不想在文件中公开pass和user。 提前谢谢!

2 个答案:

答案 0 :(得分:0)

无法在静态方法中使用$this运算符。

对于静态方法,您应该使用self::而不是$this

答案 1 :(得分:0)

全部谢谢!

我从这个回答中解决了这个问题:https://stackoverflow.com/a/9321743

$ci = get_instance(); // $ci replaces $this

现在有效!