Kredov long

[Помогите] запомнить меня при регистрации

Тема в разделе "xenForo", создана пользователем aliwya, 6 фев 2014.

  1. aliwya

    aliwya

    Регистрация:
    5 июл 2013
    Сообщения:
    70
    Симпатии:
    70
    Сделали единую авторизацию форума и покера, но проблема в том что она работает только когда включена галочка "запомнить меня".
    Как сделать что бы при регистрации на форуме была включена эта опция? Пробовала добавить в шаблон register_form
    Код:
    <div><label for="ctrl_pageLogin_remember" class="rememberPassword"><input type="checkbox" name="remember" value="1" checked="checked" id="ctrl_pageLogin_remember" /> {xen:phrase stay_logged_in}</label></div>
    в разные места, не помогло. Может кто знает как, я могу дать пару баксов за это
    --- Добавлено, 6 фев 2014 ---
    или как сделать что бы при регистрации, надо было ещё раз вводить логин и пароль?
     
    Последнее редактирование: 6 фев 2014
  2. yurets86

    yurets86

    Регистрация:
    13 апр 2013
    Сообщения:
    394
    Симпатии:
    328
    дело в том, что при регистрации нет запомнить меня, и как можно запомнить. если тебя еще нет на форуме, а только при авторизации , а вот как раз для авторизации чек бокс можно отметить по умолчанию
    , в login_bar_form, вместо
    • <label for="ctrl_remember" class="rememberPassword"><input type="checkbox" name="remember" value="1" id="ctrl_remember" tabindex="103" /> {xen:phrase stay_logged_in}</label>
    • добавить
    • <label for="ctrl_remember" class="rememberPassword"><input type="checkbox" checked="checked" name="remember" value="1" id="ctrl_remember" tabindex="103" /> {xen:phrase stay_logged_in}</label>
     
  3. aliwya

    aliwya

    Регистрация:
    5 июл 2013
    Сообщения:
    70
    Симпатии:
    70
    да так я уже сделала, но всеравно спасибо.
    Может знаете как сделать что бы при регистрации нужно было вводить заного логин и пароль?
     
  4. yurets86

    yurets86

    Регистрация:
    13 апр 2013
    Сообщения:
    394
    Симпатии:
    328
    как это, не совсем понимаю... в голове не укладывается, как можно заново вводить пароль и логин при регистрации ..
     
  5. aliwya

    aliwya

    Регистрация:
    5 июл 2013
    Сообщения:
    70
    Симпатии:
    70
    ну когда зарегался, ты остался авторизованый, а как сделать что бы не остался и надо было заного вводить...
     
  6. yurets86

    yurets86

    Регистрация:
    13 апр 2013
    Сообщения:
    394
    Симпатии:
    328
    можно попробывать в самый конец шаблона register_form добавить
    $user->logout();
    $user = false;
     
  7. ogbiwap

    ogbiwap

    Регистрация:
    13 сен 2013
    Сообщения:
    6
    Симпатии:
    3
    Попробуйте сделать на основе этого кода
    Код:
    <?php
                    if ( is_user_logged_in() ) {
                        $user = wp_get_current_user();
                        print get_avatar( $user->user_email, '32' ); ?> //32 - размер аватара в пикселях
                        <ul>
                            <li><strong><?php print $user->display_name; ?></strong></li>
                            <li><a href="/forum/members/.<?php print $user->id; ?>">профиль</a></li>
                            <li><a href="<?php print wp_logout_url( site_url( $_SERVER['REQUEST_URI'] ) ); ?>">выйти</a></li>
                        </ul>
                    <?php
                    } else {
    
        echo '<a href="http://ваш.сайт/forum/register">Регистрация</a>';
    ?>
    <div id="xenlogin">
        <form action="http://ваш.сайт/forum/login/login" method="post" id="pageLogin">
    
            <div class="ctrlWrapper">
                <dl class="ctrlUnit">
                    <label for="LoginControl">Ваш ник или email:</label>
                    <input type="text" name="login" id="LoginControl" class="textCtrl" tabindex="101" />
    
                    <label for="ctrl_password">Ваш пароль:</label></dt>
                    <input type="password" name="password" id="ctrl_password" class="textCtrl" tabindex="102" />
    
                    <input type="submit" class="button primary" value="Войти" checked="checked" tabindex="104" data-loginPhrase="log_in" data-signupPhrase="log_in" />
                    <label for="ctrl_remember" class="rememberPassword">
                    <input type="checkbox" name="remember" value="0" id="ctrl_remember" tabindex="103" />Запомнить меня</label>
            </div>
    или вот скрипт для для авторизации на сайтах через форум
    Код:
    <?php
    $startTime = microtime(true);
    $fileDir = dirname(__FILE__).'/../../../nin_forum/';
    require($fileDir . '/library/XenForo/Autoloader.php');
    XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');
    XenForo_Application::initialize($fileDir . '/library', $fileDir);
    XenForo_Application::set('page_start_time', $startTime);
    $db = XenForo_Application::get('db');
    if( isset( $_POST['user'] ) && isset( $_POST['pwd'] ) ) {
      
        $user = $_POST['user'];
        $pwd = $_POST['pwd'];
        $sql = "select * from `xf_user` where `username` = ".$db->quote($user);
        $res = $db->fetchAll($sql);
              
        /*
            код ошибки 1
            пользователь отсутствует в базе
            отправляем пользователя на страницу регистрации
        */
        if( !count( $res[0] ) ) {
            echo "Err#1";
            return;
        }
      
        $user_id = $res[0]['user_id'];
        $data_sql = "select * from `xf_user_profile` where `user_id` = '{$user_id}' limit 1";
        $profile_data = $db->fetchAll($data_sql);
        unset($profile_data[0]['user_id']);
        $json_data = array(
                            array_merge_recursive($res[0], $profile_data[0])
                          );
      
        // авторизация
        $auth = new XenForo_Authentication_Core12;
        $sql = "select `data` from `xf_user_authenticate` where `user_id` = '{$user_id}'";
        $res = $db->fetchCol($sql);
      
        /*
            код ошибки 2
            проверка данных авторизации (пороля) иходя из кода в Core12.php проверка П/П происходит в функции authenticate()
            при ошибке номер 3 посылаем пользователя на страницу авторизации и сообщением об ошибочном логине или пароле, предлогая ему востановить пароль через форуму
        */
        if( !count( $res ) ) {
            echo "Err#2";
            return;
        }
      
        // педаем данные классу и вызываем функцию авторизации
        $auth->setData($res[0]);
        $is_valid = $auth->authenticate($user_id, $pwd);
      
        // ошибка 3 читать выше
        if(!$is_valid) {
            echo "Err#3";
            return;
        }
      
        // авторизация на сайте
        foreach ( $json_data[0] as $key => $val ) {
            $_SESSION[$key] = $val;
        }
      
        header("HTTP/1.1 301 Moved Permanently");
        header("Location: /");
        exit();
      
    } else {
        $data = array();
        $data['setting'] = array('site_title' => 'Главная');
        render_html($data, 'template.php', 'auth_page.php');
    }
    
    ?>