0

私たちはシステムを開発してきましたが、この種のエラーを発見したばかりで、論理的に正しいと思われる条件を試しましたが、常に else 部分に向けました。私たちのシステムでは、システムにログインしているユーザーの電子メールのすべての値をthis->session->userdata('username'). あるユーザーが自分のメールアカウントでログインすると、自動的に の値がその$this->session->userdata('username')ログインしたユーザーのメールアドレスになります。ただし、他のユーザーのメールアドレスを使用して URL 部分のメールアドレスを変更すると、そのアカウントにリダイレクトされるので、何をしたかというと、if文の部分で条件を作っています。コードは次のとおりです。

public function get_course()
{

   if($this->session->userdata['username']==$this->uri->segment(3)) {

      $data=$this->data;

      $tennant_url_id=$this->uri->segment(3);

      if(!empty($tennant_url_id)) {
         $tennant_code=$tennant_url_id;
      } else {
         $tennant_code=$this->session->userdata('username');
      }

      $num_row=$this->session->userdata('total_row');
      $total_row=$this->course_booking_model->check_tennant($tennant_code);
      $data['tennant_id'] = $tennant_code;
      $data['total_row']=$total_row;
      $data['data']=$this->course_booking_model->get_all_courses($tennant_code);
      $this->load->view('view_course_admin',$data);

   } else {
      $this->session->set_flashdata('Sess_expire', 'Your session has expired! Please Login again.');

      redirect("/admin/logout");
   }
}

URLのメールを変更すると正常に動作し、ログアウトします。しかし、自分のページのリンクのいずれかをクリックするか、URL の電子メールを変更せずにページを更新すると、else 部分が常に実行され、ログアウト ページに送られます。ここで何が問題なのか誰にもわかりませんか?どうもありがとう

4

1 に答える 1

0

一例を挙げると、

if($this->session->userdata['username'] == $this->uri->segment(3))

次のようにする必要があります。

//not square brackets but regular brackets
if($this->session->userdata('username') == $this->uri->segment(3))
于 2013-01-24T08:46:09.613 に答える