さて、このようなことから「保護する」最も良い方法は、ユーザーがそのセッションに格納されている2つの値を使用してサイトにログインするときにセッションを作成することです。
1)彼らのデータベースの主キーID、および 2)「LOGGED_IN」あなたのユーザーがあなたのサイトにログインします時
と呼ばれるセッションの項目は、このような2つの値を格納します。
$this->session->set_userdata('logged_in', true);
$this->session->set_userdata('user_id', $id);
ここで、$ idは認証時にユーザーレコードから取得されます。
ここでは、コントローラの中に、ユーザがログインしているかどうかをチェックするif文を置くということです。
function show($id) {
if($this->session->userdata('logged_in')) {
$posts = $this->Model_posts->get_user_posts($id);
}
}
今、あなたのモデルでは、あなたは、ユーザーが自分のuser_idに基づいて表示できるようにしたいレコードを引くための関数を作成します。例えば、ユーザーの投稿と言うでしょう。今
function get_user_posts($user_id, $post_id) {
$sql = "SELECT * FROM posts WHERE user_id = ? AND id = ?";
$binds = array($user_id, $post_id);
$qry = $this->db->query($sql, $binds);
$result = array();
while($row = $qry->result_array()) {
array_push($result, $row);
}
return $result;
}
、ユーザーや訪問者でログインし、それらに属していないレコードにアクセスしようとすると、彼らはすべてのレコードを取得しませんだけで、そのユーザーに返却何select文を制限するので。
が理解される。助けてくれてありがとう!!! – FlyingCat
うれしい私は助けることができました。私はこれがあなたが撮影していたものだと確信しています。 – Skittles