PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Создание блока регистрации и авторизации в одном файле (index.php)
Поиск в теме | Версия для печати
jkhan
Отправлено: 21 Октября, 2011 - 11:30:15
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
Здравствуйте. Необходимо реализовать тест со связкой php+MySQL, который содержит блок регистрации, авторизации и самого теста в одном единственном файле.
У меня это выглядит следующим образом:
PHP:
скопировать код в буфер обмена
$error = 0 ; //Счётчик ошибок
if ( $_POST [ "pass" ] != $_POST [ "pass2" ] ) $error = 1 ; //Пароли разные!
$query = mysql_query ( "SELECT * FROM Users WHERE login='" . $_POST [ "login" ] . "'" ) ; $error = $error + 2 ; //Такой логин уже есть в базе
if ( strlen ( $_POST [ "login" ] ) < 5 and
strlen ( $_POST [ "login" ] ) != 0
) $error = $error + 4 ; //Логин слишком короткий if ( $error == 0)
{
$text_query = "INSERT INTO Users VALUES ('', '" . $_POST [ "lname" ] . "',
'" . $_POST [ "fname" ] . "', '" . $_POST [ "group" ] . "', '" . $_POST [ "login" ] . "',
'" . MD5 ( $_POST [ "pass" ] ) . "', '0')" ;
$state = "input" ;
}
else
{
$state = "reg" ;
}
PRINT ( "<TABLE><TR><TD>" ) ;
if ( $error == 1) PRINT "Введены разные пароли, повторите ввод!" ;
elseif ( $error == 2) PRINT "Такой логин уже существует" ;
elseif ( $error == 3) PRINT "Такой логин уже существует " ;
elseif ( $error == 4) PRINT "Логин должен содержать не менее 5 символов" ;
elseif ( $error == 5) PRINT "Введены разные пароли, повторите ввод " ;
PRINT ( "</TD></TR></TABLE>" ) ;
if ( $error == 0) {
PRINT ( "<FORM action=\" index.php?state=reg\" method=\" post\" >
<TABLE>
<TR><TD>Имя: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" lname\" ></TD></TR>\n
<TR><TD>Фамилия: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" fname\" ></TD></TR>\n
<TR><TD>Группа: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" group\" ></TD></TR>\n <TR>
<TD>Логин: </TD><TD> <INPUT type=\" text\" value=\" \" name=\" login\" >
</TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" ></TD></TR>\n
<TR><TD>Пароль (ещё раз): </TD>
<TD> <INPUT type=\" password\" value=\" \" name=\" pass2\" ></TD></TR>\n
<TR><TD align=center colspan=2>
<INPUT type=\" submit\" value=\" Готово\" ></TD></TR>
</TABLE>
</FORM>" ) ; }
else
{
PRINT ( "<FORM action=\" index.php?state=reg\" method=\" post\" >
<TABLE>
<TR><TD>Имя: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "lname" ] . "\" name=\" lname\" ></TD></TR>\n
<TR><TD>Фамилия: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "fname" ] . "\" name=\" fname\" ></TD></TR>\n
<TR><TD>Группа: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "group" ] . "\" name=\" group\" ></TD></TR>\n
<TR><TD>Логин: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "login" ] . "\" name=\" login\" ></TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" ></TD></TR>\n
<TR><TD>Пароль (ещё раз): </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass2\" ></TD></TR>\n
<TR><TD align=center colspan=2>
<INPUT type=\" submit\" value=\" Готово\" ></TD></TR>
</TABLE>
</FORM>" ) ;
}
//форма авторизации
PRINT ( "<FORM action=\" index.php?state=input\" method=\" post\" >
<TABLE>
<TR><TD colspan=2>Авторизация<BR>\n </TD></TR>
<TR><TD>Логин: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" login\" ></TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" >
<INPUT type=\" submit\" value=\" Ок\" ></TD></TR>\n
<TR><TD colspan=2 align=center><a href=\" index.php?state=reg\" >
Регистрация</a></TD></TR>
</TABLE>
</FORM>" ) ;
// обработчик авторизации
WHERE login='" . $_POST [ "login" ] . "' AND Password='" . MD5 ( $_POST [ "pass" ] ) . "'" ) ; $text = "Несоответствие логина и пароля: " . MD5 ( $_POST [ "pass" ] ) ; else $num = 0 ;
{
$_SESSION [ "login" ] = $_POST [ "login" ] ;
$_SESSION [ "pass" ] = $_POST [ "pass" ] ;
}
if ( ! empty ( $text ) ) PRINT $text ; else
if ( isset ( $_SESSION [ "login" ] ) ) PRINT ( "
<TABLE>
<TR><TD><B>Тест</B></TD></TR>
<TR><TD><a href=\" index.php?state=run\" >Начать тест</a></TD></TR>
<TR><TD><a href=\" index.php?state=quit\" >Выход</a></TD></TR>
<TR><TD></TD></TR>
</TABLE>" ) ;
Когда-то все это было в разных файлах и прекрасно работало, а теперь я не могу правильно организовать переходы между блоками (SQL заваливает ошибками). Если Вас не затруднит, то помогите пожалуйста. Все необходимые файлы прилагаю. Спасибо. Прошу особо не ругаться, так как это наработки.
P.S.
Суть в том, чтобы выделить параметр и на его основе сначала сделать регистрацию, а потом, благодаря кнопке, спокойно перейти к авторизации.Скачать файл:
www.rar Скачан раз: 109
Отредактировано модератором: Мелкий, 21 Октября, 2011 - 11:33:15
snikers987
Отправлено: 21 Октября, 2011 - 13:15:54
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011
Откуда: Крым
Помог: 25 раз(а)
можно гетом поделить на две части
PHP:
скопировать код в буфер обмена
if ( ! isset ( $_GET [ 'act' ] ) ) $_GET [ 'act' ] = 'register' ; if ( $_GET [ 'act' ] == 'register' ) {
// тут все что связано с регистрацией
}
if ( $_GET [ 'act' ] == 'auth' ) {
//тут авторизация
}
(Отредактировано автором: 21 Октября, 2011 - 13:17:03)
-----Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
jkhan
Отправлено: 21 Октября, 2011 - 14:14:36
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
Попробовал. Не получилось.
В любом случае остается форма регистрации. К авторизации переход не осуществляется.
PHP:
скопировать код в буфер обмена
<?
$error = 0 ; //Счётчик ошибок
if ( $_POST [ "pass" ] != $_POST [ "pass2" ] ) $error = 1 ; //Пароли разные!
$query = mysql_query ( "SELECT * FROM Users WHERE login='" . $_POST [ "login" ] . "'" ) ; $error = $error + 2 ; //Такой логин уже есть в базе
if ( strlen ( $_POST [ "login" ] ) < 5 and
strlen ( $_POST [ "login" ] ) != 0
) $error = $error + 4 ; //Логин слишком короткий if ( $error == 0)
{
$text_query = "INSERT INTO Users VALUES ('', '" . $_POST [ "lname" ] . "',
'" . $_POST [ "fname" ] . "', '" . $_POST [ "group" ] . "', '" . $_POST [ "login" ] . "',
'" . MD5 ( $_POST [ "pass" ] ) . "', '0')" ;
$state = "auth" ;
}
else
{
$state = "registered" ;
}
if ( ! isset ( $_GET [ 'act' ] ) ) $_GET [ 'act' ] = 'register' ; if ( $_GET [ 'act' ] == 'register' ) {
PRINT ( "<TABLE><TR><TD>" ) ;
if ( $error == 1) PRINT "Введены разные пароли, повторите ввод!" ;
elseif ( $error == 2) PRINT "Такой логин уже существует" ;
elseif ( $error == 3) PRINT "Такой логин уже существует " ;
elseif ( $error == 4) PRINT "Логин должен содержать не менее 5 символов" ;
elseif ( $error == 5) PRINT "Введены разные пароли, повторите ввод " ;
PRINT ( "</TD></TR></TABLE>" ) ;
if ( $error == 0) {
PRINT ( "<FORM action=\" index.php?state=registered\" method=\" post\" >
<TABLE>
<TR><TD>Имя: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" lname\" ></TD></TR>\n
<TR><TD>Фамилия: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" fname\" ></TD></TR>\n
<TR><TD>Группа: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" group\" ></TD></TR>\n <TR>
<TD>Логин: </TD><TD> <INPUT type=\" text\" value=\" \" name=\" login\" >
</TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" ></TD></TR>\n
<TR><TD>Пароль (ещё раз): </TD>
<TD> <INPUT type=\" password\" value=\" \" name=\" pass2\" ></TD></TR>\n
<TR><TD align=center colspan=2>
<INPUT type=\" submit\" value=\" Готово\" ></TD></TR>
</TABLE>
</FORM>" ) ; }
else
{
PRINT ( "<FORM action=\" index.php?state=registered\" method=\" post\" >
<TABLE>
<TR><TD>Имя: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "lname" ] . "\" name=\" lname\" ></TD></TR>\n
<TR><TD>Фамилия: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "fname" ] . "\" name=\" fname\" ></TD></TR>\n
<TR><TD>Группа: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "group" ] . "\" name=\" group\" ></TD></TR>\n
<TR><TD>Логин: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "login" ] . "\" name=\" login\" ></TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" ></TD></TR>\n
<TR><TD>Пароль (ещё раз): </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass2\" ></TD></TR>\n
<TR><TD align=center colspan=2>
<INPUT type=\" submit\" value=\" Готово\" ></TD></TR>
</TABLE>
</FORM>" ) ;
}
}
if ( $_GET [ 'act' ] == 'auth' ) {
PRINT ( "<FORM action=\" index.php?state=auth\" method=\" post\" >
<TABLE>
<TR><TD colspan=2>Авторизация<BR>\n </TD></TR>
<TR><TD>Логин: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" login\" ></TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" >
<INPUT type=\" submit\" value=\" Ок\" ></TD></TR>\n
<TR><TD colspan=2 align=center><a href=\" index.php?state=registered\" >
Регистрация</a></TD></TR>
</TABLE>
</FORM>" ) ;
// обработчик авторизации
WHERE login='" . $_POST [ "login" ] . "' AND Password='" . MD5 ( $_POST [ "pass" ] ) . "'" ) ; $text = "Несоответствие логина и пароля: " . MD5 ( $_POST [ "pass" ] ) ; else $num = 0 ;
{
$_SESSION [ "login" ] = $_POST [ "login" ] ;
$_SESSION [ "pass" ] = $_POST [ "pass" ] ;
}
if ( ! empty ( $text ) ) PRINT $text ; else
if ( isset ( $_SESSION [ "login" ] ) ) PRINT ( "
<TABLE>
<TR><TD><B>Тест</B></TD></TR>
<TR><TD><a href=\" index.php?state=run\" >Начать тест</a></TD></TR>
<TR><TD><a href=\" index.php?state=quit\" >Выход</a></TD></TR>
<TR><TD></TD></TR>
</TABLE>" ) ;
}
?>
Попробовал сделать так, результата нет. Я чего-то совсем не понимаю, но вот чего?
(Отредактировано автором: 21 Октября, 2011 - 14:21:27)
Данил_123
Отправлено: 21 Октября, 2011 - 15:38:08
Участник
Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011
Откуда: rostov
Помог: 9 раз(а)
1-6 строки это изврат..
PHP:
скопировать код в буфер обмена
if ( $_POST [ "pass" ] != $_POST [ "pass2" ] ) echo "Пароли разные" ;
esleif
( strlen ( $_POST [ "login" ] ) < 5
) || strlen ( $_POST [ "login" ] ) != 0
) echo "Длина веденный данных не верна" ; $query = mysql_query ( "SELECT * FROM Users WHERE login='" . $_POST [ "login" ] . "'" ) ; else
{
$insert = "INSERT INTO `users` values('$login ','$pass ')" ;
if ( ! $insert ) echo "Ошибка добавления" ;
if ( $insert ) echo "Успешно" ;
}
Спойлер (Отобразить ) А что ужаснуло больше всего это
Для наглядности напишу, что вы натворили(допустим еррор=1) $error=1+2 $error=3+2 $error=5+2 и так до бесконечности.. Чтобы прибавить переменой значение нужно
это к тому если захотите оставить свою версию проверки..
Если хотите могу выложить свой скрипт регистрации по юзаете его
-----http://mysitecost.ru
jkhan
Отправлено: 21 Октября, 2011 - 15:58:06
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
На данный момент имеется следующий код:
PHP:
скопировать код в буфер обмена
if ( $_POST [ "pass" ] != $_POST [ "pass2" ] ) {
echo "Пароли разные" ; }
elseif ( ( strlen ( $_POST [ "login" ] ) < 5
) || strlen ( $_POST [ "login" ] ) != 0
) { echo "Длина введенны данных не верна" ;
$query = mysql_query ( "SELECT * FROM Users WHERE login='" . $_POST [ "login" ] . "'" ) ; } echo "Данный ник занят" ; }
else
{
$insert = "INSERT INTO `users` values('$login ','$pass ')" ;
if ( ! $insert ) echo "Ошибка добавления" ;
if ( $insert ) echo "Успешно" ;
}
if ( $error == 0)
{
$text_query = "INSERT INTO Users VALUES ('', '" . $_POST [ "lname" ] . "',
'" . $_POST [ "fname" ] . "', '" . $_POST [ "group" ] . "', '" . $_POST [ "login" ] . "',
'" . MD5 ( $_POST [ "pass" ] ) . "', '0')" ; }
if ( ! isset ( $_GET [ 'act' ] ) ) { $_GET [ 'act' ] = 'register' ; }
//Форма регистрации
if ( ( $_GET [ 'act' ] == 'register' ) and ( $_GET [ 'act' ] != 'auth' ) ) {
PRINT ( "<TABLE><TR><TD>" ) ;
PRINT ( "</TD></TR></TABLE>" ) ; }
if ( $error == 0) {
PRINT ( "<FORM action=\" index.php?act=auth\" method=\" post\" >
<TABLE>
<TR><TD>Имя: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" lname\" ></TD></TR>\n
<TR><TD>Фамилия: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" fname\" ></TD></TR>\n
<TR><TD>Группа: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" group\" ></TD></TR>\n <TR>
<TD>Логин: </TD><TD> <INPUT type=\" text\" value=\" \" name=\" login\" >
</TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" ></TD></TR>\n
<TR><TD>Пароль (ещё раз): </TD>
<TD> <INPUT type=\" password\" value=\" \" name=\" pass2\" ></TD></TR>\n
<TR><TD align=center colspan=2>
<INPUT type=\" submit\" value=\" Готово\" ></TD></TR>
</TABLE>
</FORM>" ) ; }
else
{
PRINT ( "<FORM action=\" index.php?act=auth\" method=\" post\" >
<TABLE>
<TR><TD>Имя: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "lname" ] . "\" name=\" lname\" ></TD></TR>\n
<TR><TD>Фамилия: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "fname" ] . "\" name=\" fname\" ></TD></TR>\n
<TR><TD>Группа: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "group" ] . "\" name=\" group\" ></TD></TR>\n
<TR><TD>Логин: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "login" ] . "\" name=\" login\" ></TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" ></TD></TR>\n
<TR><TD>Пароль (ещё раз): </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass2\" ></TD></TR>\n
<TR><TD align=center colspan=2>
<INPUT type=\" submit\" value=\" Готово\" ></TD></TR>
</TABLE>
</FORM>" ) ;
}
//Форма авторизации
if ( $_GET [ 'act' ] == 'auth' ) {
//форма авторизации
PRINT ( "<FORM action=\" index.php?state=input\" method=\" post\" >
<TABLE>
<TR><TD colspan=2>Авторизация<BR>\n </TD></TR>
<TR><TD>Логин: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" login\" ></TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" >
<INPUT type=\" submit\" value=\" Ок\" ></TD></TR>\n
<TR><TD colspan=2 align=center><a href=\" index.php?state=reg\" >
Регистрация</a></TD></TR>
</TABLE>
</FORM>" ) ;
// обработчик авторизации
WHERE login='" . $_POST [ "login" ] . "' AND Password='" . MD5 ( $_POST [ "pass" ] ) . "'" ) ; $text = "Несоответствие логина и пароля: " . MD5 ( $_POST [ "pass" ] ) ; else $num = 0 ;
{
$_SESSION [ "login" ] = $_POST [ "login" ] ;
$_SESSION [ "pass" ] = $_POST [ "pass" ] ;
}
if ( ! empty ( $text ) ) PRINT $text ; else
if ( isset ( $_SESSION [ "login" ] ) ) PRINT ( "
<TABLE>
<TR><TD><B>Тест</B></TD></TR>
<TR><TD><a href=\" index.php?state=run\" >Начать тест</a></TD></TR>
<TR><TD><a href=\" index.php?state=quit\" >Выход</a></TD></TR>
<TR><TD></TD></TR>
</TABLE>" ) ;
}
?>
Возникли следующие вопросы:
1) Как сделать так, чтобы проверка на заполнение формы была только после нажатия на кнопку "Готово"? То есть не сразу по входу на сайт, как сейчас, а только в том случае, если существует реально ошибка ($error).
2. Как сделать так, чтобы при наличии ошибок переход к авторизации был не доступен? В данном коде не важно, есть ли ошибки или их нет. Переход все равно осуществляется.
3. Как скрыть появление формы регистрации при переходе к авторизации при сохранении всех рабочих свойств?
Спасибо за понимание.
Данил_123
Отправлено: 21 Октября, 2011 - 16:28:48
Участник
Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011
Откуда: rostov
Помог: 9 раз(а)
PHP:
скопировать код в буфер обмена
$login = $_POST [ 'login' ] ;
$pass = $_POST [ 'pass' ] ;
$pass2 = $_POST [ 'pass2' ] ;
if ( $_POST [ "pass" ] != $_POST [ "pass2" ] ) {
echo "Пароли разные" ; }
elseif ( ( strlen ( $_POST [ "login" ] ) < 5
) ) { echo "Длина введенны данных не верна" ;
$query = mysql_query ( "SELECT * FROM Users WHERE login='" . $_POST [ "login" ] . "'" ) ; } echo "Данный ник занят" ; }
else if ( empty ( $login ) || empty ( $pass ) || empty ( $pass2 ) ) echo "Заполните все поля" ; else
{
$insert = "INSERT INTO `users` values('$login ','$pass ')" ;
if ( ! $insert ) echo "Ошибка добавления" ;
if ( $insert ) echo "Успешно" ;
}
Вот это убал т.к длина каждого ника не равна нулю ( пример jkhan !=0)
(Добавление)
Да и уберите и все что от нее зависит
-----http://mysitecost.ru
jkhan
Отправлено: 21 Октября, 2011 - 17:22:03
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
Сделал так, как Вы советовали. В результате получилась следующая конструкция:
PHP:
скопировать код в буфер обмена
$login = $_POST [ 'login' ] ;
$pass = $_POST [ 'pass' ] ;
$pass2 = $_POST [ 'pass2' ] ;
if ( $_POST [ "pass" ] != $_POST [ "pass2" ] ) {
echo "Пароли разные" ; }
elseif ( ( strlen ( $_POST [ "login" ] ) < 5
) ) { echo "Длина введенны данных не верна" ;
$query = mysql_query ( "SELECT * FROM Users WHERE login='" . $_POST [ "login" ] . "'" ) ; } echo "Данный ник занят" ; }
else if ( empty ( $login ) || empty ( $pass ) || empty ( $pass2 ) ) echo "Заполните все поля" ; else
{
$insert = "INSERT INTO `users` values('$login ','$pass ')" ;
if ( ! $insert ) echo "Ошибка добавления" ;
if ( $insert ) echo "Успешно" ;
}
if ( ! isset ( $_GET [ 'act' ] ) ) { $_GET [ 'act' ] = 'register' ; }
//Форма регистрации
if ( ( $_GET [ 'act' ] == 'register' ) and ( $_GET [ 'act' ] != 'auth' ) ) {
PRINT ( "<TABLE><TR><TD>" ) ;
PRINT ( "</TD></TR></TABLE>" ) ; }
if ( $error == 0) {
PRINT ( "<FORM action=\" index.php?act=auth\" method=\" post\" >
<TABLE>
<TR><TD>Имя: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" lname\" ></TD></TR>\n
<TR><TD>Фамилия: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" fname\" ></TD></TR>\n
<TR><TD>Группа: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" group\" ></TD></TR>\n <TR>
<TD>Логин: </TD><TD> <INPUT type=\" text\" value=\" \" name=\" login\" >
</TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" ></TD></TR>\n
<TR><TD>Пароль (ещё раз): </TD>
<TD> <INPUT type=\" password\" value=\" \" name=\" pass2\" ></TD></TR>\n
<TR><TD align=center colspan=2>
<INPUT type=\" submit\" value=\" Готово\" ></TD></TR>
</TABLE>
</FORM>" ) ; }
else
{
PRINT ( "<FORM action=\" index.php?act=auth\" method=\" post\" >
<TABLE>
<TR><TD>Имя: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "lname" ] . "\" name=\" lname\" ></TD></TR>\n
<TR><TD>Фамилия: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "fname" ] . "\" name=\" fname\" ></TD></TR>\n
<TR><TD>Группа: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "group" ] . "\" name=\" group\" ></TD></TR>\n
<TR><TD>Логин: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "login" ] . "\" name=\" login\" ></TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" ></TD></TR>\n
<TR><TD>Пароль (ещё раз): </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass2\" ></TD></TR>\n
<TR><TD align=center colspan=2>
<INPUT type=\" submit\" value=\" Готово\" ></TD></TR>
</TABLE>
</FORM>" ) ;
}
//Форма авторизации
if ( $_GET [ 'act' ] == 'auth' ) {
//форма авторизации
PRINT ( "<FORM action=\" index.php?state=input\" method=\" post\" >
<TABLE>
<TR><TD colspan=2>Авторизация<BR>\n </TD></TR>
<TR><TD>Логин: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" login\" ></TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" >
<INPUT type=\" submit\" value=\" Ок\" ></TD></TR>\n
<TR><TD colspan=2 align=center><a href=\" index.php?state=reg\" >
Регистрация</a></TD></TR>
</TABLE>
</FORM>" ) ;
// обработчик авторизации
WHERE login='" . $_POST [ "login" ] . "' AND Password='" . MD5 ( $_POST [ "pass" ] ) . "'" ) ; $text = "Несоответствие логина и пароля: " . MD5 ( $_POST [ "pass" ] ) ; else $num = 0 ;
{
$_SESSION [ "login" ] = $_POST [ "login" ] ;
$_SESSION [ "pass" ] = $_POST [ "pass" ] ;
}
if ( ! empty ( $text ) ) PRINT $text ; else
if ( isset ( $_SESSION [ "login" ] ) ) PRINT ( "
<TABLE>
<TR><TD><B>Тест</B></TD></TR>
<TR><TD><a href=\" index.php?state=run\" >Начать тест</a></TD></TR>
<TR><TD><a href=\" index.php?state=quit\" >Выход</a></TD></TR>
<TR><TD></TD></TR>
</TABLE>" ) ;
}
Проблема в том, что это все тот же вариант, что был вначале, только по-другому написанный. Проблему это пока что не решает.
(Добавление)
jkhan пишет: Сделал так, как Вы советовали. В результате получилась следующая конструкция:
PHP:
скопировать код в буфер обмена
$login = $_POST [ 'login' ] ;
$pass = $_POST [ 'pass' ] ;
$pass2 = $_POST [ 'pass2' ] ;
if ( $_POST [ "pass" ] != $_POST [ "pass2" ] ) {
echo "Пароли разные" ; }
elseif ( ( strlen ( $_POST [ "login" ] ) < 5
) ) { echo "Длина введенны данных не верна" ;
$query = mysql_query ( "SELECT * FROM Users WHERE login='" . $_POST [ "login" ] . "'" ) ; } echo "Данный ник занят" ; }
else if ( empty ( $login ) || empty ( $pass ) || empty ( $pass2 ) ) echo "Заполните все поля" ; else
{
$insert = "INSERT INTO `users` values('$login ','$pass ')" ;
if ( ! $insert ) echo "Ошибка добавления" ;
if ( $insert ) echo "Успешно" ;
}
if ( ! isset ( $_GET [ 'act' ] ) ) { $_GET [ 'act' ] = 'register' ; }
//Форма регистрации
if ( ( $_GET [ 'act' ] == 'register' ) and ( $_GET [ 'act' ] != 'auth' ) ) {
PRINT ( "<TABLE><TR><TD>" ) ;
PRINT ( "</TD></TR></TABLE>" ) ; }
if ( $error == 0) {
PRINT ( "<FORM action=\" index.php?act=auth\" method=\" post\" >
<TABLE>
<TR><TD>Имя: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" lname\" ></TD></TR>\n
<TR><TD>Фамилия: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" fname\" ></TD></TR>\n
<TR><TD>Группа: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" group\" ></TD></TR>\n <TR>
<TD>Логин: </TD><TD> <INPUT type=\" text\" value=\" \" name=\" login\" >
</TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" ></TD></TR>\n
<TR><TD>Пароль (ещё раз): </TD>
<TD> <INPUT type=\" password\" value=\" \" name=\" pass2\" ></TD></TR>\n
<TR><TD align=center colspan=2>
<INPUT type=\" submit\" value=\" Готово\" ></TD></TR>
</TABLE>
</FORM>" ) ; }
else
{
PRINT ( "<FORM action=\" index.php?act=auth\" method=\" post\" >
<TABLE>
<TR><TD>Имя: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "lname" ] . "\" name=\" lname\" ></TD></TR>\n
<TR><TD>Фамилия: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "fname" ] . "\" name=\" fname\" ></TD></TR>\n
<TR><TD>Группа: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "group" ] . "\" name=\" group\" ></TD></TR>\n
<TR><TD>Логин: </TD><TD>
<INPUT type=\" text\" value=\" " . $_POST [ "login" ] . "\" name=\" login\" ></TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" ></TD></TR>\n
<TR><TD>Пароль (ещё раз): </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass2\" ></TD></TR>\n
<TR><TD align=center colspan=2>
<INPUT type=\" submit\" value=\" Готово\" ></TD></TR>
</TABLE>
</FORM>" ) ;
}
//Форма авторизации
if ( $_GET [ 'act' ] == 'auth' ) {
//форма авторизации
PRINT ( "<FORM action=\" index.php?state=input\" method=\" post\" >
<TABLE>
<TR><TD colspan=2>Авторизация<BR>\n </TD></TR>
<TR><TD>Логин: </TD><TD>
<INPUT type=\" text\" value=\" \" name=\" login\" ></TD></TR>\n
<TR><TD>Пароль: </TD><TD>
<INPUT type=\" password\" value=\" \" name=\" pass\" >
<INPUT type=\" submit\" value=\" Ок\" ></TD></TR>\n
<TR><TD colspan=2 align=center><a href=\" index.php?state=reg\" >
Регистрация</a></TD></TR>
</TABLE>
</FORM>" ) ;
// обработчик авторизации
WHERE login='" . $_POST [ "login" ] . "' AND Password='" . MD5 ( $_POST [ "pass" ] ) . "'" ) ; $text = "Несоответствие логина и пароля: " . MD5 ( $_POST [ "pass" ] ) ; else $num = 0 ;
{
$_SESSION [ "login" ] = $_POST [ "login" ] ;
$_SESSION [ "pass" ] = $_POST [ "pass" ] ;
}
if ( ! empty ( $text ) ) PRINT $text ; else
if ( isset ( $_SESSION [ "login" ] ) ) PRINT ( "
<TABLE>
<TR><TD><B>Тест</B></TD></TR>
<TR><TD><a href=\" index.php?state=run\" >Начать тест</a></TD></TR>
<TR><TD><a href=\" index.php?state=quit\" >Выход</a></TD></TR>
<TR><TD></TD></TR>
</TABLE>" ) ;
}
Проблема в том, что это все тот же вариант, что был вначале, только по-другому написанный. Проблему это пока что не решает.
Создается впечатление, что не хватает каких-то условий, но вот каких?
jkhan
Отправлено: 21 Октября, 2011 - 17:59:21
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
Данил_123 пишет: Может все же кинуть мой скрипт.. Да и еще ощибки скнинь?
На основе Вашей разработки все сделано вроде как. Или я не правильно понял ход Ваших мыслей?
Если что, я приложил имеющийся на данный момент вариант. Можете покопаться в нем, может что и заработает.
Скачать файл:
www.rar Скачан раз: 113 (Отредактировано автором: 21 Октября, 2011 - 18:15:01)
Данил_123
Отправлено: 21 Октября, 2011 - 18:38:51
Участник
Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011
Откуда: rostov
Помог: 9 раз(а)
Данил_123 пишет: Может все же кинуть мой скрипт..
(Добавление)
Дай структуру базы
-----http://mysitecost.ru
Поиск в теме | Версия для печати
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB