Авто логин (автоматический вход в аккаунт после регистрации)

Вопросы, связанные с формами в WYSIWYG Web Builder.
Правила форума
1. Название темы должно кратко описывать суть вашего вопроса, темы типа: "Помогите", "Почему", "Что это", "Что-то глючит" - будут удаляться.
2. Задавая свой вопрос, постарайтесь предоставить максимум информации о проблеме, если есть возможность, приложите шаблон проекта *.wtp.
Подробнее: Правила создания новых тем и ответов на существующие темы.
Данный форум - это место обсуждения вопроса, а не техподдержка в классическом смысле. Все участники форума Web Builder по-русски с удовольствием вам помогут, если это будет в их силах.
Ответить Вложения 1
Аватара пользователя

Автор Темы
sidorivan
Читатель
Читатель
Сообщения: 11
Зарегистрирован: 30 авг 2016, 20:36
Версия Web Builder: 14.1
Контактная информация:

Авто логин (автоматический вход в аккаунт после регистрации)

Сообщение sidorivan » 26 май 2019, 17:21

Всем привет ребята, спрашиваю у профи, есть сайт, есть форма регистрации созданный на wysiwyg web builder, пишет в базу на php в файл, по стандарту все, так вот можно ли там сделать после регистарции, чтобы клиент сразу авто логинился, а не вводил пароль и логин?
Помогите плиз решить :-):
Вот исходник формы регистрации:

Код: Выделить всё

<?php
$database = './usersdb.php';
$success_page = './login.php';
$error_message = "";
if (!file_exists($database))
{
   die('User database not found!');
   exit;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['form_name']) && $_POST['form_name'] == 'signupform')
{
   $newusername = $_POST['username'];
   $newemail = $_POST['email'];
   $newpassword = $_POST['password'];
   $confirmpassword = $_POST['confirmpassword'];
   $newfullname = $_POST['fullname'];
   $code = 'NA';
   if ($newpassword != $confirmpassword)
   {
      $error_message = 'Password and Confirm Password are not the same!';
   }
   else
   if (!preg_match("/.*/", $newusername))
   {
      $error_message = 'Username is not valid, please check and try again!';
   }
   else
   if (!preg_match("/.*/", $newpassword))
   {
      $error_message = 'Password is not valid, please check and try again!';
   }
   else
   if (!preg_match("/.*/", $newfullname))
   {
      $error_message = 'Fullname is not valid, please check and try again!';
   }
   else
   if (!preg_match("/^.+@.+\..+$/", $newemail))
   {
      $error_message = 'Email is not a valid email address. Please check and try again.';
   }
   $items = file($database, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
   foreach($items as $line)
   {
      list($username, $password, $email, $fullname) = explode('|', trim($line));
      if ($newusername == $username)
      {
         $error_message = 'Username already used. Please select another username.';
         break;
      }
   }
   if (empty($error_message))
   {
      $file = fopen($database, 'a');
      fwrite($file, $newusername);
      fwrite($file, '|');
      fwrite($file, md5($newpassword));
      fwrite($file, '|');
      fwrite($file, $newemail);
      fwrite($file, '|');
      fwrite($file, $newfullname);
      fwrite($file, '|1|');
      fwrite($file, $code);
      fwrite($file, "\r\n");
      fclose($file);
      $subject = 'Ваш аккаунт на Сайте';
      $message = 'Данные вашего аккаунта на сайте.';
      $message .= "\r\nЛогин: ";
      $message .= $newusername;
      $message .= "\r\nПароль: ";
      $message .= $newpassword;
      $message .= "\r\nДля входа в ваш аккаунт используйте ссылку https://$_SERVER[SERVER_NAME]/login.php";
      $header  = "From: robot@$_SERVER[SERVER_NAME]"."\r\n";
      $header .= "Reply-To: robot@$_SERVER[SERVER_NAME]"."\r\n";
      $header .= "MIME-Version: 1.0"."\r\n";
      $header .= "Content-Type: text/plain; charset=utf-8"."\r\n";
      $header .= "Content-Transfer-Encoding: 8bit"."\r\n";
      $header .= "X-Mailer: PHP v".phpversion();
      mail($newemail, $subject, $message, $header);
      header('Location: '.$success_page);
      exit;
   }
}
?>

А вот сам файл login.php

Код: Выделить всё

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['form_name']) && $_POST['form_name'] == 'loginform')
{
   $success_page = './cabinet.php';
   $error_page = './error.php';
   $database = './usersdb.php';
   $crypt_pass = md5($_POST['password']);
   $found = false;
   $fullname = '';
   $session_timeout = 3600000;
   if(filesize($database) > 0)
   {
      $items = file($database, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
      foreach($items as $line)
      {
         list($username, $password, $email, $name, $active) = explode('|', trim($line));
         if ($username == $_POST['username'] && $active != "0" && $password == $crypt_pass)
         {
            $found = true;
            $fullname = $name;
         }
      }
   }
   if($found == false)
   {
      header('Location: '.$error_page);
      exit;
   }
   else
   {
      if (session_id() == "")
      {
         session_start();
      }
      $_SESSION['username'] = $_POST['username'];
      $_SESSION['fullname'] = $fullname;
      $_SESSION['expires_by'] = time() + $session_timeout;
      $_SESSION['expires_timeout'] = $session_timeout;
      $rememberme = isset($_POST['rememberme']) ? true : false;
      if ($rememberme)
      {
         setcookie('username', $_POST['username'], time() + 36000*24*30);
         setcookie('password', $_POST['password'], time() + 36000*24*30);
      }
      header('Location: '.$success_page);
      exit;
   }
}
$username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
$password = isset($_COOKIE['password']) ? $_COOKIE['password'] : '';
?>

Могу заплатить за помощь)))

