0

我有一个 php 脚本 :) 基本上,注册用户会收到一封电子邮件,然后单击激活链接。当他们点击激活链接时,它会将他们带到 activate.php 页面,一切都完成了。他们收到的电子邮件中的链接问题看起来像

您好,用户名,现在这里是您的登录信息:

用户名:computing
密码:computing

下一步是点击此链接激活您的帐户:点击这里

您可以在上面的最后一行中看到,该网站的名称已连接到该链接应该将它们带到的 activate.php 页面。所以我猜我的错误还不错,我只是缺少正斜杠或类似的东西。无论如何,我认为问题来自下面的代码。我尽量缩短了代码。

<?

// send email
$myname = $contact_name;
$myemail = $contact_email;

$contactname = $signup[fname];
$contactemail = $signup[email];
$message = "Hello ".$signup[fname].",<BR>".
"Get ready to start getting the hits you deserve. Now here is your login info:<BR>     <BR>".
"username: ".$signup[username]."<BR>".
"password: ".$signup[password]."<BR><BR>".
"<B>The next step is to click on this link to activate your account:<a href=".$siteUrl."activate.php?username=".$signup[username].">CLICK HERE</a></b>";
$subject = $title;

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$myname." <".$myemail.">\r\n";
$headers .= "To: ".$contactemail." <".$contactemail.">\r\n";
$headers .= "Reply-To: ".$myname." <".$myemail.">\r\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-MSMail-Priority: High\r\n";
$headers .= "X-Mailer: Just My Server";

mail($contactemail, $subject, $message, $headers);
$signup[username] = "";
?>

如果有人能对此有所了解,那就太好了。以为我会提到我正在使用 PHP 5.3 我认为我自己的问题来自 href=".$siteUrl."activate.php?username=".$signup[username].">CLICK HERE"; $subject = $title ;

但我需要一些有效的输入 :) 来自某个知道的人。

4

3 回答 3

2

您需要在消息中的“a”和“href”之间留一个空格。

此外,所有现代电子邮件客户端都会自动将 URL 转换为链接,因此可能根本不需要使用 href 标签。

于 2013-01-12T00:07:44.870 回答
0

我注意到,当您分配使用 .$siteUrl 的链接时。你真的设置了那个变量吗?

此外,由于您将来自外部来源(电子邮件托管网站),因此“硬编码”您的链接与您的完整网站地址一样好。前任:

<a href="http://www.yourwebsite.com/yourdirectories/activate.php?username=".$signup[username].">Click Here</a>

因此,您的消息值的值可能是。

$message = "Hello ".$signup[fname].",<BR>".
"Get ready to start getting the hits you deserve. Now here is your login info:<BR>     <BR>".
"username: ".$signup[username]."<BR>".
"password: ".$signup[password]."<BR><BR>".
"<B>The next step is to click on this link to activate your account:<a href='http://www.yourwebsite.comactivate.php?username=".$signup[username]."'>CLICK HERE</a></b>";

双斜杠不应该有问题,但如果你有问题,你可以使用:

$message = "Hello ".$signup[fname].",<BR>".
"Get ready to start getting the hits you deserve. Now here is your login info:<BR>     <BR>".
"username: ".$signup[username]."<BR>".
"password: ".$signup[password]."<BR><BR>".
"<B>The next step is to click on this link to activate your account:<a  href='http:/"."/www.yourwebsite.com/activate.php?username=".$signup[username]."'>CLICK HERE</a></b>";
于 2013-01-12T00:07:25.270 回答
0

因为它在字符串 "s 中,所以您需要转义它们或使用单引号。

这是一个固定版本:

$message = "Hello ".$signup[fname].",<br>".
  "Get ready to start getting the hits you deserve. Now here is your login info:<br>     <br>".
  "username: ".$signup[username]."<br>".
  "password: ".$signup[password]."<br><br>".
  "<b>The next step is to click on this link to activate your account: 
  <a href='".$siteUrl."activate.php?username=".$signup[username].'>CLICK HERE</a></b>";
于 2013-01-12T00:12:36.287 回答