PDA

View Full Version : مشکل فراخوانی سیشن captcha



وب ترین ها
چهارشنبه 16 دی 1394, 18:55 عصر
سلام
متاسفانه سیشن captcha در codeigniter فقط تو کنترلر خودش که set شده کار میکنه و فراخوانی میشه موقعی که میخوام با مقدار textbox مقایسش کنم متوجه شدم که اصلا سیشن کپچا رو ذخیره نداره و نمیتونه فراخوانی کنه.و کلا توی ولیدیت کردن کپچا false برمیگردونه
این مشکل با سیشن فقط توی کپچا نیست حتی برای لاگین کردن هم به شرطی سیشن لاگین کاربرو فراخوانی میکنه و نشون میده که کنترلرهام از my_conroller extend شده باشه.
این کد ولیدیشن کپچا:


public function validate_captcha()
{
$cap=$this->input->post('captcha');
$ses_cap=$this->session->userdata('captcha');
if( $cap !=$ses_cap )
{
$this->form_validation->set_message('validate_captcha', 'کد امنیتی اشتباه است');
return false;
}
else
{
return true;
}
}


دوستان میدونید مشکل از کجاست یا راه حلی دارین برای این مسئله؟

arash_fa
پنج شنبه 17 دی 1394, 10:15 صبح
سلام

شما در config/autoload.php کتابخانه های پیشفرض را اضافه کنید مثلا session یکی از اونها


$autoload['libraries'] = array('database','email','parser','session','email ','encrypt','form_validation',

);

حالا شما در core در پوشه پروژه خودتون یک کنترلر مادر دارید به نام My_controller اینجور که برداشت کردم .. و همه کنترلر ها از این ارث میبرند.

حالا در همه کنترلر ها به session باید دسترسی داشته باشید.

در ثبت تولید کپتچا در کنترلر ممربوطه :


$D = new stdclass;
$this->load->helper('captcha');
$captcha = create_captcha();
$this->session->set_userdata('CAPTCHA', strtolower($captcha['word']) );$D->CAPTCHA = $captcha['image'];
$this->load->view('MY_VIEW',$D);

در فایل قالب هم با متغیر $CAPTCHAS عکس مربوطه نمایش داده میشه

چک کردن:



if($this->session->userdata('CAPTCHA')!= strtolower($this->input->post('CAPTCHA')) ){
retuen false; //OR ANY ACTIONS//
}

وب ترین ها
پنج شنبه 17 دی 1394, 18:37 عصر
سلام
کتابخانه ی session را در
config/autoload.php اضافه کردم.
عکس مربوط به کپچا هم نمایش داده میشه.
فقط متاسفانه توی قسمت چک کردن مقدار false رو برمیگردونه که مطمئنا سشن کپچا خالیه چون سشن رو echo کردم خالی بود و چیزی نمایش نداد.
فک میکنم مشکل از xamp server باشه کلا با session های codeigniter مشکل داره :ناراحت:

وب ترین ها
پنج شنبه 17 دی 1394, 19:58 عصر
دوستان ممنونم :لبخندساده:مشکل حل شد
مسیر اصلی کوکی توی فایل کانفیگ ها یه اسلش اضافه خورده بود به همین خاطر توی session مشگل به وجود میاورد.