Реклама
Аватара пользователя

spoon
Помешаный
Помешаный
Сообщения: 1614
Зарегистрирован: 17 сен 2016, 13:20
Версия Web Builder: 14.2.2
Имя: Дмитрий

Авто логин (автоматический вход в аккаунт после регистрации)

Сообщение spoon » 27 май 2019, 07:00

Я использую два расширения Регистрация и Авторизация, в форме регистрации дописываю пыху с отправкой логин/пароль на почту и немного дизайна)) делаю кнопку Авторизация на почте где при нажатии клиент переходит на страницу Авторизация там форма с полями логин/пароль, где клиент вводит данные при регистрации это нужно для прохождения авторизации пользователя через почту т.е. своего рода дополнительная проверка почты если почта верна то клиент регистрируется в БД, а если почта не верна то и регистрации не будет и когда он на странице Авторизации вводит логин/пароль то будет отказ т.к. перехода из почты не было, ну вот как-то так))
Вот пример письма которое приходит на почту клиенту при регистрации с кнопкой Авторизации
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Съешь ещё этих мягких французских булок, да выпей чаю!
Телега

Аватара пользователя

Автор Темы
sidorivan
Читатель
Читатель
Сообщения: 11
Зарегистрирован: 30 авг 2016, 20:36
Версия Web Builder: 14.1
Контактная информация:

Авто логин (автоматический вход в аккаунт после регистрации)

Сообщение sidorivan » 27 май 2019, 07:21

Да не, мне не надо это, просто помогите кто шарит, тупо пользователь регнулся и сразу в кабинет, этот как то в куках делается, нужно срочно помогите плиз, заплачу за работу)))

Аватара пользователя

spoon
Помешаный
Помешаный
Сообщения: 1614
Зарегистрирован: 17 сен 2016, 13:20
Версия Web Builder: 14.2.2
Имя: Дмитрий

Авто логин (автоматический вход в аккаунт после регистрации)

Сообщение spoon » 27 май 2019, 07:47

Ну дак у вас уже логин и пароль в куках лежат $username и $password, делайте проверку, если логин и пароль не пусты то авторизация не нужна и переходим на страницу cabinet.php или куда вам там надо.
Съешь ещё этих мягких французских булок, да выпей чаю!
Телега

