سلام به تمام دوستان
این کد:
class Login extends CI_Controller {
/**
*LOGIN class for login public users
* Maps to the following URL
* http://example.com/login
**/
function __construct(){
parent::__construct();
$this->load->library(array('form_validation','captcha'));
$this->load->model('login_model');
}
// route /login.php
public function index($alarm = NULL,$null = NULL){
$datacaptcha= $this->captcha->craete();
$info['image'] = $datacaptcha['captchaimage'];
$this->session->set_userdata('captcha',$datacaptcha['captchacode']);
$info['alarm'] = $alarm;
$this->load->view('login_view',$info);
}
}
و در url
http://localhost/xxx/login/login/3d
http://localhost/xxx/login/index/3d
3d رو echo میکنه رو صفحه (تو ویو الارم رو echo میکنه)
برای راه جلوگیری از این که یوزر هرچی زد چاپ نکنه میشه این کارو تو route کرد که
$route['login/index/(:any)'] = "my404";
$route['login/login/(:any)'] = "my404";
--------------------
خوب راه دیگه نیست بشه یکم بهتر و با حجم کد کمتری این کارو کرد؟ اخه یعنی باید برای تمام کنترلرها ک ارگومان میگیرن تعریف کرد؟ منطقی نیست فکنم . کسی پیشنهادی داره واسش؟
بچه ها اگر لایبراری چیزی میشناسین که این کارو تمیز تر کنه بگین. کد رو کاستوم کنم.
https://github.com/PhiloNL/CodeIgniter-Route-Debugging
این چطوره؟
سوال بعدیم اینه ک چرا http://localhost/xxx/login/login این داره جواب میده ولی من فانکشنی به نام login ندارم . login یه کلاسه. برای کانستراکتش هست؟