Предложения по дизайну моей страницы входа - PullRequest
0 голосов
/ 01 марта 2012

Я делаю страницу входа и нуждаюсь в ваших предложениях. Моя система входа в систему работает сейчас и проблем нет. Однако мне нужны ваши предложения. когда пользователь входит в мою систему, система направляет пользователей на страницу индекса, и меню заголовка изменяется.

Код на мой взгляд. Система в основном создает сеансы из контроллера с проверкой БД. Моя сессионная модель такая:

 $username = $this->input->post('username');
        $password = $this->input->post('password');

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


        if (!$userID) {
            $this->session->set_flashdata('login_error', TRUE);
            redirect('http://' . site_url() . 'giris/');
        } else {

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

            redirect('http://' . site_url());

и мой взгляд, который я называю сессией

  <?php 
        if($this->session->userdata('logged_in')) 
        {
print<<<_A_
  <div class="ustMenu_yeni">
                    <!-- AFTER LOGIN -->
            <div class="wrap">
                <div class="user_welcome_msg">
                    <strong>Hoşgeldiniz!</strong>
                    <a href="http://www.pasaj.com/ben" class="hesap_adi">fendermrt</a>
                </div>
                <div class="ustMenu_sol"></div>
                <ul class="ustMenu_sag">
                                                                        <li><a href="http://www.pasaj.com/firsatlarim" rel="nofollow" class="um_firsat fisritembr offline">Fırsatlar</a></li>        
                                                                        <li>
                        <a href="http://www.pasaj.com/ben" class="um_hesabim kapali">Hesabım</a>
                        <div class="um_hesap_pop" style="display: none;">
                            <span class="um_hesap_pop_item"><a href="http://www.pasaj.com/urunlerim_satistakiler">Satıştaki Ürünlerim </a></span>
                            <span class="um_hesap_pop_item"><a href="http://www.pasaj.com/sattiklarim">Siparişlerim </a></span>
                            <span class="um_hesap_pop_item"><a href="http://www.pasaj.com/aldiklarim">Alış İşlemlerim </a></span>
                            <span class="um_hesap_pop_item"><a href="http://www.pasaj.com/fendermrt/hediye">Hediye Setlerim </a></span>
                            <span class="um_hesap_pop_item"><a href="http://www.pasaj.com/favorimdeki_urunler">Favorilerim </a></span>
                        </div>
                    </li>
                    <li><a href="http://www.pasaj.com/satis_yeni_urun">Ürün Satın</a></li>
                    <li><a href="http://www.pasaj.com/mesaj_goster?tip=gelenler" class="um_mesaj"><span class="um_mesaj_sayisi yenimsg_yok">0</span>Mesaj Kutum</a></li>
                    <li><a href="http://localhost/pasaj/giris/cikis" class="um_cikis">Çıkış</a></li>
                </ul>
            </div>

                </div>


_A_;
}

        else
        {
print<<<_A_
    <div class="ustMenu_yeni">
                    <!-- BEFORE LOGIN -->
            <div class="wrap">
                <div class="ustMenu_sol"></div>
                <ul class="ustMenu_sag">
                                            <li><a href="javascript:openCouponPopup()" rel="nofollow" class="um_firsat fisritembr offline">Fırsatlar</a></li>
                                            <li><a href="http://www.pasaj.com/giris" class="um_giris">Üye Girişi</a></li>
                    <li><a href="/pasaj/kayit/" class="um_kayit">Ücretsiz Kayıt</a></li>
                    <li><a href="javascript:;" onclick="facebookLogin();" class="um_fb_connect">Facebook Connect</a></li>

                </ul>
            </div>
                </div>        


_A_;
        }

        ?>

Я думаю, это нехорошо. Я не хочу делать, если проверка на виду. Каковы ваши предложения по этому поводу или мнение? Какие могут быть другие дизайнерские предложения?

наконец я создаю каталог с именем anasayfa, и этот каталог имеет два вида,

aLogin -> После входа в систему bLogin -> До входа в систему

и отредактируйте мой код вот так

$data = array();

        if (!$userID) {
            $this->session->set_flashdata('login_error', TRUE);
            redirect('http://' . site_url() . 'giris/');
            $data['menu'] = $this->load->view('anasayfa/bLogin', '', true);
        } else {

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

            $data['menu'] = $this->load->view('anasayfa/aLogin', '', true);

            redirect('http://' . site_url());
        }

        $this->load->view('welcome_message', $data);

и используйте $ menu на welcome_message

но выдает ошибку

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: menu

Filename: views/welcome_message.php

Line Number: 3

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Я бы добавил пользовательскую вспомогательную функцию, вызываемую в конструкции (или там, где вы хотите), к моим контроллерам.

Функция;

/**
 * Logged in check
 *
 * Checks if user is logged in via SESSION.
 * 
 * @return boolean
 */
if ( ! function_exists('is_logged_in')) {
    function is_logged_in() {
        $_ci =& get_instance();
        if ($_ci->session->userdata('user_id')) {
            return TRUE;
        } else {
            return FALSE;
        }
    }
}

Затем вызовите ее в контроллерепроверить, вошли ли вы в систему;

public function __construct() {
    parent::__construct();

    // check logged in
    if (is_logged_in() == FALSE) {
        $this->session->set_flashdata('message', 'You need to log in.');
        redirect('/home'); // or wherever you login function is
    }
}
0 голосов
/ 01 марта 2012

Создайте два файла в папке просмотра, например menu_logged_in.php и подобие menu_general.php

Затем проверьте, не вошел ли пользователь в сеанс пользователя

$ data ['menu']= $ this-> load-> view ('menu_logged_in', '', true);

else

$ data ['menu'] = $ this-> load-> view ('menu_general', '', true);

и передайте $ data (или какую-либо переменную, которую вы используете для передачи данных для просмотра) в ваш фактический вид, который вы отображаете.

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