Welcome Guest, Not a member yet? Register   Sign In
? How do I email a LINK from this Codeigniter 3 form? ?

I am working on a basic blog application in Codeigniter 3.1.8 and Bootstrap 4.

I have added a registration and login system to this application. I am current working on a password reset system.

I was able to do these 2 things separately:

Send a password reset email containing dummy text.
Create a valid password reset link.
I was unable however, to send the email once the reset link was inserted into the email body.

Here is he controller:

PHP Code:
class Newpassword extends CI_Controller {
    public function __construct()

    private $sender_email "[email protected]";
    private $sender_name "Razvan Zamfir";
    private $user_email '';
    private $subject 'Pasword reset link';
    private $reset_token '';
    private $reset_url '';
    private $reset_link '';
    private $body '';

    public function index() {
        // Display form
        $data $this->Static_model->get_static_data();
        $data['pages'] = $this->Pages_model->get_pages();
        $data['tagline'] = 'Reset your password';
        $data['categories'] = $this->Categories_model->get_categories();

        // Form validation rules
        $this->form_validation->set_error_delimiters('<p class="error-message">''</p>');

        if(!$this->form_validation->run()) {
        } else {
            if ($this->Usermodel->email_exists()) {

                  //Get user email
                  $this->user_email $this->input->post('email');

                    //create token
                    $this->reset_token md5(str_shuffle($this->user_email));

                    //create url
                $this->reset_url base_url('changepasword/') . $this->user_email '/'$this->reset_token;

                //create reset link
                $this->reset_link '<a href="' $this->reset_url '">password reset link</a>';

                echo $this->reset_link;die();

                $this->body "Here is your $this->reset_link. \n\nAfter clicking it you will be redirected to a page on the website where you will be able to set a new pasword.";

                // Send mail and rediect
} else {
                $this->session->set_flashdata('email_non_existent'"The email you provided does not exist in our database");

    public function sendResetMail() {
        // Loading the Email library
        $config['protocol'] = 'sendmail';
        $config['charset'] = 'utf-8';
        $config['mailtype'] = 'html';

        } else {

        // Build the body and meta data of the email message

            $this->session->set_flashdata('reset_mail_confirm'"A pasword reset link was send to the email address $this->user_email");
        } else{
            $this->session->set_flashdata('reset_mail_fail'"Our atempt to send a pasword reset link to $this->user_email has failed");

I have inspected the link, it is valid and the value of the href attribute is as intended, but once I remove echo $this->reset_link;die() I see the attempt to send the email failing:

[Image: lbskPl.png]


Echo out the variable to see what it is doing.

PHP Code:
echo $this->reset_url;
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )

Theme © iAndrew 2016 - Forum software by © MyBB