Codeigniter - ссылка - PullRequest
       1

Codeigniter - ссылка

0 голосов
/ 29 февраля 2012

Я пытаюсь сделать страницы входа с сеансом в Codeigniter.

Для этого я сделал модель

function girisKontrol($username, $password) {
        $sha1_password = sha1($password);
        $query = "SELECT id FROM pasaj_register WHERE username = ? and password = ?";

        $result = $this->db->query($query, array($username, $sha1_password));

        if ($result->num_rows() == 1)
            return $result->row(0)->id;
        else
            return false;
    }

и в контроллере giris я сделал функцию под названием giris

 public function giris() {

        extract($_POST);


        $userID = $this->giris->girisKontrol($username,$password);
        echo $userID;

        if (!$userID) {

            $this->session->set_flashdata('login error',TRUE);

            redirect('giris/giris');

        } else {
            $this->session->set_userdata(array(
                    'logged_in' => TRUE,
                    'userID' => $userID));

            redirect('welcome_message');
        }


}

в том же контроллере я сделал еще одну функцию:

public function main_page()
    {
        if ($this->session->userdata('logged_in'))
            echo "Logged in";
        else
            echo "Error";


    }

и используйте все это в поле зрения

 <form method="POST" action="http://localhost:81/pasaj/giris/main_page/" name="flogin" autocomplete="off">

        <label for="username"><b>Kullanıcı adı</b> ya da <b>e-posta</b> adresiniz:</label>
        <input type="text" value="" class="normalinput" name="username" id="username">
        <label for="password">Şifreniz:</label>
        <input type="password" class="normalinput" value="" name="password" id="password">
        <span class="bigsubmitwbtn yellow fright"><span class="bigsubmitwbtn_left"></span><input type="submit" class="bigbutton" name="submit" value="Giriş"></span>
        </form>
    </div>

Однако, как объявлено в функции main_page, он идет непосредственно к оператору else и печатает Error Why?

Ответы [ 2 ]

1 голос
/ 16 марта 2013

Попробуйте загрузить сессию, например. в autoload.php в вашей папке aaplication / config:

$autoload['libraries'] = array('session');

или в конструкторе вашего контроллера.

Также убедитесь, что сессия установлена ​​правильно в вашем config.php, например:

$config['sess_cookie_name']     = 'cisession';
$config['sess_expiration']      = 86400;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = FALSE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

И как уже упоминалось, измените $ config ['sess_cookie_name'] с:

$config['sess_cookie_name']     = 'ci_session';

до:

$config['sess_cookie_name']     = 'cisession';

Также правильно установлен ваш сеанс, например:

// create session
$this->session->set_userdata($data);

Как хранить данные сеанса? В базе данных или нет?

0 голосов
/ 29 февраля 2012

В конфигурации codeigniter были изменены имена сеансов / файлов cookie и имена доменов по умолчанию?

Убедитесь, что вы изменили имя, включая подчеркивание "_", так как подчеркивание не работает во всех браузерах, например IE;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...