На сессиях или сокете?
Спустя 24 минуты, 54 секунды (29.11.2010 - 10:37) vinnie написал(а):
на сессиях
Спустя 59 секунд (29.11.2010 - 10:38) vinnie написал(а):
можешь воспользоваться базовой аутентификацией) как те угодно
Спустя 2 минуты, 20 секунд (29.11.2010 - 10:40) GreatMax написал(а):
на админку сделал сесиях, а на авторизацию пользователей?
Типа такого: http://irbis-team.com/15/7/5
????
Типа такого: http://irbis-team.com/15/7/5
????
Спустя 1 минута, 28 секунд (29.11.2010 - 10:42) vinnie написал(а):
да, ты именно так
Спустя 25 секунд (29.11.2010 - 10:42) GreatMax написал(а):
Надо, что бы пользователь обычный запоминался!
Но с сокетами не очень безопасно будет, так как проект с платежами.
Ребята посоветуйте как бытЬ?
Но с сокетами не очень безопасно будет, так как проект с платежами.
Ребята посоветуйте как бытЬ?
Спустя 1 минута, 1 секунда (29.11.2010 - 10:43) GreatMax написал(а):
Цитата (vinnie @ 29.11.2010 - 07:42) |
да, ты именно так |
Но там же идёт запись в сокет!
Спустя 1 минута, 7 секунд (29.11.2010 - 10:44) vinnie написал(а):
вот те код, пользуйся
<?php
//Если юзер нажал кнопку отправки
if (isset ($_POST['ok']))
{
//Инициализируем переменные
$login = !empty ($_POST['login']) ? trim ($_POST['login']) : NULL;
$pass = !empty ($_POST['pass']) ? trim ($_POST['pass']) : NULL;
$pass2 = !empty ($_POST['pass2']) ? trim ($_POST['pass2']) : NULL;
$email = !empty ($_POST['email']) ? trim ($_POST['email']) : NULL;
//Массивы ошибок
$error = array;
$error2 = array;
//Если юзер ничего не вписал в поля, выводим сообщение об ошибке
if ($login == "" or $pass == "" or $pass2 == "")
$error[] = "Заполните все поля";
elseif ($pass !== $pass2)
$error[] = "Пароли не совпадают";
//Если введенный юзером e-mail не совпадает шаблону, опять выводим сообщение об ошибка
if (!preg_match ("#^([a-z0-9\_\-\.])+@(a-z0-9\_\-\.)\.([a-z]{2,6})$#i", $email))
$error[] = "Неправильный формат e-mail";
//Если нет ошибок, едем дальше
if (count ($error) == 0)
{
//Подключаемся
mysql_connect ("localhost", "root") or die ("Невозможно подключиться к серверу");
mysql_select_db ("php") or die ("Невозможно выбрать базу данных");
//Проверка на занятость введенного логина
$sql = "SELECT COUNT(*) AS `cnt` FROM `users`
WHERE `login` = '".mysql_real_escape_string ($login)."'";
$query = mysql_query ($sql);
if (mysql_result ($query, 0) > 0)
$error2[] = "Юзер с таким логином уже есть";
//Проверка на занятость введенного e-mail
$sql2 = "SELECT COUNT(*) AS `cnt` FROM `users`
WHERE `email` = '".mysql_real_escape_string ($email)."'";
$query2 = mysql_query ($sql2);
if (mysql_result ($query2, 0) > 0)
$error2[] = "Юзер с таким e-mail уже есть";
//Если все ок, топаем дальше
if (count ($error2) == 0)
{
$sql3 = "INSERT INTO `users` (`login`, `pass`, `email`)
VALUES ('".mysql_real_escape_string ($login)."',
'".md5($pass)."',
'".mysql_real_escape_string ($email)."')";
$query3 = mysql_query ($sql3);
if ($query3)
echo "Вы успешно зарегистрированы";
else
echo "Ошибка во время регистрации";
}
else
{
foreach ($error2 as $error_echo2)
echo $error_echo2."<br />";
}
}
else
{
foreach ($error as $error_echo)
echo $error_echo."<br />";
}
}
?>
<form action="" method="post">
<p><label>Желаемый логин</label><br />
<input type="text" name="login" maxlength="30" value="<?php echo htmlspecialchars ($login); ?>"/>
</p>
<p><label>Пароль</label><br />
<input type="password" name="pass" maxlength="30" value="<?php echo htmlspecialchars ($pass); ?>/>
</p>
<p><label>Подтвердите пароль</label><br />
<input type="password" name="pass2" maxlength="30" value="<?php echo htmlspecialchars ($pass2); ?>/>
</p>
<p><label>E-mail</label><br />
<input type="text" name="email" maxlength="50" value="<?php echo htmlspecialchars ($email); ?>/>
</p>
<p><input type="submit" name="ok" value="Зарегистрироваться" />
</p>
</form>
Спустя 1 минута, 35 секунд (29.11.2010 - 10:46) vinnie написал(а):
это для регистрации
Спустя 41 секунда (29.11.2010 - 10:46) vinnie написал(а):
ща авторизацию скину
Спустя 1 минута, 28 секунд (29.11.2010 - 10:48) GreatMax написал(а):
У меня свой есть! Регистрация сделана за 5 минут.
Мне сам вход для обычный пользователей и админа. Проблема в том, как запомнить пользователя, что бы при последующем обращение он входил без ввода пароля. Как это можно сделать на сессиях
Мне сам вход для обычный пользователей и админа. Проблема в том, как запомнить пользователя, что бы при последующем обращение он входил без ввода пароля. Как это можно сделать на сессиях
Спустя 2 минуты, 3 секунды (29.11.2010 - 10:50) vinnie написал(а):
за 5 минут??? Ты крут!!! А пароль в md5 хранишь?
Спустя 35 секунд (29.11.2010 - 10:50) GreatMax написал(а):
<?php
if(!defined('IN_MAIN')) {
die('Hacking attempt!');
}
session_start();
$err_secure = array();
#session_destroy();
#ВХОД
if (isset($_POST['user']) || isset($_POST['pass']) )
{
$user_post = !empty($_GET['user'])?ClearVariable($_GET['user']):NULL;
$pass_post = !empty($_GET['pass'])?ClearVariable($_GET['pass']):NULL;
$pass_post = !empty($_GET['key'])?ClearVariable($_GET['key']):NULL;
if ($user_post=="" || $pass_post=="" || $key_post=="") {
$err_secure[]='Одно из полей формы не заполнено.';
}
if ($_SESSION["secret_number"] != $key_post) {
$err_secure[]='Неправильный секретный код';
}
$pass_post=md5(md5($pass_post));
$sql_secure_session=mysql_query("SELECT * FROM user_cms WHERE login_adm='".$user_post."' AND password_adm='".$pass_post."'");
$sql_secure_session_view = mysql_fetch_assoc($sql_secure_session);
if ($user_post!=$sql_secure_session_view['login_adm'] || $pass_post!=$sql_secure_session_view['password_adm']) {
$err_secure[] = "Не верно введено имя пользователя и пароль.";
}
if(count($err_secure) == 0) {
$_SESSION['user']=$user_post;
$_SESSION['password']=$pass_post;
$_SESSION['secure']=md5(md5(rand(1,1000000)));
mysql_query("UPDATE user_cms SET key_adm='".$_SESSION['secure']."' WHERE login_adm='".$sql_secure_session_view['login_adm']."' AND password_adm='".$sql_secure_session_view['password_adm']."'");
}
else {
echo'<html>
<head>
<title>Авторизация</title>
<style type="text/css">
body,html {
background:#6FA1D9;
color:#ffffff;
letter-spacing: -0.5px;
p {color:#ffffff;}
}
td {font:normal 13px Verdana;color:#ffffff;}
INPUT{
border: 1px solid #ccc;
background-color: #E6EFF6;
color: #2C5883;
}
h1 {text-align:center; font:bold 18px Verdana; color:#ffffff;}
</style>
<script src="http://www.'.$_SERVER['HTTP_HOST'].'/templates/js/jquery.min.js"></script>
</head>
<body>';
$_SESSION['capcha']=$_SESSION['user']++;
echo '
<script type="text/javascript">
alert ("Пароль не верный");
<p><b>Возникли ошибки:</b></p>';
foreach($err_secure AS $error)
echo "alert ('.$error.')
</script></body></html>";
exit;
}
}
$sql_secure_session=mysql_query("SELECT * FROM user_cms WHERE login_adm='".$_SESSION['user']."' AND password_adm='".$_SESSION['password']."'");
$sql_secure_session_view = mysql_fetch_assoc($sql_secure_session);
#Если сессия пустая выводим форму входа.
if ($sql_secure_session_view['login_adm']!=$_SESSION['user'] || $sql_secure_session_view['password_adm']!=$_SESSION['password'] || $sql_secure_session_view['key_adm']!=$_SESSION['secure'] ||!isSet($_SESSION['user']) || !isSet($_SESSION['password']) || !isSet($_SESSION['secure']))
{
echo '<html>
<head>
<title>Вход в систему</title>
<style type="text/css">
body,html {
background:#fff;
letter-spacing: -0.5px;
}
td {font:normal 13px Verdana;}
INPUT{
border: 1px solid #ccc;
background-color: #E6EFF6;
color: #2C5883;
}
h1 {text-align:center; font:bold 18px Verdana;}
</style>
<script src="http://www.'.$_SERVER['HTTP_HOST'].'/templates/js/jquery.min.js"></script>
</head>
<body>
<h1>Вход в систему управления</h1>
<form method="post">
<table align="center">
<tr><td>Логин</td><td><input name="user" value="'.$POST['user'].'"></td></tr>
<tr><td>Пароль</td><td><input type="password" name="pass"></td></tr>';
if ($_SESSION['capcha']>=3) {
echo '<tr><td>Код</td><td><img src="../protect.php" border="1"></td></tr>
<tr><td><input type="submit" name="submit" value="Вход"></td><td><input name="key">
</td></tr>
<tr><td></td><td><input name="form[value4]" type="checkbox" value="1"> Запомнить Вас?</td></tr>';
}
else {
echo '
<tr><td><input type="submit" name="submit" value="Вход"></td>
<td><input name="save" type="checkbox" value="1"> Запомнить Вас?</td></tr>';
}
echo '</table>
</form>
</body>
</html>';
exit;
}
Спустя 1 минута, 41 секунда (29.11.2010 - 10:52) vinnie написал(а):
лови
<?php
//Если юзер нажал кнопку отправки
if (isset ($_POST['ok']))
{
//Инициализируем переменные
$login = !empty ($_POST['login']) ? trim ($_POST['login']) : NULL;
$pass = !empty ($_POST['pass']) ? trim ($_POST['pass']) : NULL;
$sql = mysql_query ("SELECT `id` FROM `users`
WHERE `login` = '".mysql_real_escape_string ($login)."'
AND `pass` = '".md5($pass)."'");
if (mysql_num_rows ($sql) < 0)
echo "Неверные данные";
else
{
session_start ();
$row = mysql_fetch_assoc ($sql);
$_SESSION['id'] = $row['id'];
$_SESSION['login'] = $row['login'];
header ("Location: secretnaya_zona.php");
}
}
?>
Спустя 51 секунда (29.11.2010 - 10:53) GreatMax написал(а):
А как тебе моя авторизация выше?
Спустя 37 секунд (29.11.2010 - 10:54) vinnie написал(а):
if (isset($_POST['user']) || isset($_POST['pass']) )
здест надо проверять на пустоту, а не на существование
Спустя 3 минуты, 21 секунда (29.11.2010 - 10:57) GreatMax написал(а):
Цитата (vinnie @ 29.11.2010 - 07:54) |
здест надо проверять на пустоту, а не на существование |
Проверка идёт ниже! если переменные не созданы то код не выполняется!
Р.S. Сокеты вообще не использовать для авторизации?
Спустя 49 секунд (29.11.2010 - 10:58) vinnie написал(а):
Сессии рулят!
Спустя 30 секунд (29.11.2010 - 10:58) vinnie написал(а):
твой сайт есть в инете?
Спустя 37 секунд (29.11.2010 - 10:59) GreatMax написал(а):
Цитата (vinnie @ 29.11.2010 - 07:58) |
Сессии рулят! |
Понятно, что рулят, не спорю!!!
Возможность же есть запомнить пользователя как то ещё?
Спустя 43 секунды (29.11.2010 - 11:00) vinnie написал(а):
куки, но лучше сессии
Спустя 36 секунд (29.11.2010 - 11:00) GreatMax написал(а):
Цитата (vinnie @ 29.11.2010 - 07:58) |
твой сайт есть в инете? |
Нет. Есть его облегчённые версии.
Спустя 19 секунд (29.11.2010 - 11:01) vinnie написал(а):
дай глянуть)
Спустя 2 минуты, 37 секунд (29.11.2010 - 11:03) GreatMax написал(а):
Цитата (vinnie @ 29.11.2010 - 08:01) |
дай глянуть) |
Скинул в личку. Но тот сайт очень старый