0

我在我的用户注册中添加了一个电子邮件验证步骤。我似乎无法访问电子邮件链接中传递的参数;

链接:activation.php?email=someone@somewhere.com&key=5614c46be05a95f55f2231d8dea41418d17b197a

这是页面代码;

class page_activation extends Page {
    function init(){
        parent::init();

    if($this->api->auth->isLoggedIn())$this->api->redirect('index');

    $loginAccount = $_GET['email'];
    $activationKey = $_GET['key'];

    $this->add('H1')->set('Activated');
    $this->add('H3')->set('Account: '.$loginAccount);
    $this->add('H3')->set('Key: '.$_GET['key']);
}
4

2 回答 2

0
var_dump($_GET);
  • 检查检查器中的网络选项卡以确保实际通过了获取参数。
  • 检查 mod 重写规则
于 2012-07-17T20:30:36.883 回答
0

我找到了一个解决方案,以防它可能对某人有所帮助。看来您可以访问 $_SERVER 变量,但在您访问该页面时 $_GET 变量已丢失。这是我用来从电子邮件链接访问传递的变量的一些代码;

class page_activation extends Page {
function init(){
    parent::init();

    if($this->api->auth->isLoggedIn())$this->api->redirect('index');

    $data = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
    $queryParts = split('[;&]', $data);

    $params = array(); 
    foreach ($queryParts as $param) { 
        $item = explode('=', $param); 
        $params[$item[0]] = $item[1]; 
    }

    $loginAccount = $params['email'];
    $activationKey =  $params['key'];

    $this->add('H1')->set('Activated');
    $this->add('H3')->set('Account: '.$loginAccount);
    $this->add('H3')->set('Key: '.$activationKey);


}

}

于 2012-07-18T01:59:16.650 回答