Аватара пользователя

Автор Темы
sidorivan
Читатель
Читатель
Сообщения: 11
Зарегистрирован: 30 авг 2016, 20:36
Версия Web Builder: 14.1
Контактная информация:

Авто логин (автоматический вход в аккаунт после регистрации)

Сообщение sidorivan » 27 май 2019, 07:49

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

Аватара пользователя

spoon
Помешаный
Помешаный
Сообщения: 1614
Зарегистрирован: 17 сен 2016, 13:20
Версия Web Builder: 14.2.2
Имя: Дмитрий

Авто логин (автоматический вход в аккаунт после регистрации)

Сообщение spoon » 27 май 2019, 07:53

Сейчас не могу, только вечером. Задача проста, думаю ответят вам в течении дня.
Съешь ещё этих мягких французских булок, да выпей чаю!
Телега

Аватара пользователя

Автор Темы
sidorivan
Читатель
Читатель
Сообщения: 11
Зарегистрирован: 30 авг 2016, 20:36
Версия Web Builder: 14.1
Контактная информация:

Авто логин (автоматический вход в аккаунт после регистрации)

Сообщение sidorivan » 27 май 2019, 07:55

Ок спасибо жду, можете написать в личку или где удобнее скайп, телеграмм, ватсап любой мессенджер, обсудим! Ну или это будет полезно для форума выложить здесь, как хотите)

Аватара пользователя

spoon
Помешаный
Помешаный
Сообщения: 1614
Зарегистрирован: 17 сен 2016, 13:20
Версия Web Builder: 14.2.2
Имя: Дмитрий

Авто логин (автоматический вход в аккаунт после регистрации)

Сообщение spoon » 27 май 2019, 13:12

sidorivan, судя по коду login.php всё должно работать, может клиент галочку не ставит "Запомнить меня"? Перебрасывает на страницу ошибки или просто требует ввод пароль/логин? Проверте переменную $active, что она хранит. Да и вообще, как у вас происходит авторизация?

Отправлено спустя 27 минут 40 секунд:
Короче я сделал так убрал вот эту "шляпу"

Код: Выделить всё

if(filesize($database) > 0)
   {
      $items = file($database, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
      foreach($items as $line)
      {
         list($username, $password, $email, $name, $active) = explode('|', trim($line));

заменил на нормальное подключение к БД и вытаскивал пароль + активатор, сравнивал пароль из БД и проверку на активатор, если все Ок то выводил авотарку, имя в поля, а если нажата галочка "запомнить меня" то записываются кукки чтобы по новой не вводить данные, вот и всё.
Если вы используете БД для хранения данных клиента то нужно сделать нормальное подключение к БД и вытаскивать данные из неё.
Съешь ещё этих мягких французских булок, да выпей чаю!
Телега

Аватара пользователя

Alex15963
Опытный
Опытный
Сообщения: 697
Зарегистрирован: 17 фев 2015, 13:13
Версия Web Builder: 10.4.4
Имя: Алексей

Авто логин (автоматический вход в аккаунт после регистрации)

Сообщение Alex15963 » 28 май 2019, 01:22

Ну так естественно пароль и логин сохраняется в куках. Если пользователь выходит и потом заходит и не логинится, значит куки не сохраняются в браузере

Аватара пользователя

spoon
Помешаный
Помешаный
Сообщения: 1614
Зарегистрирован: 17 сен 2016, 13:20
Версия Web Builder: 14.2.2
Имя: Дмитрий

Авто логин (автоматический вход в аккаунт после регистрации)

Сообщение spoon » 28 май 2019, 06:59

Alex15963, они будут жить и после перезагрузки т.к. указан срок жизни time().

Отправлено спустя 1 минуту 30 секунд:
sidorivan, если не решили задачу пишите в скайп.
Съешь ещё этих мягких французских булок, да выпей чаю!
Телега


Ответить Вложения 1

Вернуться в «Формы.»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя