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

それが誰かを助けるかもしれない場合に備えて、私は解決策を見つけました。$ _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 に答える
0
var_dump($_GET);
  • インスペクタのネットワークタブをチェックして、get パラメータが実際に渡されていることを確認してください。
  • mod書き換えルールを確認する
于 2012-07-17T20:30:36.883 に答える