# زبان های اسکریپتی > PHP > CodeIgniter >  $this->db->escape

## mohsenshahab

سلام من خیلی جستجو کردم اما به نتیجه ای نرسیدم :عصبانی: 
از این تابع چه مواقعی باید استفاده کرد.
مثلا در کد زیر این تابع رو کجا باید بذاریم تا از Injection در امان بمونیم؟
     function insert_post($title,$body)
    {
        
        $sql="INSERT INTO myblog(title,body) VALUES (?,?)";
        $this->db->query($sql,array($title,$body));
    }

----------


## reza_22

شما میتونی این تابع رو در داخل عبارت بکار ببری

$sql="INSERT INTO myblog(title,body) VALUES (" . $this->db->escape($title) . ", " . $this->db->escape($body) . ")";

----------


## mohsenshahab

سلام 
من در ادامه مطالعاتم!! در مورد ci یه جا خوندم که اگه ما از active recordها استفاده کنیم به صورت خودکار escape میشه آیا این درسته؟

----------


## razzaghi.b

سلام 
چه طوری میتونم تو codeigniter تصویر امنیتی ایجاد کنم.
فکر کنم خودش این امکانو نداره ؟؟

----------


## nimatramon

> سلام 
> چه طوری میتونم تو codeigniter تصویر امنیتی ایجاد کنم.
> فکر کنم خودش این امکانو نداره ؟؟



دوست عزیز اگر در دایرکتوری plugin  فایل کپچا را نداری من می زارم برای دانلود 

https://barnamenevis.org/attachment.php?attachmentid=37212&stc=1&d=12534609  48


این پلاگین تصویر را می سازه بعد مقدارش را در یک متغییر session  ذخیره می کنه و برای چک کردنش می تونی متغیر را بخونی و درستیش را چک کنی.
فقط اینکه وسه استفاده اول باید در controller یک function بنویسی .

----------


## razzaghi.b

سلام دوستان
من یه مشکلی دارم این model من هستش .
وقتی $passwd رو میزارم تو query انگار هیچی اونجا وجود نداره یعنی مثل اینکه دارم '' رو می زارم تو query .
<?php
class M_login extends Model{
    function M_login(){
        parent :: model();
        }
        function get($username){
            $passwd = $this->encrypt->decode(get_cookie('str'));
            $query = $this->db->query('SELECT username,passwd from user where (username='.$this->db->escape($username).' and passwd='.$this->db->escape($passwd).' )');
            if($query->num_rows() > 0)
                return true;
            else
               return false;
        }
}
?>

----------


## hidensoft

<?php
class M_login extends Model{
function M_login(){
parent :: model();
}
function get($username){
$passwd = $this->encrypt->decode(get_cookie('str'));
$query = $this->db->query('SELECT username,passwd from user where (username='.$this->db->escape($username).' and passwd='.$this->db->escape($passwd).' )');
if($query->num_rows() > 0)
return true;
else
return false;
}
}

----------


## hidensoft

ابتدا مطمئن بشید که پسورد درون کوکی وجود داره
$echo $this->encrypt->decode(get_cookie('str'));

----------


## hidensoft

> من در ادامه مطالعاتم!! در مورد ci یه جا خوندم که اگه ما از active recordها استفاده کنیم به صورت خودکار escape میشه آیا این درسته؟


بله درسته.

----------

