通过电子邮件发送用户激活链接。这个怎么运作?

时间:2011-11-14 17:34:29

标签: php post get

用户注册后,网站会将激活码发送给电子邮件。类似的东西。 www.domain.com/?activate=<code>

我正在创建2种激活变体:1.manual 2.auto 让我们说我们有index.php。

1. 手动方法。当有人想手动激活用户时,一切都很明显:

用户打开页面www.domain.com/?activate

Index.php检查以下脚本并包含div文件(包含激活表单)

   if (isset($_GET['activate'])) {
      $page='activate';
      $divfile = 'path to div.php';
    } 
    include $divfile;

然后页面通过ajax将表单数据发送到activation.php文件。

2. 自动方法。假设用户直接点击www.domain.com/?activate=<code>。我想做的是,检查if(!empty($_GET['activate'])),如果可以的话。我无法弄清楚该怎么做。以编程方式将POST等内容发送到activation.php或什么?

4 个答案:

答案 0 :(得分:1)

通常,您可以从index.php调用所需的函数。你不会发布任何东西。

查看include和include_once。

您应该将激活码封装到一个单独的php文件中,该文件充当您的函数库。创建一个activate()方法,在名为activate.php的文件中执行激活。

然后,从activation.php和index.php开始,你可以这样做:

include 'activate.php';

// Call the activate function from activate.php
activate($code);

但是,您不要发布呼叫其他代码。你只需从PHP调用它。

答案 1 :(得分:0)

如果您在单个服务器上执行所有这些操作,我不确定是否需要POST。您可以使用包含激活功能的包含文件。但是,如果您在服务器之间进行通信,则可以使用HTTP_Request2,最好启用SSL选项。

使用HTTP_Request2进行GET非常简单。从PEAR获取它的开源代码。

// prep $serverName by putting the get parameters at the end
// of the URL with ?this=that
$req = new HTTP_Request2($serverName, HTTP_Request2::METHOD_GET);
$HTTPResponse = $req->send();

答案 2 :(得分:0)

使用$ _REQUEST以选择GET和POST(无论哪个可用)。然后只使用处理表单的相同代码作为处理?activation = 0000请求的页面。

答案 3 :(得分:-1)

我根本不明白你的问题。

通常的激活架构是:

发送给用户的链接,将直接指向激活脚本,如下所示:

http://www.example.com/activation.php?code=code

在activation.php中,您阅读$_GET['code']变量并激活用户。

如果您想让用户能够将代码粘贴到某种形式 - 将表单添加到此页面。他们输入它并且结果具有相同的链接。没有大碍。

就是这样。没有“程序化的POST”,没有ajax,没有狡猾的计划 - 一切都很简单。