djar
Новичок
Делаю электронную библиотеку на PHP+MSSQL.
На главной странице будет форма входа - для читателей и для сотрудников библиотеки.
Делаю две формы:
И php-код в этом же файле перед html-формами:
Сначала проверяем, был ли нажат submit в форме, потом узнаём, кто входит - читатель или сотрудник, и выполняем различные действия для них.
Блоки для сотрудника и читателя полностью идентичны. Но почему-то для читателя - всё работает, а для сотрудника - когда ввожу верные данные - выводится "Пароль неверный".
Пробовал в формах поменять местами значения скрытых полей - и снова та же фигня - для читателей всё работает, для сотрудников - "Пароль неверный".
Если вставить
после заполнения $row, то выводит и логин и пароль для этого логина. То есть из БД берёт, но сверить почему-то не получается.
Где я накосячил?
На главной странице будет форма входа - для читателей и для сотрудников библиотеки.
Делаю две формы:
PHP:
<br>
Для читателя:<br>
<form action="" method="post">
<input name="login" type="text" value="<?php if ($_POST['who']=="member") {echo $login;} ?>">
<input name="password" type="password" value="">
<input name="who" type="hidden" value="member">
<input type="submit" value="Войти">
</form>
Для сотрудника:<br>
<form action="" method="post">
<input name="login" type="text" value="<?php if ($_POST['who']=="lib") {echo $login;} ?>">
<input name="password" type="password" value="">
<input name="who" type="hidden" value="lib">
<input type="submit" value="Войти">
</form>
PHP:
<?php
$login = $_POST['login'];
$password = $_POST['password'];
if ($_POST['who']) { //проверяем, была ли нажата кнопка Войти в форме
if ($login!='' and $password!='') { //проверяем, чтобы логин и пароль не были пустыми
include("sys/sql_connect.php"); //подключаемся к БД
if ($_POST['who']=="member") { //если входит читатель, то
$q = "SELECT member_fio,ticket FROM _members WHERE member_fio=\"".$login."\"";
$res = mssql_query($q);
$number = mssql_num_rows($res);
if ($number == 1) { //если есть запись с таким логином, то
$row = mssql_fetch_array($res);
if ($password==$row['ticket']) {//проверяем пароль
echo "Добро пожаловать, ".$row['member_fio'].". Вы - читатель. Номер вашего читательского билета - ".$row['ticket'].".";
}
else {echo "Пароль неверный";}
}
else {echo "Такого юзера не существует";}
}
else if ($_POST['who']=="lib") { //если входит сотрудник, то
$q = "SELECT login_lib,password_lib FROM _users WHERE login_lib=\"".$login."\"";
$res = mssql_query($q);
$number = mssql_num_rows($res);
if ($number == 1) {
$row = mssql_fetch_array($res);
if ($password==$row['password_lib']) {
echo "Вы - сотрудник. Ваш пароль - ".$row['password_lib']." ваш логин - ".$row['login_lib'];
}
else {echo "Пароль неверный";}
}
else {echo "Такого юзера не существует";}
}
}
else {echo "Вы ввели не все данные";}
}
?>
Блоки для сотрудника и читателя полностью идентичны. Но почему-то для читателя - всё работает, а для сотрудника - когда ввожу верные данные - выводится "Пароль неверный".
Пробовал в формах поменять местами значения скрытых полей - и снова та же фигня - для читателей всё работает, для сотрудников - "Пароль неверный".
Если вставить
PHP:
echo $row['login_lib'].$row['password_lib'];
Где я накосячил?