Php 通过电子邮件发送用户激活链接。它是如何工作的?

Php 通过电子邮件发送用户激活链接。它是如何工作的?,php,post,get,Php,Post,Get,用户注册后,网站会向电子邮件发送激活码。差不多吧。www.domain.com/?激活= 我正在创建两种激活变体:1.手动2.自动 假设我们有index.php 1.人工方法。当有人想要手动激活用户时,所有事情都是显而易见的: 用户打开网页www.domain.com/?激活 php使用以下脚本进行检查,并包括包含激活表单的div文件 if (isset($_GET['activate'])) { $page='activate'; $divfile = 'path

用户注册后,网站会向电子邮件发送激活码。差不多吧。www.domain.com/?激活=

我正在创建两种激活变体:1.手动2.自动 假设我们有index.php

1.人工方法。当有人想要手动激活用户时,所有事情都是显而易见的:

用户打开网页www.domain.com/?激活

php使用以下脚本进行检查,并包括包含激活表单的div文件

   if (isset($_GET['activate'])) {
      $page='activate';
      $divfile = 'path to div.php';
    } 
    include $divfile;
然后页面通过ajax将表单数据发送到activation.php文件


2.自动方法。假设用户直接点击www.domain.com/?activate=。我想做的是,检查一下!空$\u GET['activate'],如果可以的话。我不知道该怎么办。通过编程方式将类似POST的内容发送到activation.php或其他什么?

如果您在一台服务器上执行所有这些操作,我不确定是否需要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();

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

看一下include和include_

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

然后,从activation.php和index.php执行如下操作:

include 'activate.php';

// Call the activate function from activate.php
activate($code);
http://www.example.com/activation.php?code=code

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

使用$\u请求来选择GET和POST,无论哪一个可用。然后使用与处理?activation=0000请求的页面相同的处理表单的代码。

我完全不理解您的问题

通常的激活模式是:

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

include 'activate.php';

// Call the activate function from activate.php
activate($code);
http://www.example.com/activation.php?code=code
在activation.php中,读取$\u GET['code']变量并激活用户

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


就这些。没有编程帖子,没有ajax,没有狡猾的方案-一切都简单明了。

你的意思是只在自动激活时包含?@natural,你总是会包含,但你只会在自动激活时调用激活功能。但我不需要在手动激活时包含,因为页面会通过ajax将表单数据发送到该页面file@Tural,很抱歉弄错了,您应该将激活函数移动到它自己的文件中,并从activation.php和index.php调用它。很抱歉我更新了我的答案。thx的信息,但请仔细阅读问题。这不是我需要的。您的意思是在自动激活的情况下包含此文件,在手动激活的情况下通过ajax发送?@TuralTeyyuboglu您的问题有问题。我不清楚。想想看,我不明白你的问题是什么。您似乎希望能够处理查询字符串中的激活码。这通常是用$\u GET完成的,但是如果你想同时使用post和GET,那么你可以使用$\u REQUEST。我已经阅读了你的问题,我不确定你想要实现什么。“自动”方法的目的是什么?@zrvan他只是把这种方式称为一个简单的激活链接。