2017-11-30 25 views
0

私のcodeigniterサイトにパスワードを変更するためのポップアップウィンドウがあります。どのページからでもこのウィンドウを開くことができます。パスワードの変更が完了すると、同じページにリダイレクトされます。リダイレクトするには、$_SERVER['REQUEST_URI']を使用しています。これを隠しフィールドに設定して、フォーム送信でサーバーに送信します。
HTML:: はここに私のコードです

<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> 

コントローラー:Home.php

public function changePassword() { 
    if($this->session->userdata('UserID') != ''){ 
     $data = $this->input->post(); 
     $result = $this->Home_model->changePassword($data); 
     redirect($data['requestURI']); 
    } 
    else { 
     redirect('../'); 
    }   
} 

このコードはなく、ライブサイトでは、私のローカルサーバーに取り組んでいます。パスワードを変更する
最初の試みが働いているが、それはこの問題は存在http://example.com/index.php/index.php
のようなURLに再びindex.phpを追加しますので、それは私が再びパスワードを変更しようとした場合、リダイレクトは動作しませんので、http://example.com/index.php
としてURLにindex.phpを追加しますライブサイトでのみ。

+0

を見つける;' – Yahya

+1

あなたは($ _ SERVER)しますprint_rできますREQUEST_URIがあなたのライブサイトであるかどうかを確認。 –

+0

@Aggarat、既にライブがあるのでこれをテストできません – geeth

答えて

0

まず負荷あなたのコントローラからのurlヘルパー(それがロードされていない場合)

$this->load->helper('url'); 
$currentURL = current_url(); //http://example.com/controller 

パス$currentUrl。 クエリ文字列がある場合。 `リダイレクト(BASE_URL($データ[ 'requestURIを']))試してみてください、クエリ文字列

$params = $_SERVER['QUERY_STRING']; //my_id=1,3 

$fullURL = $currentURL . '?' . $params; 

echo $fullURL; //http://myhost/main?my_id=1,3 
関連する問題