私たちはシステムを開発してきましたが、この種のエラーを発見したばかりで、論理的に正しいと思われる条件を試しましたが、常に 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 部分が常に実行され、ログアウト ページに送られます。ここで何が問題なのか誰にもわかりませんか?どうもありがとう