Помогите пожалуйста доделать авторизацию на CodeIgniter
Имеется Контроллер
в нем я написал проверку на валидатность логина
PHP:
скопировать код в буфер обмена
function index() { $main['login'] = ''; $main['infotable'] = $this->ci_model->online(); $main['server_status'] = $this->ci_model->server_status(); if(isset($_POST['enter'])) { $this->form_validation->set_rules($this->ci_model->login); if($this->form_validation->run() == true) { $login = $this->input->post('login'); $pass = $this->input->post('pass'); if($this->ci_model->logpass('userid','login',$login) == $login) { if($this->ci_model->logpass('user_pass','login',$pass) == $pass) { $_SESSION['login'] = $login; } else { $main['content'] = "Password is not correct"; } } else { $main['content'] = 'Username does not exist'; } } } $this->display_lib->user_page('form/login',$main); }
Далее идет Модель
В ней я написал правила для формы и несколько функций вот они
PHP:
скопировать код в буфер обмена
public $login = array(array('field' => 'login','label' => 'Login','rules' => 'trim|max_lenght[30]|required|encode_php_tags'), array('field' => 'pass','label' => 'Password','rules' => 'trim|max_lenght[40]|required|encode_php_tags'));
PHP:
скопировать код в буфер обмена
function logpass($select,$table,$post) { $this->db->select($select); $this->db->where($select,$post); $query = $this->db->get($table); if($query->num_rows() > 0) { $row = $query->row_array(); return $row[$select]; } else { return false; } }
Потом идет вид
PHP:
скопировать код в буфер обмена
<div class="line"></div> <div class="form"> <div id="form_top"></div> <div id="form"> <?PHP if(!isset($_SESSION['login'])):?> <form action="<?=base_url();?>login" method="post"> <input name="login" type="text" value="<?=set_value('login');?>" id="in" autocomplete="off" /> <input name="pass" type="password" value="<?=set_value('pass');?>" id="in" /> <input name="enter" type="submit" value="" id="ok" /> </form> <a href="<?=base_url()?>register"><img src="<?=base_url();?>img/register_b.png" /></a> <center><a style="color: #fff;"><?=form_error('login');?></a></center> <center><a style="color: #fff;"><?=form_error('pass');?></a></center> <center><a style="color: #fff;"><?=$login;?></a></center> </div> <div id="form_bottom"></div> </div> <?PHP else:?> <form action="<?=base_url();?>logout" method="post"> <center><input name="logout" type="submit" value="Exit" id="" /></center> </form> <center><a style="color: #fff;"><?=$login;?></a></center> </div> <div id="form_bottom"></div> </div> <?PHP endif;?> <div class="info"> <div id="info_top"></div> <div id="info"> <?=$server_status;?> <p id="online">Online: <strong><?=$infotable;?></strong> people</p> </div> <div id="info_bottom"></div> </div> </div> <div id="body_bottom"></div> <div class="footer"></div> </div> </div> </body> </html>
Короче надо продолжить цепочку построения авторизации в контроллере
1) Создали сесии и куки
2)В моделе написать функцию для проверки ну чот тип такого
PHP:
скопировать код в буфер обмена
function scan($session){ $this->db->query("SELECT `userid`FROM `login` WHERE `userid` = '$session'"); $query = $this->db->get(); if($query->num_rows()>0){ $row = $query->row_array(); return $row['userid']; } else { return FALSE; } }
3) В виде сделать проверку
PHP:
скопировать код в буфер обмена
if(scan($_SESSION['login]) == true) { echo "<form action='logout' method='post'> <input type='submit' name='logout' val='exit' /> </form> $NickName"; } else { echo '<form action="<?=base_url();?>login" method="post"> <input name="login" type="text" value="".set_value('login')."" id="in" autocomplete="off" /> <input name="pass" type="password" value="".set_value('pass')."" id="in" /> <input name="enter" type="submit" value="" id="ok" /> </form> <a href="".base_url()."register"><img src="".base_url()."img/register_b.png" /></a> <center><a style="color: #fff;">form_error('login')</a></center> <center><a style="color: #fff;">form_error('pass')</a></center> <center><a style="color: #fff;">$login</a></center> </div> <div id="form_bottom"></div> </div>'; }
Чтото в таком плане я думаю надо сделать но в этой идее где то есть подвох
Я пытался ставить такой скрипт но результат плачевный помогите переделать на правильно рабочий скрипт!
|