Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2018, 20:07   #31
Елена S
Пользователь
 
Регистрация: 17.07.2016
Сообщений: 93
По умолчанию

Скажите, а из-за тех изменений , которые внесла по результатам этой темы, могла прекратить работать функция "Забыли пароль?". Она как-то связана с кукисами?
На почту приходит ссылка, по ней можно перейти на форум и войти в профиль для изменения пароля. Но дело в том, что при переходе по ссылке теперь я оказываюсь незалогиненной, соответственно, не могу изменить пароль (для пробного ника).
А раньше, несколько месяцев назад, это вроде бы работало. Связано с проведенными изменениями с временем хранения кукисов или нет?
Елена S вне форума Ответить с цитированием
Старый 21.05.2018, 21:04   #32
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, расскажите, что Вы в тот раз исправили и какое значение там сейчас.
во-вторых, надо смотреть конкретно код, который открывается по переданной ссылке.
Чисто теоретически - могли ваши изменения повлиять.
в-третьих, можете вернуть скрипты в исходное состояние, которые были до того, как Вы вносили изменения (надеюсь, Вы догадались сделать полный бекап сайта, прежде чем изменили скрипты? Или хотя бы сохранить изменяемые файлы?!).
Верните изменения и проверьте - восстанавливается пароль или нет.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.05.2018, 21:12   #33
Елена S
Пользователь
 
Регистрация: 17.07.2016
Сообщений: 93
По умолчанию

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

Изменения отражены по-моему на второй странице темы, в 14:34
"Пока сделала следующее: убрала вообще *86400 , т.к. поняла, что это перевод в секунды из дней.
И задала в адм. панели 1800 (in seconds) (в днях там нельзя задать)."

Полный бэкап не делала, тем более что одно из изменений касается значения в админ. панели. Но измененный файл commom (первоначальный) наверное сохранила, по крайней мере изменения там касались только одной строки.

Последний раз редактировалось Елена S; 21.05.2018 в 21:15.
Елена S вне форума Ответить с цитированием
Старый 21.05.2018, 21:14   #34
Елена S
Пользователь
 
Регистрация: 17.07.2016
Сообщений: 93
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-вторых, надо смотреть конкретно код, который открывается по переданной ссылке.
Где его можно посмотреть?
Елена S вне форума Ответить с цитированием
Старый 21.05.2018, 21:17   #35
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

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

Цитата:
это вроде бы работало
Вы вообще в чем то уверены? Повторю свой вопрос Вы не перепутали функцию запомни меня, с функцией забыл пароль?

Цитата:
Где его можно посмотреть?
Вы не поверите но в файлах с кодом. А так мы конечно, же пользуемся исходниками Вашего самописного сайта. сейчас подождите телепат придет у нас тут есть парочка..

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

Последний раз редактировалось Stanislav; 21.05.2018 в 21:24.
Stanislav вне форума Ответить с цитированием
Старый 21.05.2018, 23:04   #36
Елена S
Пользователь
 
Регистрация: 17.07.2016
Сообщений: 93
По умолчанию

Цитата:
Сообщение от Stanislav Посмотреть сообщение
Повторю свой вопрос Вы не перепутали функцию запомни меня, с функцией забыл пароль?
Нет, не перепутала. Когда мы вводим свою почту в поле, то потом на почту получаем ссылку. Переходим по ссылке, возвращаемся на форум, где написано: сейчас вы залогинены, можете войти в профиль и установить пароль.
Но по факту, при переходе по ссылке, возвращаюсь на форум и оказываюсь не залогиненной, и когда нажимаю на слово "профиль", то выдается сообщение, что это доступно только после логина, и через несколько секунд меня возвращают в форму для логина.

Обязательно попробую сделать, но уже завтра видимо...
Елена S вне форума Ответить с цитированием
Старый 22.05.2018, 00:40   #37
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

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

Последний раз редактировалось Stanislav; 22.05.2018 в 07:29.
Stanislav вне форума Ответить с цитированием
Старый 22.05.2018, 09:46   #38
Елена S
Пользователь
 
Регистрация: 17.07.2016
Сообщений: 93
По умолчанию

Восстановление исходного файла common, вернее, обратное добавление *86400 и исходного значения времени хранения кукис в админке не помогло. Снова при переходе по ссылке из почты оказываюсь незалогиненной.

Видимо, с восстановлением пароля работает плагин passrecover.php
Выглядит в админке нормально включенным. Его текст:

PHP код:
<?PHP

if (!defined('SED_CODE') || !defined('SED_PLUG')) { die('Wrong URL.'); }

$a sed_import('a','G','TXT');
$v sed_import('v','G','TXT');
$email sed_import('email','P','TXT');

$plugin_title $L['plu_title'];

