URL подтверждения электронной почты Codeigniter - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть URL для подтверждения моей электронной почты с использованием codeigniter, например: http://localhost/sistem/test/email_vertification/4/fdf0b4b6ca1340cc1758555cafebbf0a836ba939454a4a250053a15b855909802307534eec2494564b4f1e3e47110a477993725f146ff3769892217f4818535aUcugLME3AoV4UffTdM/U8T+cZ12MLMCjizPCqf0b4+bAgoQojQmobJnmhN5qSOUS5isbN0qPO6GujCxZT71C3Q==

И это мой контроллер для расшифровки данных по ссылке.

public function email_vertification($id_account, $ciphertext)
{
     $account = $this->db->get_where('ms_account', ['id_account' => $id_account])->row_array();

     echo $ciphertext."<br>";
     echo $account['code'];

     if ($ciphertext == $account['code'])
     {
         $dec_data = $this->decrypt($account['key'], $account['hmac_key'], $account['code']);

         // this result will be null if I use ciphertext from the URL
         var_dump($dec_data);
     }
}

У меня есть два варианта: я сохраняю и использую зашифрованный текст из базы данных или использую зашифрованный текст из URL. И результат будет нулевым, если я использую зашифрованный текст из URL, потому что зашифрованный текст не совпадает. Результат из моего echo :

fdf0b4b6ca1340cc1758555cafebbf0a836ba939454a4a250053a15b855909802307534eec2494564b4f1e3e47110a477993725f146ff3769892217f4818535aUcugLME3AoV4UffTdM
fdf0b4b6ca1340cc1758555cafebbf0a836ba939454a4a250053a15b855909802307534eec2494564b4f1e3e47110a477993725f146ff3769892217f4818535aUcugLME3AoV4UffTdM/U8T+cZ12MLMCjizPCqf0b4+bAgoQojQmobJnmhN5qSOUS5isbN0qPO6GujCxZT71C3Q==

Вопрос в том, почему это происходит с зашифрованным текстом из моего URL? и почему я не могу получить полный зашифрованный текст из моей ссылки URL. Спасибо ,,

1 Ответ

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

Зашифрованный текст содержит /. Таким образом, Codeigniter будет понимать текст после / как следующий параметр для email_vertification() метода.

Вы можете попробовать

public function email_vertification($id_account, $ciphertext1,$ciphertext2)

Тогда

if(($ciphertext1."/".$ciphertext2) == $account['code'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...