foreach ($invalidtxtEmailAddressDomains as $invalidtxtEmailAddressDomain) { if (stripos($email, $invalidtxtEmailAddressDomain) !== false) { $validtxtEmailAddress = false; break; } } foreach ($extrainfotxtEmailAddress as $einfo) { if (stripos($txtEmailAddress, $einfo) !== false) { $extrainfoflag = true; break; } } if (!$validtxtEmailAddress) { die(msg(0, "We do not accept yahoo, hotmail, live, free, gmail, rediff, lycos, aol, msn, mailinator, google, Btinternet, rocketmail addresses. Please give your official Email Address.")); } $result = mysql_query("select RegistrationID, Name, IsMemberUKPS, Valid from tbl_1e_registrationdetails where Email = '{$email}' and Password='******'"); $res = mysql_fetch_assoc($result); $count = mysql_num_rows($results); if (!empty($count)) { $userId = $result['RegistrationID']; StartSession($userId); if (!empty($result['Valid'])) { $datevalidated = date("Y-m-d H:i:s"); mysql_query("update tbl_1e_registrationdetails set Valid = 1 , DateValidated = '{$datevalidated}' where email ='{$email}'"); echo msg(1, "Thank you for contacting 1E. <br>We will be in touch shortly."); } } function msg($status, $txt) { return '{"status":' . $status . ',"txt":"' . $txt . '"}'; }
// Возможно здесь стоит сразу стартовать сессию... if ($UserId > 0) { $NewPassword = GeneratePassword(6); // пишем в базу пароль и время отправки письма с паролем // обнуляем сессию для восстановления и её время $sql = "update Users set user_password = '******',\n\t\t user_sendnewpassworddt = now(),\n\t\t\t\t\t user_sessionfornewpassword = null,\n\t\t\t\t\t user_sendnewpasswordrequestdt = null\n\t\t where user_id = {$UserId}"; // echo $sql; $rs = MySqlQuery($sql); $Msg = "Уважаемый пользователь {$UserName}!\r\n\r\n"; $Msg .= "Согласно подтверждённому запросу с Вашего адреса e-mail,\r\n"; $Msg .= "для Вашей учетной записи на сайте ММБ создан пароль: {$NewPassword}\r\n"; // Отправляем письмо SendMail(trim($UserEmail), $Msg, $UserName); CMmb::setShortResult("Пароль {$NewPassword} выслан.", 'MainPage'); // и вот тут м.б. стоит активировать сессию, чтобы автоматом войти на сайт $SessionId = StartSession($UserId); } $changepasswordsessionid = ""; $action = ""; } elseif ($action == "UserLogout") { // Выход CloseSession($SessionId, 3); $SessionId = ""; $action = ""; $view = "MainPage"; } elseif ($action == "CancelChangeUserData") { // Действие вызывается ссылкой Отмена CMmb::setViews('ViewUserData', ''); } elseif ($action == "FindUser") { // Действие вызывается поиском участника $FindString = mmb_validate($_POST, 'FindString', '');
function AddSession($Action, $Email) { StartSession(); $BrowserData = GetBrowserData(); $AliID = hash('sha256', uniqid(rand(), true)); $_SESSION["AliID"] = $AliID; $SessionIP = $BrowserData['IP']; $SessionBrowser = $BrowserData['Browser']; $SessionPlatform = $BrowserData['Platform']; global $PDOconn; $Query = 'CALL AddSession (?, ?, ?, ?, ?)'; $Statement = $PDOconn->prepare($Query); $Statement->bindParam(1, $AliID, PDO::PARAM_STR, 64); $Statement->bindParam(2, $Email, PDO::PARAM_STR, 45); $Statement->bindParam(3, $SessionIP, PDO::PARAM_STR, 45); $Statement->bindParam(4, $SessionBrowser, PDO::PARAM_STR, 45); $Statement->bindParam(5, $SessionPlatform, PDO::PARAM_STR, 45); Execute($Action, $Statement); }