if (
$a=='request' && $email!='')
    {
    
sed_shield_protect();
    
$sql sed_sql_query("SELECT user_id, user_name, user_lostpass FROM $db_users WHERE user_email='".sed_sql_prep($email)."' ORDER BY user_id ASC LIMIT 1");

    if (
$row sed_sql_fetcharray($sql))
        {
        
$rusername $row['user_name'];
        
$ruserid $row['user_id'];
        
$validationkey $row['user_lostpass'];

        if (empty(
$validationkey) || $validationkey=="0")
            {
            
$validationkey md5(microtime());
            
$sql sed_sql_query("UPDATE $db_users SET user_lostpass='$validationkey' WHERE user_id='$ruserid'");
            }

        
sed_shield_update(60,"Password recovery email sent");

        
$rsubject $cfg['maintitle']." - ".$L['plu_title'];
        
$ractivate $cfg['mainurl']."/plug.php?e=passrecover&a=auth&v=".$validationkey;
        
$rbody $L['Hi']." ".$rusername.",\n\n".$L['plu_email1']."\n\n".$ractivate"\n\n".$L['aut_contactadmin'];
        
sed_mail ($email$rsubject$rbody);
        
$plugin_body $L['plu_mailsent'];
        }
    else
        {
        
sed_shield_update(10,"Password recovery requested");

        
sed_log("Pass recovery failed, user : ".$rusername);
        
header("Location: message.php?msg=151");
        exit;
        }
    }
elseif (
$a=='auth' && strlen($v)==32)
    {
    
sed_shield_protect();

    
$sql sed_sql_query("SELECT user_name, user_id, user_password, user_maingrp, user_banexpire FROM $db_users WHERE user_lostpass='".sed_sql_prep($v)."'");

    if (
$row sed_sql_fetcharray($sql))
        {
        
$rmdpass  $row['user_password'];
        
$rusername $row['user_name'];
        
$ruserid $row['user_id'];

        if (
$row['user_maingrp']==2)
            {
            
sed_log("Password recovery failed, user inactive : ".$rusername);
            
header("Location: message.php?msg=152");
            exit;
            }

         if (
$row['user_maingrp']==3)
            {
            
sed_log("Password recovery failed, user banned : ".$rusername);
            
header("Location: message.php?msg=153&num=".$row['user_banexpire']);
            exit;
            }

        
$validationkey md5(microtime());
        
$sql sed_sql_query("UPDATE $db_users SET user_lostpass='$validationkey' WHERE user_id='$ruserid'");

        if (
$cfg['authmode']==|| $cfg['authmode']==3)
            {
            
$u base64_encode("$ruserid:_:$rmdpass:_:".$cfg['defaultskin']);
            
setcookie("SEDITIO""$u"time() + 86400$cfg['cookiepath'], $cfg['cookiedomain']);
            }

        if (
$cfg['authmode']==|| $cfg['authmode']==3)
            {
            
$_SESSION['rsedition'] = $ruserid;
            
$_SESSION['rseditiop'] = $rmdpass;
            
$_SESSION['rseditioq'] = $rdefskin;
            }

        
$plugin_body .= $L['plu_loggedin1'].$rusername." ".$L['plu_loggedin2']."<br />";
        
$plugin_body .= $L['plu_loggedin3']."<br />";
        }
    else
        {
        
sed_shield_update(7,"Log in");
        
sed_log("Pass recovery failed, user : ".$rusername);
        
header("Location: message.php?msg=151");
        exit;
        }
    }
else
    {
    
$plugin_body .= $L['plu_explain1']."<br />".$L['plu_explain2']."<br />".$L['plu_explain3']."<br />&nbsp;<br />";
    
$plugin_body .= "<form name=\"reqauth\" action=\"plug.php?e=passrecover&amp;a=request\" method=\"post\">";
    
$plugin_body .= $L['plu_youremail']."<input type=\"text\" class=\"text\" name=\"email\" value=\"\" size=\"20\" maxlength=\"64\" />";
    
$plugin_body .= "<input type=\"submit\" class=\"submit\" value=\"".$L['plu_request']."\" /></form><br />&nbsp;<br />".$L['plu_explain4'];

    }

?>
Может быть, поможете, как сделать, чтобы при переходе по ссылке из почты оказывалась бы залогиненной под ником, который соответствует адресу почты.
Елена S вне форума Ответить с цитированием
Старый 22.05.2018, 10:05   #39
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

о, судя по всему у Вас используется движок Seditio CMS
Цитата:
Профессиональная система управления сайтами Seditio CMS - программный продукт на базе PHP и MySQL, позволяющий создавать и поддерживать интернет-проекты практически любого уровня сложности, не обладая при этом глубокими познаниями в web-программировании и html-верстке.
судя по
Цитата:
Сообщение от Елена S Посмотреть сообщение
Код:
sed_log("Pass*recovery*failed,*user*:*".$rusername);
где-то есть лог сайта, найдите его и прочитайте, что там за сообщения для пользователя, для которого Вы пытаетесь восстановить пароль.

Последний раз редактировалось Serge_Bliznykov; 22.05.2018 в 10:10.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.05.2018, 10:14   #40
Елена S
Пользователь
 
Регистрация: 17.07.2016
Сообщений: 93
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
о, судя по всему у Вас используется движок Seditio CMS
Да

Посмотреть лог ошибок или просто логи?
Елена S вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual Studio С++. при проверке условий ошибка error C2059: syntax error : ')' Kitekat Помощь студентам 5 07.07.2014 18:36
parse error: synxax error, unexpected 'case' (T_CASE) in ***** on line 930 Sullyvan PHP 2 21.06.2013 12:39
Причина ошибки Parse error: syntax error, unexpected T_VARIABLE Masafi PHP 4 10.05.2013 18:31
Ошибка Parse error: syntax error, unexpected T_STRING в PHP gunsoy PHP 1 20.07.2012 23:18
Ищу причину ошибки: Error in loading DLL, она же Error 48. hozpraktik Microsoft Office Excel 1 19.11.2009 12:39