вот скрипт :
<?php
session_start();
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
if (empty($login) or empty($password))
{
include_once("diz.php");
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$login = trim($login);
$password = trim($password);
include ("bd.php");
$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (empty($myrow['password']))
{
include_once("diz.php"); exit ("Извините, введённый вами login или пароль неверный.") ;
}
else {
if ($myrow['password']==$password) {
$_SESSION['password']=$myrow['password'];
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];
echo "<html><head><meta http-equiv='Refresh' content='0; URL=index2.php'></head></html>";
}
else {
include_once("diz.php");
exit ("Извините, введённый вами login или пароль неверный.");
}
}
?>
Заранее спасибо!
Спустя 28 минут, 28 секунд (6.07.2012 - 17:47) Денис777 написал(а):
что не кто не поможет привести его в порядок ?
Спустя 9 минут, 2 секунды (6.07.2012 - 17:56) inpost написал(а):
! |
inpost |
Спустя 5 минут, 59 секунд (6.07.2012 - 18:02) Денис777 написал(а):
inpost объясни как ?
Спустя 2 часа, 8 минут, 1 секунда (6.07.2012 - 20:10) DySprozin написал(а):
Денис777
шеф, как-то так (;
[php]
<?php
а тут мега-код...
...
...
[/php]
а вообще, вот:
шеф, как-то так (;
[php]
<?php
а тут мега-код...
...
...
[/php]
а вообще, вот:
Спустя 5 минут, 40 секунд (6.07.2012 - 20:16) Денис777 написал(а):
<?php
session_start();
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
if (empty($login) or empty($password))
{
include_once("diz.php");
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$login = trim($login);
$password = trim($password);
include ("bd.php");
$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (empty($myrow['password']))
{
include_once("diz.php"); exit ("Извините, введённый вами login или пароль неверный.") ;
}
else {
if ($myrow['password']==$password) {
$_SESSION['password']=$myrow['password'];
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];
echo "<html><head><meta http-equiv='Refresh' content='0; URL=index2.php'></head></html>";
}
else {
include_once("diz.php");
exit ("Извините, введённый вами login или пароль неверный.");
}
}
?>
Спустя 40 секунд (6.07.2012 - 20:16) Денис777 написал(а):
DySprozin спс получилось , все постоянно говорят что в php теги код сделать , а сказать не кто не может ><
Спустя 1 час, 53 минуты, 24 секунды (6.07.2012 - 22:10) DarkLynx написал(а):
Держи..
<?php
session_start();
$login = (isset($_COOKIE['cLogin'])) ? $_COOKIE['cLogin'] : null;
$password = (isset($_COOKIE['cPass'])) ? $_COOKIE['cPass'] : null;
if ($login == null || $password == null)
{
$login = (isset($_POST['login'])) ? $_POST['login'] : null;
$password = (isset($_POST['password'])) ? $_POST['password'] : null;
}
if ($login == null || $password == null)
{
include_once('diz.php');
exit('Вы ввели не всю информацию, вернитесь назад и заполните все поля!');
}
$remember = (isset($_POST['remember'])) ? 1 : 0;
$passFrom = 1;
if (isset($_COOKIE['cPass']))
$passFrom = 2;
$login = trim(strip_tags($login));
$password = trim(strip_tags($password));
$password = ($passFrom == 2) ? $password : md5($password);
include_once ("bd.php");
$query = "SELECT * FROM users WHERE `login` = '%s'";
$query = sprintf($query, mysql_real_escape_string($login));
$query = mysql_query($query, $db);
$result = mysql_fetch_assoc($query);
if (!$result)
{
include_once('diz.php');
exit("Извините, введённый вами login или пароль неверный.");
}
if ($result['password'] !== $password)
{
include_once('diz.php');
exit("Извините, введённый вами login или пароль неверный.");
}
$_SESSION['login'] = $login;
$_SESSION['id'] = $result['id'];
if ($remember)
{
setcookie('cLogin', $login, time()+24*60*60);
setcookie('cPass', $result['password'], time()+24*60*60);
}
header('Location: index2.php');
?>
Спустя 1 час, 16 минут, 29 секунд (6.07.2012 - 23:26) Денис777 написал(а):
DarkLynx все таже ошибка
ошибки в этих трех строках
и как только я не пробывал этот скрипт , всегда когда поставляешь mb5 то регистрация проходит успешно , а вот при входе пишет неверный логин или пароль :(
$query = sprintf($query, mysql_real_escape_string($login));
$query = mysql_query($query, $db);
$result = mysql_fetch_assoc($query);
ошибки в этих трех строках
и как только я не пробывал этот скрипт , всегда когда поставляешь mb5 то регистрация проходит успешно , а вот при входе пишет неверный логин или пароль :(
Спустя 47 минут, 13 секунд (7.07.2012 - 00:13) Денис777 написал(а):
DarkLynx
извеняюсь , все работает , подключение к БД убрал , хотел по другому записать и забыл написать , спс все работает отлично
извеняюсь , все работает , подключение к БД убрал , хотел по другому записать и забыл написать , спс все работает отлично
Спустя 19 минут, 49 секунд (7.07.2012 - 00:33) Денис777 написал(а):
DarkLynx Хм... сам скрипт работает , но все осталось так же , если вводить ссылку то выкидывает на index.php , а не на index2.php
Спустя 26 минут, 1 секунда (7.07.2012 - 00:59) rooor написал(а):
какую ссылку куда вводить и что должно происходить?
Спустя 3 часа, 37 минут, 56 секунд (7.07.2012 - 04:37) inpost написал(а):
Денис777
Большинство интуитивно догадываются, ну а если нет, то никто не запрещает спросить. Ведь на форумы для вопросов и существуют.
Для авторизации делается так:
И проверять через: mysql_num_rows($res);
Всё это есть на ирбисе, а если ты не разобрался, то советую тебе заново всё пройти. Если какая-то из функций непонятна, сверяться и читать о ней тут: php.net
И ещё, добавить тут md5 - тебе надо и при регистрации тоже его добавлять.
Большинство интуитивно догадываются, ну а если нет, то никто не запрещает спросить. Ведь на форумы для вопросов и существуют.
Для авторизации делается так:
define('SALT','DWIADNWIADNWAD');
$res = mysql_query("
SELECT *
FROM `users`
WHERE `login` = '".mysql_real_escape_string($_POST['login'])."'
AND `pass` = '".md5($_POST['login'].SALT)."'
") or die(mysql_error());
И проверять через: mysql_num_rows($res);
Всё это есть на ирбисе, а если ты не разобрался, то советую тебе заново всё пройти. Если какая-то из функций непонятна, сверяться и читать о ней тут: php.net
И ещё, добавить тут md5 - тебе надо и при регистрации тоже его добавлять.
Спустя 3 часа, 50 минут, 24 секунды (7.07.2012 - 08:28) Денис777 написал(а):
inpost При регистрации добавил сразу , на ирбисе перечитывал не один раз , и все не могу понять МВЦ
Спустя 1 час, 20 минут, 38 секунд (7.07.2012 - 09:48) Денис777 написал(а):
inpost из за того что не понял МВЦ , дальше вообще половино не понятно
Спустя 16 минут, 53 секунды (7.07.2012 - 10:05) Денис777 написал(а):
rooor файл индекс это у меня шаблон с меню , ( ссылки на регистрацию/авторизацию и прочее ) когда юзер проходит авторизацию то его перенапровляет на index2.php, а вот если закрыть окно браузера или сам браузер и заново ввести ссылку то выкидывает на на index.php , а мне нужно чтоб так было только с не зарегестрироваными пользователями было , а кто прошел авторизацию ( т.е человек сидел на сайте вылючил компьютер пошел по делам , пришел включил ввел ссылку и ему сразу ввыводился файл index2.php )
возможно я что то не так объясняю , может выложить на хостинг все и дать ссылку ?
возможно я что то не так объясняю , может выложить на хостинг все и дать ссылку ?
Спустя 36 минут, 26 секунд (7.07.2012 - 10:42) DarkLynx написал(а):
У вас пароли в базе данных у пользователей записаны в md5?
Спустя 2 минуты, 53 секунды (7.07.2012 - 10:44) Денис777 написал(а):
Что не чего не получаеться :unsure:
вот что у меня есть :
index.php
скрипт авторизации
index2.php
Мне нужно следующее что я не могу реализовать - Заходит новоый пользователь проходит регистрацию , потом авторизацию и его перенапровляет на index2.php , ну если ввести ссылку заново 7keep.ru , то происходит следующее 7keep.ru/index.php/ , а мне нужно чтоб для зарегестрированых пользователей было так 7keep.ru/index2.php/ , а для не зарегестрированых ,было так 7keep.ru/index.php/
вот не могу этого добиться уже долгое время . Кто может помогите реализовать идею. :unsure:
вот что у меня есть :
index.php
<?php
session_start();
include './skins/tpl/index.tpl';
include './skins/tpl/games.tpl';
include './skins/tpl/menu.tpl';
include './skins/tpl/bloc.tpl';
?>
скрипт авторизации
<?php
session_start();
$login = (isset($_COOKIE['cLogin'])) ? $_COOKIE['cLogin'] : null;
$password = (isset($_COOKIE['cPass'])) ? $_COOKIE['cPass'] : null;
if ($login == null || $password == null)
{
$login = (isset($_POST['login'])) ? $_POST['login'] : null;
$password = (isset($_POST['password'])) ? $_POST['password'] : null;
}
if ($login == null || $password == null)
{
exit('Вы ввели не всю информацию, вернитесь назад и заполните все поля!');
}
$remember = (isset($_POST['remember'])) ? 1 : 0;
$passFrom = 1;
if (isset($_COOKIE['cPass']))
$passFrom = 2;
$login = trim(strip_tags($login));
$password = trim(strip_tags($password));
$password = ($passFrom == 2) ? $password : md5($password);
include_once './bd.php';
$query = "SELECT * FROM users WHERE `login` = '%s'";
$query = sprintf($query, mysql_real_escape_string($login));
$query = mysql_query($query, $db);
$result = mysql_fetch_assoc($query);
if (!$result)
{
exit("Извините, введённый вами login или пароль неверный.");
}
if ($result['password'] !== $password)
{
exit("Извините, введённый вами login или пароль неверный.");
}
$_SESSION['login'] = $login;
$_SESSION['id'] = $result['id'];
if ($remember)
{
setcookie('cLogin', $login, time()+24*60*60);
setcookie('cPass', $result['password'], time()+24*60*60);
}
header('Location: index2.php');
?>
index2.php
<?php
session_start();
include './skins/tpl/index.tpl';
echo '<div id="h7">';
include './skins/tpl/login.php';
include './skins/tpl/games2.tpl';
include './skins/tpl/menu_index2.tpl';
include './skins/tpl/bloc.tpl';
?>
Мне нужно следующее что я не могу реализовать - Заходит новоый пользователь проходит регистрацию , потом авторизацию и его перенапровляет на index2.php , ну если ввести ссылку заново 7keep.ru , то происходит следующее 7keep.ru/index.php/ , а мне нужно чтоб для зарегестрированых пользователей было так 7keep.ru/index2.php/ , а для не зарегестрированых ,было так 7keep.ru/index.php/
вот не могу этого добиться уже долгое время . Кто может помогите реализовать идею. :unsure:
Спустя 33 секунды (7.07.2012 - 10:45) Денис777 написал(а):
DarkLynx да я на скрипт регистрации поставил mb5
Спустя 2 минуты, 42 секунды (7.07.2012 - 10:48) Денис777 написал(а):
DarkLynx то что вы поставили куки все работает отлично , и если добавить в закладки ссылку то все работает отлично , но мне нужно маленько по другому
Спустя 25 секунд (7.07.2012 - 10:48) DarkLynx написал(а):
Так, вы действительно выложили всё что есть в файлах index.php ?
А где форма авторизации?
Я понял. Вам нужна переадресация при заходе на index.php.
А где форма авторизации?
Я понял. Вам нужна переадресация при заходе на index.php.
Спустя 1 минута, 51 секунда (7.07.2012 - 10:50) Денис777 написал(а):
Цитата (DarkLynx @ 7.07.2012 - 07:48) |
А где форма авторизации? |
она находиться в другом файле , index это шаблон гавной странице с ссылками
Спустя 2 минуты, 22 секунды (7.07.2012 - 10:52) Денис777 написал(а):
Цитата (DarkLynx @ 7.07.2012 - 07:48) |
Я понял. Вам нужна переадресация при заходе на index.php. |
да , переадресация на index2.php, толко мне нужно чтоб переадресация проходила для тех юзеров которые успещно вошли на сайт , а не для зарегестрированых пользователей все так же как и есть выкидывала на индекс
Спустя 5 минут, 57 секунд (7.07.2012 - 10:58) DarkLynx написал(а):
Вот функция и её вызов.
Вставьте это во входной файл.
session_start();
function CheckAuth()
{
if (isset($_SESSION['id']) && !empty($_SESSION['id']))
return true;
$login = (isset($_COOKIE['cLogin'])) ? $_COOKIE['cLogin'] : null;
$password = (isset($_COOKIE['cPass'])) ? $_COOKIE['cPass'] : null;
if ($login == null || $password == null)
return false;
include_once ("bd.php");
$query = "SELECT * FROM users WHERE `login` = '%s'";
$query = sprintf($query, mysql_real_escape_string($login));
$query = mysql_query($query, $db);
$result = mysql_fetch_assoc($query);
if (!$result)
return false;
if ($result['password'] !== $password)
return false;
$_SESSION['login'] = $login;
$_SESSION['id'] = $result['id'];
return true;
}
$auth = CheckAuth();
if ($auth)
header('Location: index2.php');
Вставьте это во входной файл.
Спустя 4 минуты, 36 секунд (7.07.2012 - 11:03) Денис777 написал(а):
DarkLynx оболдеть , работает , только наверное надо вставить не во входной файл а в индекс
Спустя 1 минута, 48 секунд (7.07.2012 - 11:05) Денис777 написал(а):
DarkLynx все втавил в индекс и работает как мне и было нужно , два месяца добивался этого огромное вам спасибо
Спустя 3 минуты, 30 секунд (7.07.2012 - 11:08) DarkLynx написал(а):
Цитата (Денис777 @ 7.07.2012 - 08:05) |
DarkLynx все втавил в индекс и работает как мне и было нужно , два месяца добивался этого огромное вам спасибо |
Спустя 3 минуты, 26 секунд (7.07.2012 - 11:12) Денис777 написал(а):
DarkLynx конечно все работает , но появилась новая проблемка, когда нажимаю на выход с сайта не выходит все продолжает работать
Спустя 1 минута, 35 секунд (7.07.2012 - 11:13) DarkLynx написал(а):
Цитата (Денис777 @ 7.07.2012 - 08:12) |
DarkLynx конечно все работает , но появилась новая проблемка, когда нажимаю на выход с сайта не выходит все продолжает работать |
Это потому что у Вас logout убирает только сессионные данные.
Нужно добавить туда
setcookie('cLogin', '');
setcookie('cPass', '');
Это убьет куки и пользователь не будет считаться "запомненным"
Спустя 3 минуты, 15 секунд (7.07.2012 - 11:16) Денис777 написал(а):
вот файл exit.php
и нету logout :unsure:
<?php
session_start();
if (empty($_SESSION['login']) or empty($_SESSION['password']))
{
exit ("Доступ на эту страницу разрешен только зарегистрированным пользователям.<br><a href='index.php'>Главная страница</a>");
}
unset($_SESSION['password']);
unset($_SESSION['login']);
unset($_SESSION['id']);
exit("<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>");
?>
и нету logout :unsure:
Спустя 1 минута, 42 секунды (7.07.2012 - 11:18) Денис777 написал(а):
DarkLynx а все разобрался
вот это лишнее :)
if (empty($_SESSION['login']) or empty($_SESSION['password']))
{
exit ("Доступ на эту страницу разрешен только зарегистрированным пользователям.<br><a href='index.php'>Главная страница</a>");
}
вот это лишнее :)
Спустя 33 секунды (7.07.2012 - 11:19) DarkLynx написал(а):
Цитата (Денис777 @ 7.07.2012 - 08:16) |
вот файл exit.php
и нету logout :unsure: |
Logout - это сброс авторизации.. Просто слово которым эти действия обозначаются. Если бы была функция сброса авторизации, то в 99% случаях она содержала бы logout.
По существу. После вот этих строк, добавьте то что я написал
unset($_SESSION['password']);
unset($_SESSION['login']);
unset($_SESSION['id']);
Спустя 1 минута, 45 секунд (7.07.2012 - 11:20) Денис777 написал(а):
DarkLynx я убрал
if (empty($_SESSION['login']) or empty($_SESSION['password']))
{
exit ("Доступ на эту страницу разрешен только зарегистрированным пользователям.<br><a href='index.php'>Главная страница</a>");
}
и все работает , или все таки сделал это зря и все вернуть обратно и добавить то что вы написали ?
Спустя 6 минут, 16 секунд (7.07.2012 - 11:27) DarkLynx написал(а):
Суть проблемы вот в чем.
У вас идет проверка на существование в сессии логина и пароля. Я убрал хранение пароля в сессии тк это полный бред. Зачем его там хранить никому не понятно.. Может только Попову :)
Если вы хотите оставить запрет на доступ к этой странице для неавторизованных юзеров, то просто достаточно добавить вот такой if
А добавить уничтожение куков все таки нужно. Т.к. если бы Вы вошли с "запомнить" то тогда Ваш скрипт выхода бы не сработал.
Да кстати, не забудьте добавить в форму авторизации
Ну или вместо радио чекбокс, как душе угодно.
У вас идет проверка на существование в сессии логина и пароля. Я убрал хранение пароля в сессии тк это полный бред. Зачем его там хранить никому не понятно.. Может только Попову :)
Если вы хотите оставить запрет на доступ к этой странице для неавторизованных юзеров, то просто достаточно добавить вот такой if
if (!isset($_SESSION['id']))
А добавить уничтожение куков все таки нужно. Т.к. если бы Вы вошли с "запомнить" то тогда Ваш скрипт выхода бы не сработал.
Да кстати, не забудьте добавить в форму авторизации
<input type="radio" name="remember"> Запомнить меня
Ну или вместо радио чекбокс, как душе угодно.
Спустя 4 минуты, 5 секунд (7.07.2012 - 11:31) Денис777 написал(а):
DarkLynx
добавить куда в index2.php или в exit.php ?
а зачем добовлять галочку запоминание если он итак отлично запоминает пользователя ?
if (!isset($_SESSION['id']))
добавить куда в index2.php или в exit.php ?
а зачем добовлять галочку запоминание если он итак отлично запоминает пользователя ?
Спустя 5 минут, 5 секунд (7.07.2012 - 11:36) DarkLynx написал(а):
Цитата (Денис777 @ 7.07.2012 - 08:31) |
DarkLynx
добавить куда в index2.php или в exit.php ? а зачем добовлять галочку запоминание если он итак отлично запоминает пользователя ? |
В exit.php вместо той проверки которую Вы скинули.
Затем что в той авторизации которую я написал есть проверка именно на $_POST['remember']..
Насчет запоминает... Он у вас запоминает пользователя в сессию, а это до закрытия браузера.. Если же передать remember, как я написал выше, то он запомнит пользователя в куках на неделю. И будет автологин, как Вы и просили в первом посте. А без этого ни о каком автологине и речи не идет..
Точнее можно переделать так, что бы он всегда запоминал в куки, но это на мой взгляд не правильно, не давайте человеку выбора. Поэтому проще просто вставить 1 строчку в форму авторизации и всё будет работать как надо, да еще и пользователю выбор предоставили..
Спустя 1 минута, 31 секунда (7.07.2012 - 11:37) DarkLynx написал(а):
Поправочка, в том input что я скинул, отсутсвует value="1" думаю сами добавите =)
Спустя 16 минут, 52 секунды (7.07.2012 - 11:54) Денис777 написал(а):
DarkLynx Дествительно , что то я и не подумал что при закрытии браузера все пропадет , вставил инпут на входной файл закрыл браузер перепроверил все заработало , еще раз спасибо Знаю что есть такая функция как изменение пароля , если юзер захотел сменить пароль , каким образом она делаеться ?
Спустя 3 минуты, 14 секунд (7.07.2012 - 11:57) DarkLynx написал(а):
В общих словах..
Получаем логин и старый пароль и новый пароль. Проверяем, если логин и старый пароль от этого пользователя, меняем на новый. Всё.
забыл. Если у пользователя были установлены куки, перезаписываем в куки новый пароль.
Получаем логин и старый пароль и новый пароль. Проверяем, если логин и старый пароль от этого пользователя, меняем на новый. Всё.
забыл. Если у пользователя были установлены куки, перезаписываем в куки новый пароль.
Спустя 3 минуты, 31 секунда (7.07.2012 - 12:01) Денис777 написал(а):
DarkLynx спс попробую реализовать