Как я могу отправить ссылку для сброса пароля с codeigniter? - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь отправить ссылку для сброса пароля пользователю, который забыл пароли с codeigniter. Все работает хорошо, однако возвращается ошибка с ошибкой


A PHP Error was encountered
Severity: Notice

Message: Undefined variable: http://localhost/ucuztoptan/giris/mail_sifreyenile/AUc20agxnSZL/onurcck@gmail.com

Filename: controllers/Giris.php

...

Вот мой код относительно этого

public function farklisifre()
    {
        $viewData = new StdClass();
        $viewData->viewFolder = $this->viewFolder;
        $viewData->subViewFolder = "sifremiunuttum";

        $email = $this->input->post("email");

        $this->load->helper("string");
        $temp_password = random_string("alnum", 12);


        $link=base_url()."giris/mail_sifreyenile/".$temp_password."/". $email;

            if($email){

                $config = array(

                    "protocol"   => "smtp",
                    "smtp_host"  => "mail.avantajsepetim.com",
                    "smtp_port"  => "587",
                    "smtp_user"  => "noreply@avantajsepetim.com",
                    "smtp_pass"  => "Ocec8687icsc@",
                    "starttls"   => true,
                    "charset"    => "utf-8",
                    "mailtype"   => "html",
                    "wordwrap"   => true,
                    "newline"    => "\r\n"
                );

                $this->load->library("email", $config);

                $this->email->from("noreply@avantajsepetim.com", "Avantajsepetim");
                $this->email->to($email);
                $this->email->subject("Şifre Yenileme");
                $this->email->message("Aşağıdaki bağlantıya tıklayarak, açılacak olan sayfadan şifrenizi yenileyebilirsiniz.</br> <a href='${$link}'> $link</a> ");



                $send = $this->email->send();

                if ($send) {

                    $bilgi="Şifre güncelleme mailiniz gönderilmiştir.";
                    $viewData->bilgi = $bilgi;
                    $this->load->view("{$viewData->viewFolder}/{$viewData->subViewFolder}/index", $viewData);



                } else {

                    $bilgi = "Mail gönderme esnasında bir hata ile karşılaşıldı.";
                    $viewData->bilgi = $bilgi;
                    $this->load->view("{$viewData->viewFolder}/{$viewData->subViewFolder}/index", $viewData);

                }


            }

}

Проблема в этой строке. Я использую codeigniter, как вы знаете. Я не могу решить это до сих пор. Все работает нормально, но странно, я сталкиваюсь с этой ошибкой ...

                $this->email->message("Aşağıdaki bağlantıya tıklayarak, açılacak olan sayfadan şifrenizi yenileyebilirsiniz.</br> <a href='${$link}'> $link</a> ");


1 Ответ

0 голосов
/ 25 февраля 2020

Пожалуйста, исправьте это следующим образом

$message = "Aşağıdaki bağlantıya tıklayarak, açılacak olan sayfadan şifrenizi yenileyebilirsiniz.
            </br><a href='".$link."'>".$link."</a>";
$this->email->message($message);

У вас проблема с конкатенацией переменной со строкой.

Что я предлагаю, так это то, что отправка информации, такой как адрес электронной почты, не приветствуется. Конфиденциальная информация не должна быть видна в URL. Вместо этого сохраните сгенерированный временный пароль в отдельном поле, посвященном забытому паролю, в базе данных и передайте его в URL.

Когда пользователь нажимает на ссылку, необходимо подтвердить временный пароль с помощью пароля, который уже хранится в базе данных. Как только пользователь сбросит свой пароль, вы удалите временный пароль из базы данных.

Надеюсь, это вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...