Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Как сделать чтоб окно после авторизации показывалось только один раз

Как сделать чтоб окно после авторизации показывалось только один раз


     31.07.2012    Все вопросы » Хаки    3089

вопрос
Привет всем smile

Решил поставить на сайт (инфо окно), т.е когда авторизуешься, то сверху сайта всплывает окно о том, что
"Вы успешно авторизованы на сайте", окно работает, но не совсем правильно, когда перезагружаешь страницу, то это окно снова всплывает, а хотелось бы чтобы только когда авторизовался тогда проинформировало и больше не всплывало, т.е только 1раз выходило окно

вот код который поместил в login.tpl

[not-group=5]
<script type="text/javascript">
$(function(){showinfo();});
function showinfo() { showinfopopup("<h2>Поздравляем</h2>", "Вы успешно авторизованы на сайте", "info"); }
</script>
[/not-group]


а вот код который поместил в main.js

showPopupInfoTimeout = null;
function showinfopopup(title,text,icon){
$("body").append('<div class="login-panel" id="logininfo" style="display:none;"><div class="bg"><div class="inner" style="height:55px; padding:5px;"><div style="width:40px; float:left; margin-top:6px;"><img src="'+dle_root+'templates/'+dle_skin+'/images/icon_'+icon+'.png" alt=""></div><div style="margin-left:40px;"><h2>'+title+'</h2>'+text+'</div></div></div></div>');
var x=($(window).width()-$("#logininfo").width())/2;
$("#logininfo").css('position','fixed').css('top','40px').css('left',x+'px');
$("#logininfo").fadeIn('fast').bind('click',function(){clearTimeout(showPopupInfoTimeout);$(this).fadeOut('normal',function(){$(this).remove();});});
clearTimeout(showPopupInfoTimeout);
showPopupInfoTimeout=setTimeout(function(){$("#logininfo").fadeOut('normal',function(){$(this).remove();});},5000);
}

Ответа пока нет


9 комментариев

nowheremany
Эксперт

nowheremany - 31 июля 2012 19:44 -

sitelogin.php в помощь

Благодарность принимаю тут Связь

249893
Юзер

249893 - 31 июля 2012 19:56 -

nowheremany,
а не подскажешь что именно нужно изменить?

pavel31
Юзер

pavel31 - 1 августа 2012 15:55 -

Походу так:

if( !$is_logged = 1 ) {
    $ulogged = <<<HTML
    <script language="javascript" type="text/javascript">
        $(function(){showinfo();}); // Вызов функции showinfo();
        function showinfo() { // Функция показа сообщения
            showinfopopup("<h2>Поздравляем</h2>", "Вы успешно авторизованы на сайте", "info");
        }
    </script>
HTML;
echo $ulogged;
}

nowheremany
Эксперт

nowheremany - 1 августа 2012 15:57 -

все равно будет всплывать

Благодарность принимаю тут Связь

pavel31
Юзер

pavel31 - 1 августа 2012 16:08 -

nowheremany,

Так подскажите как будет правильно?

nowheremany
Эксперт

nowheremany - 1 августа 2012 16:32 -

в sitelogin где строки $is_logged = TRUE; надо забовить сою переменную и там уже вывод делать как ты предложил

Благодарность принимаю тут Связь

pavel31
Юзер

pavel31 - 1 августа 2012 17:24 -

Эта строка там 3 раза встречается, вот часть кода файла:


if( isset( $_POST['login'] ) AND $_POST['login_name'] AND $_POST['login_password'] AND $_POST['login'] == "submit" ) {

.........

$is_logged = TRUE;
}

elseif( isset( $_SESSION['dle_user_id'] ) AND  intval( $_SESSION['dle_user_id'] ) > 0 AND $_SESSION['dle_password'] ) {

.........

$is_logged = TRUE;
}

elseif( isset( $_COOKIE['dle_user_id'] ) AND intval( $_COOKIE['dle_user_id'] ) > 0 AND $_COOKIE['dle_password']) {

.........

$is_logged = TRUE;
}


Куда именно вставлять переменную??

nowheremany
Эксперт

nowheremany - 1 августа 2012 17:29 -

в первый, ведь там проверяется, что чел зашёл именно кликнув по панели логина

Благодарность принимаю тут Связь

pavel31
Юзер

pavel31 - 1 августа 2012 17:48 -

Тоесть вот так?

if( isset( $_POST['login'] ) AND $_POST['login_name'] AND $_POST['login_password'] AND $_POST['login'] == "submit" ) {
    $_POST['login_name'] = $db->safesql( $_POST['login_name'] );
    $_POST['login_password'] = @md5( $_POST['login_password'] );
    if ($config['login_log']) $allow_login = check_allow_login ($_IP, $config['login_log']);
    $allow_user = true;
    if ($config['auth_metod']) {
        if ( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\/|\\\|\&\~\*\+]/", $_POST['login_name']) ) $allow_user = false;
        $where_name = "email='{$_POST['login_name']}'";
    }
    else {
        if ( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $_POST['login_name']) ) $allow_user = false;
        $where_name = "name='{$_POST['login_name']}'";
    }
    if( $allow_login AND $allow_user) {
        $member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE {$where_name} AND password='" . md5( $_POST['login_password'] ) . "'" );
        if( $member_id['user_id'] ) {
            if ( intval($_POST['login_not_save']) ) {
                set_cookie( "dle_user_id", "", 0 );
                set_cookie( "dle_password", "", 0 );
            }
            else {            
                set_cookie( "dle_user_id", $member_id['user_id'], 365 );
                set_cookie( "dle_password", $_POST['login_password'], 365 );
            }
            $_SESSION['dle_user_id'] = $member_id['user_id'];
            $_SESSION['dle_password'] = $_POST['login_password'];
            $_SESSION['member_lasttime'] = $member_id['lastdate'];
            $dle_login_hash = md5( $_SERVER['HTTP_HOST'] . $member_id['user_id'] . sha1($_POST['login_password']) . $config['key'] . date( "Ymd" ) );
            if( $config['log_hash'] ) {
                $salt = "abchefghjkmnpqrstuvwxyz0123456789";
                $hash = '';
                srand( ( double ) microtime() * 1000000 );
                for($i = 0; $i < 9; $i ++) {
                    $hash .= $salt{rand( 0, 33 )};
                }
                $hash = md5( $hash );
                $db->query( "UPDATE " . USERPREFIX . "_users set hash='" . $hash . "', lastdate='{$_TIME}', logged_ip='" . $_IP . "' WHERE user_id='{$member_id['user_id']}'" );
                set_cookie( "dle_hash", $hash, 365 );
                $_COOKIE['dle_hash'] = $hash;
                $member_id['hash'] = $hash;
            }
            else
                $db->query( "UPDATE LOW_PRIORITY " . USERPREFIX . "_users set lastdate='{$_TIME}', logged_ip='" . $_IP . "' WHERE user_id='{$member_id['user_id']}'" );

$ulogged = <<<HTML
    <script language="javascript" type="text/javascript">
        $(function(){showinfo();}); // Вызов функции showinfo();
        function showinfo() { // Функция показа сообщения
            showinfopopup("<h2>Поздравляем</h2>", "Вы успешно авторизованы на сайте", "info");
        }
    </script>
HTML;
echo $ulogged;
        $is_logged = TRUE;
        }
    }
}


Правильно?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 21.07.2013 Гость  Хаки
наверх