Пользователь должен получить электронное письмо в формате: —– Скопировать маркер: xxxxx И вставить его в эту ссылку —– Мои коды:
$message="Copy the token: ". token_generator(10)." ". "And paste it in the link "."<a href='recover_pass_get_mail.php'>Link</a>";
где xxxxx возвращается функцией token_generator (10). но пользователь получает в формате код написан
похоже, что ваша функция электронной почты не очень хорошо реагирует на html-теги, вы, вероятно, пропустили это в своем $header
объекте you'r $header
.
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
прочитайте это, https://css-tricks.com/sending-nice-html-email-with-php/
он имеет большое объяснение
Существует много моментов, о которых вам следует подумать. Вы можете заметить их в следующем примере кода:
<?php $fromTitle = "From Title"; $emailFrom = 'example_from@gmail.com'; $emailTo = 'example_to@gmail.com'; $token = token_generator(10); $subject = "Password Recovery"; $message = "Copy the token: $token And paste it in the link <a href='recover_pass_get_mail.php'>Link</a>"; $random_hash = md5(uniqid(time())); $header = "From: $fromTitle <$emailFrom>\r\n"; $header .= "Reply-To: ".$emailFrom."\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"".$random_hash."\"\r\n\r\n"; $header .= "This is token email.\r\n"; $header .= "--".$random_hash."\r\n"; $header .= "Content-type:text/html; charset=UTF-8\r\n"; $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; @mail($emailTo, $subject, $message, $header); ?>
Однако в ваших строках есть некоторые проблемы, вот несколько вещей, чтобы рассмотреть здесь:
Прежде всего, вы можете захотеть (как практический) назначить token_generator(10)
переменной на вашем скрипте.
Что-то вроде этого
$token = token_generator(10)
и передать $token
скрипту
Во-вторых, у вас возникают проблемы со строками в вашем письме. Вам не нужно обертывать вашу ссылку в тегах a href
(на самом деле это будет проблемой, если у пользователя нет включенной электронной почты HTML (как это многие не делают). Просто опубликуйте ссылку.
В-третьих, почему бы просто не прикрепить токен к URL-адресу? Это простой шаг для пользователя. Вот пример:
$message="Follow this link: http://(url)recover_pass_get_mail.php?token=$token";
а затем вы можете просто получить токен из URL-адреса, используя
$_GET['token'];
Ты пробовал ?
$myToken = token_generator(10); $message="Copy the token: $myToken And paste it in the link <a href='recover_pass_get_mail.php'>Link</a>";
DEMO