2011-11-14 85 views
0

用户注册后,网站发送激活码给电子邮件。类似的东西。 www.domain.com/?activate=<code>通过电子邮件发送用户激活链接。怎么运行的?

我正在创建两个激活变体: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'])),如果没事的话......我无法弄清楚如何行事?!以编程方式发送邮件到activation.php或什么?请帮忙。 Thx

+1

我已阅读您的问题,但我不确定要实现的目标。自动方法的目的是什么? – zrvan

+0

@zrvan他只是这样调用一个简单的激活链接。 –

回答

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调用它。

+0

你的意思是只包括以防万一自动激活? –

+0

@Tural,您将始终包含,但您只能在自动激活时调用activate()函数。 –

+0

但是我不需要包含在手动激活的情况下,因为页面会通过Ajax发送表单数据到这个文件 –

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(); 
0

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

+0

thx的信息,但请仔细阅读问题。这不是我需要的。你的意思是包含这个文件以防自动激活并通过ajax发送以防手动激活? –

+0

@TuralTeyyuboglu您的问题存在问题。我是令人难以置信的UNCLEAR。去搞清楚。 –

+0

我不明白你的问题是什么。您似乎希望能够从查询字符串处理激活码。这通常用$ _GET来完成,但如果你想同时使用post和get,那么你会使用$ _REQUEST。 – Derek

-1

我完全不理解你的问题。
看来你已经发明了它的地方。

一个通常的激活模式是:

的链接发送给用户,直接指向的激活脚本,像这样:

http://www.domain.com/activation.php?code=code 
在activation.php

你读了$ _GET ['code']变量 并激活用户。

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

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

相关问题