回答編集履歴

1 誤字

退会済みユーザー

退会済みユーザー

2017/03/22 08:11  投稿

```
18      $sql="SELECT * FROM members WHERE email=? AND passw=?";
19      $query=$this->db->query($sql,array($email,$passw));
20            //もしクエリの行数が1件以上あれば
21          if($query->num_rows() > 0)
22          {
23              $this->session->set_userdata(
24                  array('email'=>$email,'passw'=>$passw));
25              $this->load->view('top');
26          }else{
27              $error=array('login_err'=>'メールアドレスかパスワードが違います');
28              $this->load->view('login',$error);
29          }
```
ですからして、18行の$sqlが19行の$sqlに紐付いてarray($email,$passw)が18行の?に順に嵌め込まれます。
Zuishin様に言われている「エスケープをちゃんとしないと SQL インジェクションに弱くなります。」
Zuishin様の言われている「エスケープをちゃんとしないと SQL インジェクションに弱くなります。」
の反意が4行の
$this->form_validation->run('login')
で実装されてます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る