如何在php中设置已发送到邮件的url以及应该重定向到另一个url的链接

如何在php中设置已发送到邮件的url以及应该重定向到另一个url的链接,php,mysql,email,url,redirect,Php,Mysql,Email,Url,Redirect,我有发送到给定电子邮件的URL。但是,我希望用户单击该URL时被重定向到另一个URL 我尝试了下面的代码来发送邮件,但我不知道如何创建一个URL,它将重定向到另一个页面 <?php $send_link=getLink("http://www.google.com",array("referral"=>"123","mobilenumber"=>"1234")); echo $send_link; function getLink($url,$params=array()

我有发送到给定电子邮件的URL。但是,我希望用户单击该URL时被重定向到另一个URL

我尝试了下面的代码来发送邮件,但我不知道如何创建一个URL,它将重定向到另一个页面

<?php

$send_link=getLink("http://www.google.com",array("referral"=>"123","mobilenumber"=>"1234"));
echo $send_link;


function getLink($url,$params=array(),$use_existing_arguments=false)
{

    if($use_existing_arguments) $params = $params + $_GET;

    if(!$params) return $url;
    $link = $url;

    if(strpos($link,'?') === false) $link .= '?';
    //If there is no '?' add one at the end
    elseif(!preg_match('/(\?|\&(amp;)?)$/',$link)) $link .= '&amp;';
    //If there is no '&' at the END, add one.
    $params_arr = array();
    foreach($params as $key=>$value)
    {

        if(gettype($value) == 'array')
        {
            //Handle array data properly
            foreach($value as $val)
            {
                $params_arr[] = $key . '[]=' . urlencode($val);
            }

        }
        else
        {
            $params_arr[] = $key . '=' . urlencode($value);
        }

    }

    $link .= implode('&amp;',$params_arr);
    return $link;
}

$user_id='1';
$get_referred_user=mysqli_query($con,"select * from Phone_Book_Email where contact_id='$user_id'");

if (mysqli_num_rows($get_referred_user) > 0)
{
    while($row = mysqli_fetch_assoc($get_referred_user))
    {
        $email_id=$row['email_id'];
        echo $email_id;
        $to      = $email_id;
        $subject = 'test';
        $message = 'URL- '.$send_link;
        $headers = 'From: Hubster@hubster.com' . "\r\n" .    'Reply-To: Hubster@hubster.com' . "\r\n" .    'X-Mailer: PHP/' . phpversion();
        mail($to, $subject, $message, $headers);
        //header("Location:http://www.facebook.com");
        //header("refresh: $time_in_seconds; url=http://www.facebook.com");
    }

}


?>

要使一个链接指向另一个地址,您必须在电子邮件HTML标记中使用

这意味着在电子邮件的标题中,您还应使用:

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
而在您的邮件中,您可以简单地使用HTML标记:

<HTML><BODY><A HREF="$link_a">$link_b</A></BODY></HTML>
您还可以参考此处提供的信息:

老实说,你需要的东西很简单

<a href="http://facebook.com">google.com</a>


因此,在本例中,它将以
href
链接的形式向您显示google.com,但当您单击它时,您将转到facebook。

您的意思是,您希望在消息中显示一个链接,并在单击链接时在浏览器中打开另一个地址吗?或者你想将HTTP请求从一个地址重定向到另一个地址?嘿@Abdael5谢谢你的回复..你说得对,我想点击一下显示在消息中,该链接应该重定向到另一个链接上…这两个链接都在你的服务器上吗?不@Akshay,我只是在尝试另一个链接,第一个链接是www.google.com,第二个链接是www.facebook.com。@Neha
类似的东西吗?嘿@Abdel5,我已经试过你的代码了,应该是这样的,只是没有$to=$email\u id$主题=‘测试’$消息='URL-'。“”$标题='来自:Hubster@hubster.com' . “\r\n”。”答复:Hubster@hubster.com' . “\r\n”。”X-Mailer:PHP/”。phpversion()$标题。=“MIME版本:1.0\r\n”$标题。=“内容类型:text/html;字符集=ISO-8859-1\r\n”;邮件($to、$subject、$message、$headers);请删除更新回复中显示的{}标记。嘿@Abdel5如果我使用的是您建议我使用的$headers,邮件不会通过电子邮件发送,但是如果我使用的是没有$headers的邮件发送,邮件发送。我已经尝试了您的更新代码,邮件正在发送,该链接看起来像这样..>这可能是因为在“X-Mailer:PHP/”之后。phpversion()'您应该有“\r\n”。它应该是这样的编号$消息='URL-';嘿@Akshay,我已经试过你的代码了我在邮件中收到的消息是这样的
$message = "URL- "."<A HREF=\"$send_link\">$link_b</A>"; 
$message = "URL- "."<A HREF=\"".$send_link."\">".$link_b."</A>"; 
     $to = $email_id; 
    $subject = 'test';
    $send_link = 'http://google.com';
    $link_b = 'http://facebook.com';
 $message = "URL- "."<A HREF=\"".$send_link."\">".$link_b."</A>"; 
 $headers = 'From: Hubster@hubster.com' . "\r\n" .
 'Reply-To: Hubster@hubster.com' . "\r\n" .
 'X-Mailer: PHP/' . phpversion()."\r\n";
 $headers .= "MIME-Version: 1.0\r\n";
 $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
 mail($to, $subject, $message, $headers);
<a href="http://facebook.com">google.com</a>