Nir*_*dam 0 php mysql codeigniter
我在codeigniter中开发应用程序,在发送邮件白色注册时收到以下错误.
PHP不推荐使用:与其类同名的方法将不会是PHP的未来版本中的构造函数; emailcomm在第3行的/var/www/html/portal/application/libraries/emailcomm.php中有一个弃用的构造函数
我的库文件位于emailcomm.php下面
class emailcomm
{
var $to;
var $subject;
var $message;
var $from='From:';
function emailcomm()
{
$this->CI=&get_instance();
ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.gmail.com';
$config['smtp_port'] = '465';
$config['_smtp_auth']=TRUE;
$config['smtp_user'] = 'contact-us@webtech.com';
$config['smtp_pass'] = 'Web8*98*2015';
$config['smtp_timeout'] = '60';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['mailtype'] = "html";
$this->CI->load->library('email',$config);
$this->CI->email->initialize($config);
}
}
Run Code Online (Sandbox Code Playgroud)
最近升级服务器到php7.在升级它工作之前,现在它不工作.现在我正在检查上面显示错误的错误日志.我可以在这个代码中更改?谁能帮帮我吗 .谢谢
在以前的版本中PHP,如果PHP找不到__construct()给定类的函数,它将按类的名称搜索旧式构造函数,但现在旧样式构造函数已在DEPRECATED中PHP 7.0,并将在以后的版本中删除.您应该始终使用__construct()新代码.阅读php手册
function __construct() {
// copy your old constructor function code here
}
Run Code Online (Sandbox Code Playgroud)
您需要使用__construct与您的类同名的函数来代替:
class Emailcomm
{
var $to;
var $subject;
var $message;
var $from='From:';
function __construct()
{
$this->CI=&get_instance();
ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.gmail.com';
$config['smtp_port'] = '465';
$config['_smtp_auth']=TRUE;
$config['smtp_user'] = 'contact-us@webtech.com';
$config['smtp_pass'] = 'Web8*98*2015';
$config['smtp_timeout'] = '60';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['mailtype'] = "html";
$this->CI->load->library('email',$config);
$this->CI->email->initialize($config);
}
}
Run Code Online (Sandbox Code Playgroud)
仅出于编码标准,请使用 CamelCase 作为以大写字母开头的类名。
还有一件事,恕我直言,您可能需要使用DotEnv库来处理您的配置,因为将其写在代码中有点混乱。
小智 6
您可以使用以下命令重命名emailcomm()函数__construct():
function __construct()
Run Code Online (Sandbox Code Playgroud)
代替
function emailcomm()
Run Code Online (Sandbox Code Playgroud)
或者您可以error_reporting在配置文件中使用以下内容:
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
Run Code Online (Sandbox Code Playgroud)