使用$ _GET访问参数
问题描述:
我正在为我的用户注册添加一个电子邮件验证步骤。我似乎无法访问电子邮件链接中传递的参数;
链路:[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']);
}
答
var_dump($_GET);
- 检查网络选项卡,以确保获得PARAMS实际上通过。
- 检查国防部重写规则
答
我已经找到了解决办法的情况下,它可能会帮助别人。看起来您可以访问$ _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);
}
}
你尝试调试它?是的,看到有一些花括号失踪... Probalby错误的原因。检查你的'if'语句! – 2012-07-17 02:39:43
格式使得它看起来像{}缺少if语句。它输出“激活,帐户和密钥”,但没有传递参数的内容。我已更新原始帖子。 – Micheal 2012-07-17 03:52:49
看来我无法回答我的问题。但答案不适合。你可以告诉我这是新的... – Micheal 2012-07-17 06:03:18