我使用CakePHP 2.6.7: 我有密碼重置網址,如: http://www.jegeachi.com/resellers/resetpw/9610f4e33d96ad6189c5a779ab90f10aBXX1066056669XXB12/如何在cakephp中獲取url參數?
下面的經銷商是控制器和resetpw是動作9610f4e33d96ad6189c5a779ab90f10aBXX1066056669XXB12是我要傳遞到resetpw函數的參數。
現在resetpw.ctp:
<style type="text/css">
.alert {
padding: 6px;
margin-bottom: 5px;
border: 1px solid transparent;
border-radius: 4px;
text-align: center;
}
.alert.alert-error {
background: #A9B0B5;
color: #EF5858;
font-weight: normal;
}
</style>
<div class="page-content-wrapper">
<div class="page-content">
<!-- BEGIN PAGE CONTENT-->
<div class="content">
<!-- BEGIN LOGIN FORM -->
<?php
echo $this->Form->create('Reseller', array(
'inputDefaults' => array(
'label' => false,
'div' => false
),
'class' => 'login-form',
'url' => array('controller' => 'resellers', 'action' => 'resetpw')
)
);
?>
<h3 class="form-title">Type your new password</h3>
<div class="alert alert-danger display-hide">
<button class="close" data-close="alert"></button>
<span>
Enter your new password first. </span>
</div>
<div class="form-group">
<label class="control-label visible-ie8 visible-ie9">New Password</label>
<div class="input-icon">
<i class="fa fa-lock"></i>
<?php
echo $this->Form->input(
'password', array(
'class' => 'form-control placeholder-no-fix',
'type' => 'password',
'autocomplete' => 'off',
'placeholder' => 'New Password'
)
);
?>
</div>
</div>
<div class="form-actions">
<?php
echo $this->Form->button(
'Reset Password <i class="m-icon-swapright m-icon-white"></i>', array(
'class' => 'btn blue pull-right',
'type' => 'submit',
'escape' => false
)
);
?>
</div>
<?php echo $this->Form->end(); ?>
<!-- END LOGIN FORM -->
</div>
<!-- END PAGE CONTENT -->
</div>
</div>
<!-- END CONTENT -->
內轉售行動:
function resetpw($a){
$this->layout = "public-login";
$this->loadModel('Reseller');
if ($this->request->is('post')) {
echo 'a : '.$a;
pr($this->params['url']); exit;
$a = func_get_args();
$keyPair = $a[0];
$key = explode('BXX', $keyPair);
$pair = explode('XXB',$key[1]);
$key = $key[0];
$pair = $pair[1];
$password = $this->request->data['Reseller']['password'];
unset($this->request->data['Reseller']['password']);
$uArr = $this->Reseller->findById($pair);
if($uArr['Reseller']['resetkey'] == $key) {
$this->Reseller->read(null, $pair);
$this->Reseller->set('password', $password);
if($this->Reseller->save()) {
$msg = ' <div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Your password has been reset</strong>
</div>';
} else {
$msg = ' <div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
Something has gone wrong. Please try later or <strong>sign up again</strong>
</div>';
}
} else {
$msg = ' <div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Invalid link.Please check your reset link</strong> Invalid link.Please check your reset link
</div>';
}
$this->Session->setFlash($msg);
$this->redirect(array('controller'=>'resellers', 'action' => 'login'));
}
}
在這裏,我要趕URL數據9610f4e33d96ad6189c5a779ab90f10aBXX1066056669XXB12 但沒有下面的打印我的數據:
echo 'a : '.$a;
pr($this->params['url']); exit;
如何獲得此url值。
其實我把$ a分成我想要的變量,如$ key,$ id。因此,我只是把$ a的原始值作爲臨時變量。謝謝。 –
嗯,你可以用'$ a'做任何你想做的事情。 – skywalker