【问题标题】:Codeigniter Message: Call to undefined function random_string()Codeigniter 消息:调用未定义的函数 random_string()
【发布时间】:2018-08-12 02:43:44
【问题描述】:

我遇到了以下错误遇到未捕获的异常

类型:错误

消息:调用未定义的函数 random_string()

文件名:C:\xampp\htdocs\HerbalCebu\application\controllers\login.php

行号:128

回溯:

文件:C:\xampp\htdocs\HerbalCebu\index.php 行:315 功能: 需要一次,

当我想生成一个随机字符串作为用户的临时密码时

这是我的控制器

function forgot_password()
            {
            $this->form_validation->set_rules('emailpass', 'emailpass', 'trim|required');

            if($this->form_validation->run() == FALSE)
            {

            $this->load->view('Login/modal_forgot');
            $this->load->view('CustTemplate/header');
            $this->load->view('Login/Login');
            $this->load->view('CustTemplate/footer');
            }else{
            $password = ('alpha', 8);
            $data = array('password'=>md5($password));
            $this->db->where('email',$this->input->post('emailpass'));

            $this->db->update('users',$data);
            $this->session->set_flashdata('message','here is your new password: <mark>'.$password.'</mark><br> please login now and change the given password');
            redirect(base_url('login'));
            }
            }

            public function check_email($password)
            {
                $email = $this->input->post('emailpass');

                $result = $this->queries_login->get_email($email);

                if($result)
                {
                    return TRUE;
                }
                else
                {
                    $this->form_validation->set_message('Check_email','The email you entered is not on the database');
                    return FALSE;
                }
            }

还有模特

public function get_email($email)
        {
            $this->db->select('*');
            $this->db->from('users');
            $this->db->where('email',$email);
            $this->db->limit(1);

            $query = $this->db->get();

            if($query ->num_rows()==1)
            {
                return $query->result();
            }
            else
            {
                return false;
            }
        }

【问题讨论】:

  • 您是否加载了字符串助手,您最好将助手加载到控制器的__construct区域中。
  • 不要再次使用 md5 作为密码 非常不安全 不适合密码

标签: php codeigniter


【解决方案1】:

我并没有真正看到它在您的代码中的任何地方使用(可能在这里:$password = ('alpha', 8);?),但您应该在通过$this-&gt;load-&gt;helper('string'); 调用函数之前加载帮助程序或在application/config/autoload.php 中自动加载它

如果错误仍然存​​在,请确保该文件存在于system/helpers/string_helper.php


正如有人使用 md5 时不断建议的那样 - 你真的不应该使用它(甚至在官方文档中建议):http://php.net/manual/en/function.md5.php

您可以使用password_hash 函数验证password_verifyhttp://php.net/manual/en/function.password-hash.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-06
    • 2012-02-16
    • 2018-05-05
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 1970-01-01
    相关资源
    最近更新 更多