PHP链接与post而不是get

时间:2018-04-08 15:19:59

标签: php

我通过电子邮件发送链接:

$to = $email;
                        $subject = "Reset your password";
                        $txt = "Hello " . $user . ", <br><br>Click here to reset your password <a href='http://example.com/reset-password?email=" . $email . "'>Reset Password</a>";

                        $headers  = 'MIME-Version: 1.0' . "\r\n";

                        $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

                        $headers .= "From: webmaster@example.com";

                        if(mail($to,$subject,$txt,$headers))
                        {
                            $returnArray['error_message'] = "Email has been sent.";
                        }
                        else
                        {
                            $returnArray['error_message'] = "There is an issue with sending an email";
                        }

现在我将电子邮件作为$ _GET传递,但我试图将其作为$ _POST,我尝试使用这样的javascript:

<script type="text/javascript">

    function DoPost(userEmail){
      $.post("http://example.com/reset-password/", { email: userEmail } );
   }

</script>

然后在我的链接上有这个:

$txt = "Hello " . $user . ", <br><br>Click here to reset your password <a href='javascript:DoPost(" . $email . ");'>Reset Password</a>";

然后我收到了电子邮件,结果是这样的:

<a rel="nofollow">Reset Password</a>

该链接未显示在电子邮件中,是否可以执行我要执行的操作,在电子邮件中创建帖子链接?

2 个答案:

答案 0 :(得分:0)

您应该使用form html标记将其换行,而不是使用带有get参数的a href链接:

$txt = "Hello " . $user . ", <br><br>Click here to reset your password 
<form action='http://example.com/reset-password' method='post'>
  <input type='hidden' name='email' value='".$email."'>  
   <button type='submit'  value='Submit'>Reset Password</button>
</form>";

答案 1 :(得分:0)

大多数电子邮件客户端不支持表单提交或任何形式的Javascript。而且你应该总是假设人们默认阻止来自电子邮件的脚本/图像。点击电子邮件中的链接通常会打开用户的网络浏览器并将其重定向到该页面 - 这样您就可以附加?foo=bar的查询字符串,并通过$_GET访问这些参数。< / p>

如果您绝对必须在$_POST中检索这些参数,无论出于何种原因,您都可以将用户重定向到通过Javascript自动提交为POST的表单(并预先填充一些隐藏的输入以使您的参数通过通过)。