У меня очень странная проблема. Я использую PHP, в своем коде PHP, я написал содержание электронной почты и сгенерировал эту ссылку:
.... <a href="http://www.domain.com/act.php?id=' . $userid . '&key=' . $actkey . '">http://www.domain.com/act.php?id=' . $userid . '&key=' . $actkey . '</a> ....
В большинстве случаев все работает нормально. Затем я получаю много жалоб о том, что они не могут активироваться. Проверив их электронную почту, я нашел это:
<a href="http://www.domain.com/act.php?id=20090=hsdf87hsf89sd">http://www.domain.com/act.php?id=20090=hsdf87hsf89sd'</a>
"& ключ" отсутствует. Зачем? Очень странная ошибка !!!
Полная команда PHP:
$content = '<div style="font-family:Calibri; color:#333;"> Hi there, <br><br> Thank you for register to our website, click the following link to activate your account:<br><br> <a href="http://www.domain.com/act.php?id=' . $userid . '&key=' . $actkey . '">http://www.domain.com/act.php?id=' . $userid . '&key=' . $actkey . '</a><br><br> XXX Team</div>';
Гамбо может быть прав, мой почтовый контент основан на HTML:
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
Вам необходимо кодировать символ & с помощью ссылки , например &:
&
&
'<a href="http://www.domain.com/act.php?id=' . $userid . '&key=' . $actkey . '">http://www.domain.com/act.php?id=' . $userid . '&key=' . $actkey . '</a>'
Или лучше:
'<a href="' . htmlspecialchars('http://www.domain.com/act.php?id=' . $userid . '&key=' . $actkey) . '">' . htmlspecialchars('http://www.domain.com/act.php?id=' . $userid . '&key=' . $actkey) . '</a>'
Gumbo подходит для кодирования & как & amp; в документе HTML. Вы можете позволить PHP http_build_query () выполнять всю кодировку, необходимую для построения правильной строки запроса.
/* testdata: */ $userid=12; $actkey='abc&def'; $params = http_build_query(array( 'id'=>$userid, 'key'=>$actkey ), '', '&'); $url = 'http://www.domain.com/act.php?'.$params; echo $url;
отпечатков http://www.domain.com/act.php?id=12&key=abc%26def
http://www.domain.com/act.php?id=12&key=abc%26def
Поставь ключ на первое место:
<a href="http://www.domain.com/act.php?key=' . $actkey . '&id=' . $userid . '">http://www.domain.com/act.php?key=' . $actkey . '&id=' . $userid . '</a>
&key используется как строка, например. echo '&key';, ничего особенного не значит - это просто обычная строка. Не могли бы вы вставить весь код?
&key
echo '&key';
Проблема может заключаться в том, что символ & является специальным символом в HTML.