0

ユーザーがサイトにサインアップするときに、確認コードを記載した電子メールをユーザーに送信しようとしています。メールは問題なく送信されているのですが、URL全体を入力するとメールが送信されません

ここで、私が使用しているコードを見ることができます:

    $message = 'You have recieved this email because you have signed up to Amped. To complete the registration process, please
click on the link below. <br/> <a href=confirm.php?code=' . $row['emailcode'] . '>Click here to complete registration</a>'

リンクを機能させるには、confirm.php の前に完全な URL を入力する必要がありますが、これを行うと、メールが送信されません。何か案は?

4

3 に答える 3

1

相対パスを送信しています。次を使用して、ファイルへのパス全体を送信する必要がありますurlencode

$message = '<a href="' . urlencode("http://www.example.com/confirm.php?") . $row['emailcode'] . '">';
于 2013-03-27T20:42:16.717 に答える
0

引用符がありません:

 $message = 'You have recieved this email because you have signed up to Amped. To complete the registration process, please click on the link below. <br/> <a href="confirm.php?code=' . $row['emailcode'] . '">Click here to complete registration</a>'
于 2013-03-27T20:42:33.413 に答える
0

その url 変数をサニタイズし、URL を安全に使用するためにエンコードしてから、confirm.php でデコードする必要があります。db 値を URL にそのままエコーするのは得策ではありません。urlencode() は素晴らしい解決策です。これを行わないと、URL が破損し、ひいてはスクリプトが破損する可能性があります。

$code = urlencode($row['emailcode']);

$msg = "stuff.. <a href='http://www.example.con/confirm.php?code=". htmlentities($code) ."'>Click here</a>";
于 2013-03-27T20:46:52.513 に答える