[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка введеного логина и пароля
tech
Из формы (index.html) передаем в login.php 2 значения, логин и пароль. Ниже представлен текущий код с "двумя проверками данных":
<?
$login=$_POST['log']; $pass=$_POST['pas'];

if($login&&$pass)
{
$connect=mysql_connect("localhost","root","");
mysql_select_db("bal");

$res=mysql_query("SELECT * FROM ident WHERE log='$login' && pas='$pass'");

$numrows=mysql_num_rows($res); // первая проверка

if($numrows!=0) // первая проверка
{
while($row=mysql_fetch_assoc($res)) // начало второй проверки
{
$dblog=$row['log'];
$dbpas=$row['pas'];
}

if ($login==$dblog&&$pass==$dbpas) // вторая проверка
{
echo "You are login in. <a href='calc.php'>Click</a> here to join next page.";
}
else
{
echo "User or password incorect.1";
}
}

else
{
echo "User or password incorect.2";
}
}

else
{
echo "Enter login and password.";
}
?>


Вопрос 1: Можно ли урезать этот код до "одной" проверки как представлено ниже, ведь так и так будут проверяться данные? И на сколько хуже будет порверка данных?:
<?
$login=$_POST['log'];
$pass=$_POST['pas'];

if($login&&$pass)
{
$connect=mysql_connect("localhost","root","") or die("Couldn't connect");
mysql_select_db("bal") or die ("Couldn't find db");

$res=mysql_query("SELECT * FROM ident WHERE log='$login' && pas='$pass'");

$numrows=mysql_num_rows($res); // первая проверка

if($numrows!=0) // первая проверка
{
echo "You are login in. <a href='calc.php'>Click</a> here to join next page.";
}
else
{
echo "User or password incorect.1";
}

}

else
{
echo "Enter login and password.";
}
?>

Вопрос 2:
Как сделать автоматический переход на страницу member.php в этой строке?
echo "You are login in. <a href='calc.php'>Click</a> here to join next page.";

Не важно будет переход моментальным или через несколько секунд. Спасибо.



Спустя 36 минут, 21 секунда (29.12.2011 - 08:06) NitroGenerate написал(а):
1 Пароль лучше хранить в md5 виде.
2. При регистрации запретить одинаковые ники.

Тогда можно будет лимитировано выделять из бд строку, тобишь только одну
$res=mysql_query("SELECT * FROM ident WHERE log='".$login."' && pas='".md5($pass)."' limit 1");
if(mysql_num_rows($res))
{
echo "You are login in. <a href='calc.php'>Click</a> here to join next page.";
}
else
{
echo "User or password incorect.1";
}

Этого вполне достаточно.

Гыы... первый раз вижу что бы использовали цикл в проверке логина и пароля

Спустя 3 минуты, 15 секунд (29.12.2011 - 08:10) tech написал(а):
понял, а если в базе уже например есть пароль 123... И мы вводим в форме 123 и сравниватся будет как 32-значное шестнадцатеричное число, а это значит пароли не совпадут, отсюда вопрос как првильно загнать пароль в базу с md5 используя phpmyadmin. или я не правильно понимаю принцип работы md5))..

Спустя 40 минут, 12 секунд (29.12.2011 - 08:50) NitroGenerate написал(а):
Напишите php скрипт, который обновит все ваши старые записи и закодирует их в md5
Загнать в базу Используя phpmyadmin - никак.
Перед добавлением нового пользователя используйте php функцию md5() для закодирования пароля пользователя, потом закодированный пароль добавляйте уже в базу.

Спустя 25 минут, 16 секунд (29.12.2011 - 09:15) Guest написал(а):
md5 уже давно не обеспечивает нужную безопасность.

Спустя 7 часов, 50 минут, 27 секунд (29.12.2011 - 17:05) mid написал(а):
Цитата
md5 уже давно не обеспечивает нужную безопасность.

Потому что нужно не тупо:

$password = md5("12345");

А вот так хотябы:

$password = "12345";
$password = "сюда кусок каго-нибудь md5".md5($password)."сюда кусок каго-нибудь md5";

И будет вполне нормально..А как по вашему тогда шифровать пароль?!

Спустя 38 минут, 47 секунд (29.12.2011 - 17:44) inpost написал(а):
2)
Переадресация:
header("Location: url");
exit();

одно правило, до этого ни один текст не должен быть выведет, то есть никакого echo и т.д. ДО header();

Спустя 13 часов, 41 минута, 49 секунд (30.12.2011 - 07:26) tech написал(а):
Всем спасибо проблемы решены.

Спустя 53 минуты, 15 секунд (30.12.2011 - 08:19) alex12060 написал(а):
Guest

лолшто?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.