我的codeigniter网站中有一个更改密码的弹出窗口。我可以从任何页面打开此窗口。因此,在更改密码完成后,它将重定向到同一页面。要重定向,我正在使用UICollectionView
。我在隐藏字段中设置它并以表单提交发送到服务器。
这是我的代码:
的 HTML:
index
控制器: Home.php
$_SERVER['REQUEST_URI']
此代码在我的本地服务器中运行,但不在实时站点中
首次尝试更改密码正在运行,但它会将<div class="modal-content">
<span class="modalclose" data-dismiss="modal"></span>
<h2 class="head edit">Change Password</h2>
<form action="<?php echo base_url()?>Home/changePassword" method="post">
<div class="field-wrap">
<input type="password" placeholder="Enter current Password" name="changePasswordCurrent" id="changePasswordCurrent" autocomplete="off">
<span id="changePasswordCurrentError" class="validation-cls rt"></span>
</div>
<div class="field-wrap">
<input type="password" placeholder="Enter new Password" name="changePasswordNew" id="changePasswordNew" autocomplete="off">
<span id="changePasswordNewError" class="validation-cls rt"></span>
</div>
<div class="field-wrap">
<input type="password" placeholder="Confirm Password" name="changePasswordConfirm" id="changePasswordConfirm" autocomplete="off">
<span id="changePasswordConfirmError" class="validation-cls rt"></span>
</div>
<div class="field-wrap">
<input type="hidden" name="requestURI" value="<?php echo $_SERVER['REQUEST_URI']?>" />
<button class="fill" id="saveNewPassword" type="submit">Save</button>
</div>
</form>
</div>
添加到网址public function changePassword() {
if($this->session->userdata('UserID') != ''){
$data = $this->input->post();
$result = $this->Home_model->changePassword($data);
redirect($data['requestURI']);
}
else {
redirect('../');
}
}
因此,如果我再次尝试更改密码,重定向将无效,因为它会再次将index.php
添加到http://example.com/index.php
之类的网址中
此问题仅存在于实时网站中。
答案 0 :(得分:0)
首先加载url helper(如果未加载)
$this->load->helper('url');
$currentURL = current_url(); //http://example.com/controller
从您的控制器传递$currentUrl
。
如果您有任何查询字符串。
找出查询字符串
$params = $_SERVER['QUERY_STRING']; //my_id=1,3
$fullURL = $currentURL . '?' . $params;
echo $fullURL; //http://myhost/main?my_id=1,3