2012-07-17 81 views
0

我正在爲我的用戶註冊添加一個電子郵件驗證步驟。我似乎無法訪問電子郵件鏈接中傳遞的參數;

鏈路:[email protected] &鍵= 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']); 
} 
+0

你嘗試調試它?是的,看到有一些花括號失蹤... Probalby錯誤的原因。檢查你的'if'語句! – 2012-07-17 02:39:43

+0

格式使得它看起來像{}缺少if語句。它輸出「激活,帳戶和密鑰」,但沒有傳遞參數的內容。我已更新原始帖子。 – Micheal 2012-07-17 03:52:49

+0

看來我無法回答我的問題。但答案不適合。你可以告訴我這是新的... – Micheal 2012-07-17 06:03:18

回答

0
var_dump($_GET); 
  • 檢查網絡選項卡,以確保獲得PARAMS實際上通過。
  • 檢查國防部重寫規則
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); 


} 

}