<?
$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. При регистрации запретить одинаковые ники.
Тогда можно будет лимитировано выделять из бд строку, тобишь только одну
Этого вполне достаточно.
Гыы... первый раз вижу что бы использовали цикл в проверке логина и пароля
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() для закодирования пароля пользователя, потом закодированный пароль добавляйте уже в базу.
Загнать в базу Используя 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)
Переадресация:
одно правило, до этого ни один текст не должен быть выведет, то есть никакого echo и т.д. ДО header();
Переадресация:
header("Location: url");
exit();
одно правило, до этого ни один текст не должен быть выведет, то есть никакого echo и т.д. ДО header();
Спустя 13 часов, 41 минута, 49 секунд (30.12.2011 - 07:26) tech написал(а):
Всем спасибо проблемы решены.
Спустя 53 минуты, 15 секунд (30.12.2011 - 08:19) alex12060 написал(а):
Guest
лолшто?
лолшто?