Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Сделать редерикт на страницу, ссылка на которую отправляется в письме, а из письма удалить ссылку.Не по ссылке в почте, а именно после заполнения регистрационных форм, нажал "зарегистрироваться" и сразу авторизировался.
Попробую так сделать, в скором времени отпишусь и видимо выложу кодНу, взять код из входа в аккаунт и добавить к регистрации.
Например, в сессию сразу записать что пользователь авторизован.
Но часто бывает что проверка входа происходит до регистрации - тут можно сделать редирект на вторую страницу.
<?php
include_once("../mypanel/cp-includes/bd_web.php");
echo '<br><br><br>';
if (isset($_POST['submit'])){
if(empty($_POST['login'])) {
echo '<br><font color="red"><img border="0" src="error.jpg" align="middle">Введите логин!</font>';
}
elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
echo '<br><font color="red"><img border="0" src="error.jpg" align="middle">В поле "Логин" введены недопустимые символы!</font>';
}
elseif(empty($_POST['password'])) {
echo '<br><font color="red"><img border="0" src="error.jpg" align="middle" >Введите пароль!</font>';
}
elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
echo '<br><font color="red"><img border="0" src="error.jpg" align="middle" >Пароль слишком короткий!</font>';
}
elseif(empty($_POST['password2'])) {
echo '<br><font color="red"><img border="0" src="error.jpg" align="middle" >Введите подтверждение пароля!</font>';
}
elseif($_POST['password'] != $_POST['password2']) {
echo '<br><font color="red"><img border="0" src="error.jpg" align="middle">Введенные пароли не совпадают!</font>';
}
else{
$login = $_POST['login'];
$password = $_POST['password'];
$mdPassword = md5($password);
$password2 = $_POST['password2'];
$email = $_POST['email'];
$rdate = date("d-m-Y / H:i");
$name = $_POST['name'];
$plugins = $_POST['plugins'];
$m1_edit = $_POST['m1_edit'];
$m2_edit = $_POST['m2_edit'];
$m3_edit = $_POST['m3_edit'];
$m4_edit = $_POST['m4_edit'];
$m5_edit = $_POST['m5_edit'];
$m1 = $_POST['m1'];
$m2 = $_POST['m2'];
$m3 = $_POST['m3'];
$m4 = $_POST['m4'];
$m5 = $_POST['m5'];
$color = $_POST['color'];
$slogan = $_POST['slogan'];
$logo_text = $_POST['logo_text'];
$album_edit = $_POST['album_edit'];
$shop_edit = $_POST['shop_edit'];
$post_edit = $_POST['post_edit'];
$query = ("SELECT id FROM users WHERE login='$login'");
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) > 0) {
echo '<font color="red"><img border="0" src="error.jpg" align="middle">Пользователь с таким логином зарегистрирован!</font>';
}
else {
$query2 = ("SELECT id FROM users WHERE email='$email'");
$sql = mysql_query($query2) or die(mysql_error());
if (mysql_num_rows($sql) > 0){
echo '<font color="red"><img border="0" src="error.jpg" align="middle">Пользователь с таким e-mail уже зарегистрирован</font>';
}
else{
$query = "INSERT INTO users (login, password, email, reg_date, m1_edit, m2_edit, m3_edit, m4_edit, m5_edit, m1, m2, m3, m4, m5, slogan, album_edit, shop_edit, logo_text, color, post_edit)
VALUES ('$login', '$mdPassword', '$email', '$rdate', '$m1_edit', '$m2_edit', '$m3_edit', '$m4_edit', '$m5_edit', '$m1', '$m2', '$m3', '$m4', '$m5', '$slogan', '$album_edit', '$shop_edit', '$logo_text', '$color', '$post_edit')";
$result = mysql_query($query) or die(mysql_error());;
echo '<font style="color:#a1c900"><img border="0" src="ok.jpg" align="middle">Вы успешно зарегистрировались!</font>';
}
}
}
}
echo '<br><br><a style="font-size:15px; color:#555;" href="/">Вернуться на главную</a>';
?>
<?
if ($session_path)
{
session_save_path ($session_path);
}
session_start ();
if ($_GET[signout])
{
session_destroy ();
header ('location:index.php');
exit ();
}
if (!((!$_SESSION[login] AND !$_SESSION[password])))
{
$link = mysql_connect ($dbhost, $dbuser, $dbpass);
mysql_select_db ($dbname, $link);
$result = mysql_query ('SELECT login,password FROM ' . $dbacct . ' WHERE id=\'' . $_SESSION[userid] . '\'', $link);
$row = @mysql_fetch_array ($result);
if (!((($row[login] AND !($_SESSION[login] !== $row[login])) AND !($_SESSION[password] !== $row[password]))))
{
session_destroy ();
$alert = 'Your session has expired.';
require 'cp-includes/inc-login.php';
exit ();
}
}
else
{
if (!((!$_POST[login] AND !$_POST[password])))
{
$_POST = safe_data ($_POST, 'query');
$link = mysql_connect ($dbhost, $dbuser, $dbpass);
mysql_select_db ($dbname, $link);
$result = mysql_query ('SELECT *,CONCAT(first_name,\' \',last_name) AS name FROM ' . $dbacct . ' WHERE login=\'' . $_POST['login'] . '\' AND password=\'' . md5 ($_POST[password]) . '\'', $link);
if (@mysql_num_rows ($result))
{
$row = mysql_fetch_array ($result);
if ($row[pending])
{
session_destroy ();
$alert = 'This account has not been activated yet.';
require 'cp-includes/inc-login.php';
exit ();
}
if ($row[expire])
{
if ($row[expire] < time ())
{
session_destroy ();
$error = 'This account has expired.';
require 'cp-includes/inc-login.php';
exit ();
}
}
if ($row[status])
{
session_destroy ();
$error = 'This account is currently disabled.';
require 'cp-includes/inc-login.php';
exit ();
}
mysql_query ('UPDATE ' . $dbacct . ' SET last_login=\'' . time () . ('\' WHERE id=\'' . $row['id'] . '\' LIMIT 1'), $link);
$c2[userid] = $row[id];
$c2[name] = $row[name];
$c2[user_type] = $row[user_type];
$c2[login] = $row[login];
$c2[password] = $row[password];
$c2[maxlist] = $row[maxlist];
$c2[listings] = $row[listings];
$c2[status] = $row[status];
$c2[location] = $row[location];
$_SESSION = $c2;
return 1;
}
session_destroy ();
$error = 'Invalid login or password.';
require 'cp-includes/inc-login.php';
exit ();
}
$message = 'Please sign in to access the Control Panel.';
require 'cp-includes/inc-login.php';
exit ();
}
?>
После "Вы успешно зарегистрировались" добавить:Мои попытки безуспешны.
Как в этом коде сделать так что бы пользователь после регистрации попадал на страницу (любую) при этом уже с параметрами авторизации в сессииPHP:<?php include_once("../mypanel/cp-includes/bd_web.php"); echo '<br><br><br>'; if (isset($_POST['submit'])){ if(empty($_POST['login'])) { echo '<br><font color="red"><img border="0" src="error.jpg" align="middle">Введите логин!</font>'; } elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) { echo '<br><font color="red"><img border="0" src="error.jpg" align="middle">В поле "Логин" введены недопустимые символы!</font>'; } elseif(empty($_POST['password'])) { echo '<br><font color="red"><img border="0" src="error.jpg" align="middle" >Введите пароль!</font>'; } elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) { echo '<br><font color="red"><img border="0" src="error.jpg" align="middle" >Пароль слишком короткий!</font>'; } elseif(empty($_POST['password2'])) { echo '<br><font color="red"><img border="0" src="error.jpg" align="middle" >Введите подтверждение пароля!</font>'; } elseif($_POST['password'] != $_POST['password2']) { echo '<br><font color="red"><img border="0" src="error.jpg" align="middle">Введенные пароли не совпадают!</font>'; } else{ $login = $_POST['login']; $password = $_POST['password']; $mdPassword = md5($password); $password2 = $_POST['password2']; $email = $_POST['email']; $rdate = date("d-m-Y / H:i"); $name = $_POST['name']; $plugins = $_POST['plugins']; $m1_edit = $_POST['m1_edit']; $m2_edit = $_POST['m2_edit']; $m3_edit = $_POST['m3_edit']; $m4_edit = $_POST['m4_edit']; $m5_edit = $_POST['m5_edit']; $m1 = $_POST['m1']; $m2 = $_POST['m2']; $m3 = $_POST['m3']; $m4 = $_POST['m4']; $m5 = $_POST['m5']; $color = $_POST['color']; $slogan = $_POST['slogan']; $logo_text = $_POST['logo_text']; $album_edit = $_POST['album_edit']; $shop_edit = $_POST['shop_edit']; $post_edit = $_POST['post_edit']; $query = ("SELECT id FROM users WHERE login='$login'"); $sql = mysql_query($query) or die(mysql_error()); if (mysql_num_rows($sql) > 0) { echo '<font color="red"><img border="0" src="error.jpg" align="middle">Пользователь с таким логином зарегистрирован!</font>'; } else { $query2 = ("SELECT id FROM users WHERE email='$email'"); $sql = mysql_query($query2) or die(mysql_error()); if (mysql_num_rows($sql) > 0){ echo '<font color="red"><img border="0" src="error.jpg" align="middle">Пользователь с таким e-mail уже зарегистрирован</font>'; } else{ $query = "INSERT INTO users (login, password, email, reg_date, m1_edit, m2_edit, m3_edit, m4_edit, m5_edit, m1, m2, m3, m4, m5, slogan, album_edit, shop_edit, logo_text, color, post_edit) VALUES ('$login', '$mdPassword', '$email', '$rdate', '$m1_edit', '$m2_edit', '$m3_edit', '$m4_edit', '$m5_edit', '$m1', '$m2', '$m3', '$m4', '$m5', '$slogan', '$album_edit', '$shop_edit', '$logo_text', '$color', '$post_edit')"; $result = mysql_query($query) or die(mysql_error());; echo '<font style="color:#a1c900"><img border="0" src="ok.jpg" align="middle">Вы успешно зарегистрировались!</font>'; } } } } echo '<br><br><a style="font-size:15px; color:#555;" href="/">Вернуться на главную</a>'; ?>
А вот так выглядит файл с сессиями
PHP:<? if ($session_path) { session_save_path ($session_path); } session_start (); if ($_GET[signout]) { session_destroy (); header ('location:index.php'); exit (); } if (!((!$_SESSION[login] AND !$_SESSION[password]))) { $link = mysql_connect ($dbhost, $dbuser, $dbpass); mysql_select_db ($dbname, $link); $result = mysql_query ('SELECT login,password FROM ' . $dbacct . ' WHERE id=\'' . $_SESSION[userid] . '\'', $link); $row = @mysql_fetch_array ($result); if (!((($row[login] AND !($_SESSION[login] !== $row[login])) AND !($_SESSION[password] !== $row[password])))) { session_destroy (); $alert = 'Your session has expired.'; require 'cp-includes/inc-login.php'; exit (); } } else { if (!((!$_POST[login] AND !$_POST[password]))) { $_POST = safe_data ($_POST, 'query'); $link = mysql_connect ($dbhost, $dbuser, $dbpass); mysql_select_db ($dbname, $link); $result = mysql_query ('SELECT *,CONCAT(first_name,\' \',last_name) AS name FROM ' . $dbacct . ' WHERE login=\'' . $_POST['login'] . '\' AND password=\'' . md5 ($_POST[password]) . '\'', $link); if (@mysql_num_rows ($result)) { $row = mysql_fetch_array ($result); if ($row[pending]) { session_destroy (); $alert = 'This account has not been activated yet.'; require 'cp-includes/inc-login.php'; exit (); } if ($row[expire]) { if ($row[expire] < time ()) { session_destroy (); $error = 'This account has expired.'; require 'cp-includes/inc-login.php'; exit (); } } if ($row[status]) { session_destroy (); $error = 'This account is currently disabled.'; require 'cp-includes/inc-login.php'; exit (); } mysql_query ('UPDATE ' . $dbacct . ' SET last_login=\'' . time () . ('\' WHERE id=\'' . $row['id'] . '\' LIMIT 1'), $link); $c2[userid] = $row[id]; $c2[name] = $row[name]; $c2[user_type] = $row[user_type]; $c2[login] = $row[login]; $c2[password] = $row[password]; $c2[maxlist] = $row[maxlist]; $c2[listings] = $row[listings]; $c2[status] = $row[status]; $c2[location] = $row[location]; $_SESSION = $c2; return 1; } session_destroy (); $error = 'Invalid login or password.'; require 'cp-includes/inc-login.php'; exit (); } $message = 'Please sign in to access the Control Panel.'; require 'cp-includes/inc-login.php'; exit (); } ?>
mysql_query ('UPDATE ' . $dbacct . ' SET last_login=\'' . time () . ('\' WHERE id=\'' . $row['id'] . '\' LIMIT 1'), $link);
$c2[userid] = $row[id];
$c2[name] = $row[name];
$c2[user_type] = $row[user_type];
$c2[login] = $row[login];
$c2[password] = $row[password];
$c2[maxlist] = $row[maxlist];
$c2[listings] = $row[listings];
$c2[status] = $row[status];
$c2[location] = $row[location];
$_SESSION = $c2;
После "Вы успешно зарегистрировались" добавить:
Код:mysql_query ('UPDATE ' . $dbacct . ' SET last_login=\'' . time () . ('\' WHERE id=\'' . $row['id'] . '\' LIMIT 1'), $link); $c2[userid] = $row[id]; $c2[name] = $row[name]; $c2[user_type] = $row[user_type]; $c2[login] = $row[login]; $c2[password] = $row[password]; $c2[maxlist] = $row[maxlist]; $c2[listings] = $row[listings]; $c2[status] = $row[status]; $c2[location] = $row[location]; $_SESSION = $c2;
Только вместо $row[id] сделать mysql_insert_id. И вместо $row, надо $_POST
И в начало:
if ($session_path)
{
session_save_path ($session_path);
}
session_start ();
И стоит сказать, код ужасный:
1. SQL инъекции
2. Использование mysql (На php.net: Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL.) - я использую PDO.
3. Подключение делают в начале кода и потом используют его - это для входа (А при регистрации - подключение /mypanel/cp-includes/bd_web.php - хоть что-то)
mysql_query ('UPDATE ' . $dbacct . ('\' WHERE id=\'' . mysql_insert_id . '\' LIMIT 1'), $link);
$_SESSION[userid] = $_POST[userid];
$_SESSION[login] = $_POST[login];
$_SESSION[password] = $_POST[password];
echo '<br>';
echo $_SESSION[userid];
echo '<br>';
echo $_SESSION[id];
echo '<br>';
echo $_SESSION[login];
echo '<br>';
echo $_SESSION[password];
Ты записываешь сессии до какого-либо вывода на экран?Я немного почистил лишнее, в сессию необходимо занести только userid, login, password.
Но вот userid / id никак не хотят входить в сессию...
PHP:mysql_query ('UPDATE ' . $dbacct . ('\' WHERE id=\'' . mysql_insert_id . '\' LIMIT 1'), $link); $_SESSION[userid] = $_POST[userid]; $_SESSION[login] = $_POST[login]; $_SESSION[password] = $_POST[password]; echo '<br>'; echo $_SESSION[userid]; echo '<br>'; echo $_SESSION[id]; echo '<br>'; echo $_SESSION[login]; echo '<br>'; echo $_SESSION[password];
Да я для себя их вывожу, что бы понять что выводится а что нет...Ты записываешь сессии до какого-либо вывода на экран?