PHP确认电子邮件链接将我带到错误页面

 2021-04-27 

PHP confirmation email link is takes me to the wrong page

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

您好用户名,现在这是您的登录信息:
用户名:计算密码:计算下一步是单击此链接来激活您的帐户:单击此处

您可以在上面的最后一行看到,该网站的名称已连接到activate.php页面,该链接应该将其链接到该网站。因此,我想我的错误不是很严重,我只是缺少正斜杠或类似的东西。
无论如何,我认为问题出在下面的代码。我已使代码尽量简短。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?

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

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

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

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

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

但是我需要一些知道的人的有效输入:)。


消息中的" a"和" href"之间需要一个空格。

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


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

这是固定版本:

1
2
3
4
5
6
$message ="Hello".$signup[fname].",".
 "Get ready to start getting the hits you deserve. Now here is your login info:    ".
 "username:".$signup[username]."".
 "password:".$signup[password]."".
 "The next step is to click on this link to activate your account:
  CLICK HERE"
;


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

此外,由于您是从外部来源(电子邮件托管网站)来的,因此可以"硬编码"您的链接和完整的网站地址一样有效。例如:

1
Click Here

因此您的消息值可能是。

1
2
3
4
5
$message ="Hello".$signup[fname].",".
"Get ready to start getting the hits you deserve. Now here is your login info:    ".
"username:".$signup[username]."".
"password:".$signup[password]."".
"The next step is to click on this link to activate your account:CLICK HERE";

双斜杠应该没有问题,但是如果您有疑问,可以使用:

1
2
3
4
5
$message ="Hello".$signup[fname].",".
"Get ready to start getting the hits you deserve. Now here is your login info:    ".
"username:".$signup[username]."".
"password:".$signup[password]."".
"The next step is to click on this link to activate your account:CLICK HERE";