[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка регистрации на сайте
Гость_Alex
Всем здраствуйте. Зарание спасибо кто прочел мою головную боль. Для начала придоставлю код

<?php
$log=$_POST['login'];
$password=$_POST['password'];
$link = @mysql_connect("localhost","somename", "")
or die("невозможно открыть библиотеку" .mysql_error());
mysql_select_db("reg", $link)or die ('Не могу выбрать БД');
$query = "SELECT * FROM msregister";
$result=mysql_query($query);



while($myrow = mysql_fetch_array($result))
{
echo $myrow['login']."<br>";
if (strcmp($myrow['login'],$log))
{

if (strcmp($myrow['password'],$password))
{
echo "Вы вошли на сайт, как ".$myrow['login'];
setcookie ('logi',$myrow['login']);
echo $myrow['login'];
breake;
}
else
{
echo 'no pasword'."<br>";
}


}
//if (empty

echo "Вы вошли на сайт, как гость <br>";

//else
}//while($myrow
?>

Этот код должен проверять существование записи в базе данных. Короче ригистрация из формы. Все идет по плану до проверки переменных из бд и тех что ввел из формы. он их проверяет и даже проходит вторую проверку на код но выдает результат который стоит следующим в бд. Тоесть в бд записано login: admin pasword:8888 потом значит идет login: natasha pasword: kisla. Я в форме заношу логин и пасворд админа он выдает что я зашол под именем наташи. Я вобщето начинающий в php до этого работал на С++ думаю что это чото с циклом while. Помогите пожалуста разобратся. Зарание спасибо



Спустя 5 часов, 56 минут, 7 секунд (1.05.2012 - 17:14) Игорь_Vasinsky написал(а):
1. в БД храни хеш пароля
2. Достаточно посмотреть - вернёт ли запрос больше 0 (mysql_num_rows($query)) при условии совпадения логина и хеша пароля

логин в БД проверяй с mysql_real_escape_string()

пароль - не нужно - всё равно тока хеши сравниваешь.


Цитата
breake;

break;


но этого тут не надо.

Спустя 3 часа, 9 минут, 37 секунд (1.05.2012 - 20:24) Гость_Alex написал(а):
if (strcmp($myrow['password'],$password)==0) 

если ты так имел ввиду то ЗАРАБОТАЛО. А мож есть какой другой способ, подсобите пожалуста, бо мне так не нравится, слишком много на сервере операцый цыкл проводит. может есть функция которая автоматом значение из ячейки выводит

Спустя 1 час, 26 минут, 7 секунд (1.05.2012 - 21:50) sergeiss написал(а):
Гость_Alex - я вот что не понял... А ты слышал про WHERE, т.е. про условия, которые пишутся в SQL-запросах для того, чтобы сразу выбрать только нужные данные? Если нет, то сначала прочитай про запросы.
В ПХП надо передавать только необходимый минимум данных, всё остальное должно обрабатываться на SQL-сервере.

Спустя 5 минут, 31 секунда (1.05.2012 - 21:56) Игорь_Vasinsky написал(а):
не нужно делать выборку всех строк) я же написал "mysql_num_row()" - ты хоть в гугле глянь примеры.
Быстрый ответ:

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