Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регистрация и авторизация одним файлом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Создание блока регистрации и авторизации в одном файле (index.php)
jkhan
Отправлено: 21 Октября, 2011 - 11:30:15
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Здравствуйте. Необходимо реализовать тест со связкой php+MySQL, который содержит блок регистрации, авторизации и самого теста в одном единственном файле.
У меня это выглядит следующим образом:

PHP:
скопировать код в буфер обмена
  1. $error=0; //Счётчик ошибок
  2. if ($_POST["pass"]!=$_POST["pass2"]) $error=1; //Пароли разные!
  3. $query = mysql_query("SELECT * FROM Users WHERE login='".$_POST["login"]."'");
  4. if (mysql_num_rows($query)>0)
  5. $error=$error+2; //Такой логин уже есть в базе
  6. if (strlen($_POST["login"])<5 and strlen($_POST["login"])!=0) $error=$error+4; //Логин слишком короткий
  7. if ($error==0)
  8. {
  9. $text_query="INSERT INTO Users VALUES ('', '".$_POST["lname"]."',
  10. '".$_POST["fname"]."', '".$_POST["group"]."', '".$_POST["login"]."',
  11. '".MD5($_POST["pass"])."', '0')";
  12. $query=mysql_query($text_query);}
  13. if (mysql_errno()!=0){
  14. $text=mysql_errno().":".mysql_error();
  15.  
  16. $state="input";
  17. }
  18. else
  19. {
  20. $state="reg";
  21. }
  22.  
  23. PRINT("<TABLE><TR><TD>");
  24. if ($error==1)        PRINT "Введены разные пароли, повторите ввод!";
  25. elseif ($error==2) PRINT "Такой логин уже существует";
  26. elseif ($error==3) PRINT "Такой логин уже существует ";
  27. elseif ($error==4) PRINT "Логин должен содержать не менее 5 символов";
  28. elseif ($error==5) PRINT "Введены разные пароли, повторите ввод ";
  29. PRINT("</TD></TR></TABLE>");
  30. if ($error==0)    {
  31. PRINT("<FORM action=\"index.php?state=reg\" method=\"post\">
  32. <TABLE>
  33. <TR><TD>Имя: </TD><TD>
  34. <INPUT type=\"text\" value=\"\" name=\"lname\"></TD></TR>\n
  35. <TR><TD>Фамилия: </TD><TD>
  36. <INPUT type=\"text\" value=\"\" name=\"fname\"></TD></TR>\n
  37. <TR><TD>Группа: </TD><TD>
  38. <INPUT type=\"text\" value=\"\" name=\"group\"></TD></TR>\n <TR>
  39. <TD>Логин: </TD><TD> <INPUT type=\"text\" value=\"\" name=\"login\">
  40. </TD></TR>\n
  41. <TR><TD>Пароль: </TD><TD>
  42. <INPUT type=\"password\" value=\"\" name=\"pass\"></TD></TR>\n
  43. <TR><TD>Пароль (ещё раз): </TD>
  44. <TD> <INPUT type=\"password\" value=\"\" name=\"pass2\"></TD></TR>\n
  45. <TR><TD align=center colspan=2>
  46. <INPUT type=\"submit\" value=\"Готово\"></TD></TR>
  47. </TABLE>
  48. </FORM>");}
  49. else
  50. {
  51. PRINT("<FORM action=\"index.php?state=reg\" method=\"post\">
  52. <TABLE>
  53. <TR><TD>Имя: </TD><TD>
  54. <INPUT type=\"text\" value=\"".$_POST["lname"]."\" name=\"lname\"></TD></TR>\n
  55. <TR><TD>Фамилия: </TD><TD>
  56. <INPUT type=\"text\" value=\"".$_POST["fname"]."\" name=\"fname\"></TD></TR>\n
  57. <TR><TD>Группа: </TD><TD>
  58. <INPUT type=\"text\" value=\"".$_POST["group"]."\" name=\"group\"></TD></TR>\n
  59. <TR><TD>Логин: </TD><TD>
  60. <INPUT type=\"text\" value=\"".$_POST["login"]."\" name=\"login\"></TD></TR>\n
  61. <TR><TD>Пароль: </TD><TD>
  62. <INPUT type=\"password\" value=\"\" name=\"pass\"></TD></TR>\n
  63. <TR><TD>Пароль (ещё раз): </TD><TD>
  64. <INPUT type=\"password\" value=\"\" name=\"pass2\"></TD></TR>\n
  65. <TR><TD align=center colspan=2>
  66. <INPUT type=\"submit\" value=\"Готово\"></TD></TR>
  67. </TABLE>
  68. </FORM>");
  69. }
  70. //форма авторизации
  71. PRINT("<FORM action=\"index.php?state=input\" method=\"post\">
  72. <TABLE>
  73. <TR><TD colspan=2>Авторизация<BR>\n</TD></TR>
  74. <TR><TD>Логин: </TD><TD>
  75. <INPUT type=\"text\" value=\"\" name=\"login\"></TD></TR>\n
  76. <TR><TD>Пароль: </TD><TD>
  77. <INPUT type=\"password\" value=\"\" name=\"pass\">
  78. <INPUT type=\"submit\" value=\"Ок\"></TD></TR>\n
  79. <TR><TD colspan=2 align=center><a href=\"index.php?state=reg\">
  80. Регистрация</a></TD></TR>
  81. </TABLE>
  82. </FORM>");
  83. // обработчик авторизации
  84. $query = mysql_query("SELECT Type FROM Users
  85. WHERE login='".$_POST["login"]."' AND Password='".MD5($_POST["pass"])."'");
  86. $row = mysql_fetch_assoc($query);
  87. if (mysql_num_rows($query)==0)
  88. $text="Несоответствие логина и пароля: ".MD5($_POST["pass"]);
  89. else $num=0;
  90. if (empty($text))
  91. {
  92. $_SESSION["login"] = $_POST["login"];
  93. $_SESSION["pass"] = $_POST["pass"];
  94. }
  95. if (!empty($text)) PRINT $text;
  96. else
  97. if (isset($_SESSION["login"]))
  98. PRINT("
  99. <TABLE>
  100. <TR><TD><B>Тест</B></TD></TR>
  101. <TR><TD><a href=\"index.php?state=run\">Начать тест</a></TD></TR>
  102. <TR><TD><a href=\"index.php?state=quit\">Выход</a></TD></TR>
  103. <TR><TD></TD></TR>
  104. </TABLE>");
  105.  


Когда-то все это было в разных файлах и прекрасно работало, а теперь я не могу правильно организовать переходы между блоками (SQL заваливает ошибками). Если Вас не затруднит, то помогите пожалуйста. Все необходимые файлы прилагаю. Спасибо. Прошу особо не ругаться, так как это наработки.
P.S.
Суть в том, чтобы выделить параметр и на его основе сначала сделать регистрацию, а потом, благодаря кнопке, спокойно перейти к авторизации.
Скачать файл: www.rar
Скачан раз: 107


Отредактировано модератором: Мелкий, 21 Октября, 2011 - 11:33:15
 
 Top
snikers987
Отправлено: 21 Октября, 2011 - 13:15:54
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




можно гетом поделить на две части

PHP:
скопировать код в буфер обмена
  1. if(!isset($_GET['act'])) $_GET['act'] = 'register';
  2. if($_GET['act'] == 'register'){
  3. // тут все что связано с регистрацией
  4. }
  5. if($_GET['act'] == 'auth'){
  6. //тут авторизация
  7.  }

(Отредактировано автором: 21 Октября, 2011 - 13:17:03)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
jkhan
Отправлено: 21 Октября, 2011 - 14:14:36
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Попробовал. Не получилось. Огорчение В любом случае остается форма регистрации. К авторизации переход не осуществляется.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $error=0; //Счётчик ошибок
  4. if ($_POST["pass"]!=$_POST["pass2"]) $error=1; //Пароли разные!
  5. $query = mysql_query("SELECT * FROM Users WHERE login='".$_POST["login"]."'");
  6. if (mysql_num_rows($query)>0)
  7. $error=$error+2; //Такой логин уже есть в базе
  8. if (strlen($_POST["login"])<5 and strlen($_POST["login"])!=0) $error=$error+4; //Логин слишком короткий
  9. if ($error==0)
  10. {
  11. $text_query="INSERT INTO Users VALUES ('', '".$_POST["lname"]."',
  12. '".$_POST["fname"]."', '".$_POST["group"]."', '".$_POST["login"]."',
  13. '".MD5($_POST["pass"])."', '0')";
  14. $query=mysql_query($text_query);}
  15. if (mysql_errno()!=0){
  16. $text=mysql_errno().":".mysql_error();
  17.  
  18. $state="auth";
  19. }
  20. else
  21. {
  22. $state="registered";
  23. }
  24.  
  25. if(!isset($_GET['act'])) $_GET['act'] = 'register';
  26. if($_GET['act'] == 'register'){
  27. PRINT("<TABLE><TR><TD>");
  28. if ($error==1)      PRINT "Введены разные пароли, повторите ввод!";
  29. elseif ($error==2) PRINT "Такой логин уже существует";
  30. elseif ($error==3) PRINT "Такой логин уже существует ";
  31. elseif ($error==4) PRINT "Логин должен содержать не менее 5 символов";
  32. elseif ($error==5) PRINT "Введены разные пароли, повторите ввод ";
  33. PRINT("</TD></TR></TABLE>");
  34. if ($error==0)  {
  35. PRINT("<FORM action=\"index.php?state=registered\" method=\"post\">
  36. <TABLE>
  37. <TR><TD>Имя: </TD><TD>
  38. <INPUT type=\"text\" value=\"\" name=\"lname\"></TD></TR>\n
  39. <TR><TD>Фамилия: </TD><TD>
  40. <INPUT type=\"text\" value=\"\" name=\"fname\"></TD></TR>\n
  41. <TR><TD>Группа: </TD><TD>
  42. <INPUT type=\"text\" value=\"\" name=\"group\"></TD></TR>\n <TR>
  43. <TD>Логин: </TD><TD> <INPUT type=\"text\" value=\"\" name=\"login\">
  44. </TD></TR>\n
  45. <TR><TD>Пароль: </TD><TD>
  46. <INPUT type=\"password\" value=\"\" name=\"pass\"></TD></TR>\n
  47. <TR><TD>Пароль (ещё раз): </TD>
  48. <TD> <INPUT type=\"password\" value=\"\" name=\"pass2\"></TD></TR>\n
  49. <TR><TD align=center colspan=2>
  50. <INPUT type=\"submit\" value=\"Готово\"></TD></TR>
  51. </TABLE>
  52. </FORM>");}
  53. else
  54. {
  55. PRINT("<FORM action=\"index.php?state=registered\" method=\"post\">
  56. <TABLE>
  57. <TR><TD>Имя: </TD><TD>
  58. <INPUT type=\"text\" value=\"".$_POST["lname"]."\" name=\"lname\"></TD></TR>\n
  59. <TR><TD>Фамилия: </TD><TD>
  60. <INPUT type=\"text\" value=\"".$_POST["fname"]."\" name=\"fname\"></TD></TR>\n
  61. <TR><TD>Группа: </TD><TD>
  62. <INPUT type=\"text\" value=\"".$_POST["group"]."\" name=\"group\"></TD></TR>\n
  63. <TR><TD>Логин: </TD><TD>
  64. <INPUT type=\"text\" value=\"".$_POST["login"]."\" name=\"login\"></TD></TR>\n
  65. <TR><TD>Пароль: </TD><TD>
  66. <INPUT type=\"password\" value=\"\" name=\"pass\"></TD></TR>\n
  67. <TR><TD>Пароль (ещё раз): </TD><TD>
  68. <INPUT type=\"password\" value=\"\" name=\"pass2\"></TD></TR>\n
  69. <TR><TD align=center colspan=2>
  70. <INPUT type=\"submit\" value=\"Готово\"></TD></TR>
  71. </TABLE>
  72. </FORM>");
  73. }
  74. }
  75. if($_GET['act'] == 'auth'){
  76. PRINT("<FORM action=\"index.php?state=auth\" method=\"post\">
  77. <TABLE>
  78. <TR><TD colspan=2>Авторизация<BR>\n</TD></TR>
  79. <TR><TD>Логин: </TD><TD>
  80. <INPUT type=\"text\" value=\"\" name=\"login\"></TD></TR>\n
  81. <TR><TD>Пароль: </TD><TD>
  82. <INPUT type=\"password\" value=\"\" name=\"pass\">
  83. <INPUT type=\"submit\" value=\"Ок\"></TD></TR>\n
  84. <TR><TD colspan=2 align=center><a href=\"index.php?state=registered\">
  85. Регистрация</a></TD></TR>
  86. </TABLE>
  87. </FORM>");
  88. // обработчик авторизации
  89. $query = mysql_query("SELECT Type FROM Users
  90. WHERE login='".$_POST["login"]."' AND Password='".MD5($_POST["pass"])."'");
  91. $row = mysql_fetch_assoc($query);
  92. if (mysql_num_rows($query)==0)
  93. $text="Несоответствие логина и пароля: ".MD5($_POST["pass"]);
  94. else $num=0;
  95. if (empty($text))
  96. {
  97. $_SESSION["login"] = $_POST["login"];
  98. $_SESSION["pass"] = $_POST["pass"];
  99. }
  100. if (!empty($text)) PRINT $text;
  101. else
  102. if (isset($_SESSION["login"]))
  103. PRINT("
  104. <TABLE>
  105. <TR><TD><B>Тест</B></TD></TR>
  106. <TR><TD><a href=\"index.php?state=run\">Начать тест</a></TD></TR>
  107. <TR><TD><a href=\"index.php?state=quit\">Выход</a></TD></TR>
  108. <TR><TD></TD></TR>
  109. </TABLE>");
  110. }
  111.  
  112. ?>
  113. Попробовал сделать так, результата нет. Я чего-то совсем не понимаю, но вот чего?
  114.  
  115.  
  116.  

(Отредактировано автором: 21 Октября, 2011 - 14:21:27)

 
 Top
snikers987
Отправлено: 21 Октября, 2011 - 15:12:39
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




ну так по умолчанию тут попадаеш на регистрацию, чтоб попасть на авторизацию перейди по ссылке site.ru/file.php?act=auth


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Данил_123
Отправлено: 21 Октября, 2011 - 15:38:08
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




1-6 строки это изврат..
PHP:
скопировать код в буфер обмена
  1. if($_POST["pass"]!=$_POST["pass2"]) echo "Пароли разные";
  2. esleif (strlen($_POST["login"])<5) || strlen($_POST["login"])!=0) echo "Длина веденный данных не верна";
  3. $query = mysql_query("SELECT * FROM Users WHERE login='".$_POST["login"]."'");
  4. esleif(mysql_num_rows($query)!=0) echo "Данный ник занят";
  5. else
  6. {
  7. $insert="INSERT INTO `users` values('$login','$pass')";
  8. if(!$insert) echo "Ошибка добавления";
  9. if($insert) echo "Успешно";
  10. }
  11.  


Спойлер (Отобразить) Для наглядности напишу, что вы натворили(допустим еррор=1) $error=1+2 $error=3+2 $error=5+2 и так до бесконечности.. Чтобы прибавить переменой значение нужно
это к тому если захотите оставить свою версию проверки..

Если хотите могу выложить свой скрипт регистрации по юзаете его


-----
http://mysitecost.ru
 
 Top
jkhan
Отправлено: 21 Октября, 2011 - 15:58:06
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




На данный момент имеется следующий код:
PHP:
скопировать код в буфер обмена
  1. if($_POST["pass"]!=$_POST["pass2"]){
  2. echo "Пароли разные";}
  3. elseif ((strlen($_POST["login"])<5) || strlen($_POST["login"])!=0){
  4. echo "Длина введенны данных не верна";
  5. $query = mysql_query("SELECT * FROM Users WHERE login='".$_POST["login"]."'");}
  6. elseif(mysql_num_rows($query)!=0) {
  7. echo "Данный ник занят";}
  8. else
  9. {
  10. $insert="INSERT INTO `users` values('$login','$pass')";
  11. if(!$insert) echo "Ошибка добавления";
  12. if($insert) echo "Успешно";
  13. }
  14. if ($error==0)
  15. {
  16. $text_query="INSERT INTO Users VALUES ('', '".$_POST["lname"]."',
  17. '".$_POST["fname"]."', '".$_POST["group"]."', '".$_POST["login"]."',
  18. '".MD5($_POST["pass"])."', '0')";
  19. $query=mysql_query($text_query);}
  20. if (mysql_errno()!=0){
  21. $text=mysql_errno().":".mysql_error();
  22. }
  23. if(!isset($_GET['act'])) {
  24. $_GET['act'] = 'register';}
  25. //Форма регистрации
  26. if(($_GET['act'] == 'register') and ($_GET['act'] != 'auth')) {
  27. PRINT("<TABLE><TR><TD>");
  28. PRINT("</TD></TR></TABLE>");}
  29. if ($error==0)  {
  30. PRINT("<FORM action=\"index.php?act=auth\" method=\"post\">
  31. <TABLE>
  32. <TR><TD>Имя: </TD><TD>
  33. <INPUT type=\"text\" value=\"\" name=\"lname\"></TD></TR>\n
  34. <TR><TD>Фамилия: </TD><TD>
  35. <INPUT type=\"text\" value=\"\" name=\"fname\"></TD></TR>\n
  36. <TR><TD>Группа: </TD><TD>
  37. <INPUT type=\"text\" value=\"\" name=\"group\"></TD></TR>\n <TR>
  38. <TD>Логин: </TD><TD> <INPUT type=\"text\" value=\"\" name=\"login\">
  39. </TD></TR>\n
  40. <TR><TD>Пароль: </TD><TD>
  41. <INPUT type=\"password\" value=\"\" name=\"pass\"></TD></TR>\n
  42. <TR><TD>Пароль (ещё раз): </TD>
  43. <TD> <INPUT type=\"password\" value=\"\" name=\"pass2\"></TD></TR>\n
  44. <TR><TD align=center colspan=2>
  45. <INPUT type=\"submit\" value=\"Готово\"></TD></TR>
  46. </TABLE>
  47. </FORM>");}
  48. else
  49. {
  50. PRINT("<FORM action=\"index.php?act=auth\" method=\"post\">
  51. <TABLE>
  52. <TR><TD>Имя: </TD><TD>
  53. <INPUT type=\"text\" value=\"".$_POST["lname"]."\" name=\"lname\"></TD></TR>\n
  54. <TR><TD>Фамилия: </TD><TD>
  55. <INPUT type=\"text\" value=\"".$_POST["fname"]."\" name=\"fname\"></TD></TR>\n
  56. <TR><TD>Группа: </TD><TD>
  57. <INPUT type=\"text\" value=\"".$_POST["group"]."\" name=\"group\"></TD></TR>\n
  58. <TR><TD>Логин: </TD><TD>
  59. <INPUT type=\"text\" value=\"".$_POST["login"]."\" name=\"login\"></TD></TR>\n
  60. <TR><TD>Пароль: </TD><TD>
  61. <INPUT type=\"password\" value=\"\" name=\"pass\"></TD></TR>\n
  62. <TR><TD>Пароль (ещё раз): </TD><TD>
  63. <INPUT type=\"password\" value=\"\" name=\"pass2\"></TD></TR>\n
  64. <TR><TD align=center colspan=2>
  65. <INPUT type=\"submit\" value=\"Готово\"></TD></TR>
  66. </TABLE>
  67. </FORM>");
  68. }
  69.  
  70. //Форма авторизации
  71. if($_GET['act'] == 'auth'){
  72. //форма авторизации
  73. PRINT("<FORM action=\"index.php?state=input\" method=\"post\">
  74. <TABLE>
  75. <TR><TD colspan=2>Авторизация<BR>\n</TD></TR>
  76. <TR><TD>Логин: </TD><TD>
  77. <INPUT type=\"text\" value=\"\" name=\"login\"></TD></TR>\n
  78. <TR><TD>Пароль: </TD><TD>
  79. <INPUT type=\"password\" value=\"\" name=\"pass\">
  80. <INPUT type=\"submit\" value=\"Ок\"></TD></TR>\n
  81. <TR><TD colspan=2 align=center><a href=\"index.php?state=reg\">
  82. Регистрация</a></TD></TR>
  83. </TABLE>
  84. </FORM>");
  85. // обработчик авторизации
  86. $query = mysql_query("SELECT Type FROM Users
  87. WHERE login='".$_POST["login"]."' AND Password='".MD5($_POST["pass"])."'");
  88. $row = mysql_fetch_assoc($query);
  89. if (mysql_num_rows($query)==0)
  90. $text="Несоответствие логина и пароля: ".MD5($_POST["pass"]);
  91. else $num=0;
  92. if (empty($text))
  93. {
  94. $_SESSION["login"] = $_POST["login"];
  95. $_SESSION["pass"] = $_POST["pass"];
  96. }
  97. if (!empty($text)) PRINT $text;
  98. else
  99. if (isset($_SESSION["login"]))
  100. PRINT("
  101. <TABLE>
  102. <TR><TD><B>Тест</B></TD></TR>
  103. <TR><TD><a href=\"index.php?state=run\">Начать тест</a></TD></TR>
  104. <TR><TD><a href=\"index.php?state=quit\">Выход</a></TD></TR>
  105. <TR><TD></TD></TR>
  106. </TABLE>");
  107.  
  108.  }
  109.  
  110.  
  111. ?>

Возникли следующие вопросы:
1) Как сделать так, чтобы проверка на заполнение формы была только после нажатия на кнопку "Готово"? То есть не сразу по входу на сайт, как сейчас, а только в том случае, если существует реально ошибка ($error).
2. Как сделать так, чтобы при наличии ошибок переход к авторизации был не доступен? В данном коде не важно, есть ли ошибки или их нет. Переход все равно осуществляется.
3. Как скрыть появление формы регистрации при переходе к авторизации при сохранении всех рабочих свойств?
Спасибо за понимание.
 
 Top
Данил_123
Отправлено: 21 Октября, 2011 - 16:28:48
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




PHP:
скопировать код в буфер обмена
  1. $login=$_POST['login'];
  2. $pass=$_POST['pass'];
  3. $pass2=$_POST['pass2'];
  4. if($_POST["pass"]!=$_POST["pass2"]){
  5. echo "Пароли разные";}
  6. elseif ((strlen($_POST["login"])<5)){
  7. echo "Длина введенны данных не верна";
  8. $query = mysql_query("SELECT * FROM Users WHERE login='".$_POST["login"]."'");}
  9. elseif(mysql_num_rows($query)!=0) {
  10. echo "Данный ник занят";}
  11. else if(empty($login) || empty($pass) || empty($pass2)) echo "Заполните все поля";
  12. else
  13. {
  14. $insert="INSERT INTO `users` values('$login','$pass')";
  15. if(!$insert) echo "Ошибка добавления";
  16. if($insert) echo "Успешно";
  17. }


Вот это убал т.к длина каждого ника не равна нулю ( пример jkhan !=0)
(Добавление)
Да и уберите и все что от нее зависит


-----
http://mysitecost.ru
 
 Top
jkhan
Отправлено: 21 Октября, 2011 - 17:22:03
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Сделал так, как Вы советовали. В результате получилась следующая конструкция:
PHP:
скопировать код в буфер обмена
  1. $login=$_POST['login'];
  2. $pass=$_POST['pass'];
  3. $pass2=$_POST['pass2'];
  4. if($_POST["pass"]!=$_POST["pass2"]){
  5. echo "Пароли разные";}
  6. elseif ((strlen($_POST["login"])<5)){
  7. echo "Длина введенны данных не верна";
  8. $query = mysql_query("SELECT * FROM Users WHERE login='".$_POST["login"]."'");}
  9. elseif(mysql_num_rows($query)!=0) {
  10. echo "Данный ник занят";}
  11. else if(empty($login) || empty($pass) || empty($pass2)) echo "Заполните все поля";
  12. else
  13. {
  14. $insert="INSERT INTO `users` values('$login','$pass')";
  15. if(!$insert) echo "Ошибка добавления";
  16. if($insert) echo "Успешно";
  17. }
  18. if(!isset($_GET['act'])) {
  19. $_GET['act'] = 'register';}
  20. //Форма регистрации
  21. if(($_GET['act'] == 'register') and ($_GET['act'] != 'auth')) {
  22. PRINT("<TABLE><TR><TD>");
  23. PRINT("</TD></TR></TABLE>");}
  24. if ($error==0)  {
  25. PRINT("<FORM action=\"index.php?act=auth\" method=\"post\">
  26. <TABLE>
  27. <TR><TD>Имя: </TD><TD>
  28. <INPUT type=\"text\" value=\"\" name=\"lname\"></TD></TR>\n
  29. <TR><TD>Фамилия: </TD><TD>
  30. <INPUT type=\"text\" value=\"\" name=\"fname\"></TD></TR>\n
  31. <TR><TD>Группа: </TD><TD>
  32. <INPUT type=\"text\" value=\"\" name=\"group\"></TD></TR>\n <TR>
  33. <TD>Логин: </TD><TD> <INPUT type=\"text\" value=\"\" name=\"login\">
  34. </TD></TR>\n
  35. <TR><TD>Пароль: </TD><TD>
  36. <INPUT type=\"password\" value=\"\" name=\"pass\"></TD></TR>\n
  37. <TR><TD>Пароль (ещё раз): </TD>
  38. <TD> <INPUT type=\"password\" value=\"\" name=\"pass2\"></TD></TR>\n
  39. <TR><TD align=center colspan=2>
  40. <INPUT type=\"submit\" value=\"Готово\"></TD></TR>
  41. </TABLE>
  42. </FORM>");}
  43. else
  44. {
  45. PRINT("<FORM action=\"index.php?act=auth\" method=\"post\">
  46. <TABLE>
  47. <TR><TD>Имя: </TD><TD>
  48. <INPUT type=\"text\" value=\"".$_POST["lname"]."\" name=\"lname\"></TD></TR>\n
  49. <TR><TD>Фамилия: </TD><TD>
  50. <INPUT type=\"text\" value=\"".$_POST["fname"]."\" name=\"fname\"></TD></TR>\n
  51. <TR><TD>Группа: </TD><TD>
  52. <INPUT type=\"text\" value=\"".$_POST["group"]."\" name=\"group\"></TD></TR>\n
  53. <TR><TD>Логин: </TD><TD>
  54. <INPUT type=\"text\" value=\"".$_POST["login"]."\" name=\"login\"></TD></TR>\n
  55. <TR><TD>Пароль: </TD><TD>
  56. <INPUT type=\"password\" value=\"\" name=\"pass\"></TD></TR>\n
  57. <TR><TD>Пароль (ещё раз): </TD><TD>
  58. <INPUT type=\"password\" value=\"\" name=\"pass2\"></TD></TR>\n
  59. <TR><TD align=center colspan=2>
  60. <INPUT type=\"submit\" value=\"Готово\"></TD></TR>
  61. </TABLE>
  62. </FORM>");
  63. }
  64.  
  65. //Форма авторизации
  66. if($_GET['act'] == 'auth'){
  67. //форма авторизации
  68. PRINT("<FORM action=\"index.php?state=input\" method=\"post\">
  69. <TABLE>
  70. <TR><TD colspan=2>Авторизация<BR>\n</TD></TR>
  71. <TR><TD>Логин: </TD><TD>
  72. <INPUT type=\"text\" value=\"\" name=\"login\"></TD></TR>\n
  73. <TR><TD>Пароль: </TD><TD>
  74. <INPUT type=\"password\" value=\"\" name=\"pass\">
  75. <INPUT type=\"submit\" value=\"Ок\"></TD></TR>\n
  76. <TR><TD colspan=2 align=center><a href=\"index.php?state=reg\">
  77. Регистрация</a></TD></TR>
  78. </TABLE>
  79. </FORM>");
  80. // обработчик авторизации
  81. $query = mysql_query("SELECT Type FROM Users
  82. WHERE login='".$_POST["login"]."' AND Password='".MD5($_POST["pass"])."'");
  83. $row = mysql_fetch_assoc($query);
  84. if (mysql_num_rows($query)==0)
  85. $text="Несоответствие логина и пароля: ".MD5($_POST["pass"]);
  86. else $num=0;
  87. if (empty($text))
  88. {
  89. $_SESSION["login"] = $_POST["login"];
  90. $_SESSION["pass"] = $_POST["pass"];
  91. }
  92. if (!empty($text)) PRINT $text;
  93. else
  94. if (isset($_SESSION["login"]))
  95. PRINT("
  96. <TABLE>
  97. <TR><TD><B>Тест</B></TD></TR>
  98. <TR><TD><a href=\"index.php?state=run\">Начать тест</a></TD></TR>
  99. <TR><TD><a href=\"index.php?state=quit\">Выход</a></TD></TR>
  100. <TR><TD></TD></TR>
  101. </TABLE>");
  102.  
  103.  }

Проблема в том, что это все тот же вариант, что был вначале, только по-другому написанный. Проблему это пока что не решает. Огорчение
(Добавление)
jkhan пишет:
Сделал так, как Вы советовали. В результате получилась следующая конструкция:
PHP:
скопировать код в буфер обмена
  1. $login=$_POST['login'];
  2. $pass=$_POST['pass'];
  3. $pass2=$_POST['pass2'];
  4. if($_POST["pass"]!=$_POST["pass2"]){
  5. echo "Пароли разные";}
  6. elseif ((strlen($_POST["login"])<5)){
  7. echo "Длина введенны данных не верна";
  8. $query = mysql_query("SELECT * FROM Users WHERE login='".$_POST["login"]."'");}
  9. elseif(mysql_num_rows($query)!=0) {
  10. echo "Данный ник занят";}
  11. else if(empty($login) || empty($pass) || empty($pass2)) echo "Заполните все поля";
  12. else
  13. {
  14. $insert="INSERT INTO `users` values('$login','$pass')";
  15. if(!$insert) echo "Ошибка добавления";
  16. if($insert) echo "Успешно";
  17. }
  18. if(!isset($_GET['act'])) {
  19. $_GET['act'] = 'register';}
  20. //Форма регистрации
  21. if(($_GET['act'] == 'register') and ($_GET['act'] != 'auth')) {
  22. PRINT("<TABLE><TR><TD>");
  23. PRINT("</TD></TR></TABLE>");}
  24. if ($error==0)  {
  25. PRINT("<FORM action=\"index.php?act=auth\" method=\"post\">
  26. <TABLE>
  27. <TR><TD>Имя: </TD><TD>
  28. <INPUT type=\"text\" value=\"\" name=\"lname\"></TD></TR>\n
  29. <TR><TD>Фамилия: </TD><TD>
  30. <INPUT type=\"text\" value=\"\" name=\"fname\"></TD></TR>\n
  31. <TR><TD>Группа: </TD><TD>
  32. <INPUT type=\"text\" value=\"\" name=\"group\"></TD></TR>\n <TR>
  33. <TD>Логин: </TD><TD> <INPUT type=\"text\" value=\"\" name=\"login\">
  34. </TD></TR>\n
  35. <TR><TD>Пароль: </TD><TD>
  36. <INPUT type=\"password\" value=\"\" name=\"pass\"></TD></TR>\n
  37. <TR><TD>Пароль (ещё раз): </TD>
  38. <TD> <INPUT type=\"password\" value=\"\" name=\"pass2\"></TD></TR>\n
  39. <TR><TD align=center colspan=2>
  40. <INPUT type=\"submit\" value=\"Готово\"></TD></TR>
  41. </TABLE>
  42. </FORM>");}
  43. else
  44. {
  45. PRINT("<FORM action=\"index.php?act=auth\" method=\"post\">
  46. <TABLE>
  47. <TR><TD>Имя: </TD><TD>
  48. <INPUT type=\"text\" value=\"".$_POST["lname"]."\" name=\"lname\"></TD></TR>\n
  49. <TR><TD>Фамилия: </TD><TD>
  50. <INPUT type=\"text\" value=\"".$_POST["fname"]."\" name=\"fname\"></TD></TR>\n
  51. <TR><TD>Группа: </TD><TD>
  52. <INPUT type=\"text\" value=\"".$_POST["group"]."\" name=\"group\"></TD></TR>\n
  53. <TR><TD>Логин: </TD><TD>
  54. <INPUT type=\"text\" value=\"".$_POST["login"]."\" name=\"login\"></TD></TR>\n
  55. <TR><TD>Пароль: </TD><TD>
  56. <INPUT type=\"password\" value=\"\" name=\"pass\"></TD></TR>\n
  57. <TR><TD>Пароль (ещё раз): </TD><TD>
  58. <INPUT type=\"password\" value=\"\" name=\"pass2\"></TD></TR>\n
  59. <TR><TD align=center colspan=2>
  60. <INPUT type=\"submit\" value=\"Готово\"></TD></TR>
  61. </TABLE>
  62. </FORM>");
  63. }
  64.  
  65. //Форма авторизации
  66. if($_GET['act'] == 'auth'){
  67. //форма авторизации
  68. PRINT("<FORM action=\"index.php?state=input\" method=\"post\">
  69. <TABLE>
  70. <TR><TD colspan=2>Авторизация<BR>\n</TD></TR>
  71. <TR><TD>Логин: </TD><TD>
  72. <INPUT type=\"text\" value=\"\" name=\"login\"></TD></TR>\n
  73. <TR><TD>Пароль: </TD><TD>
  74. <INPUT type=\"password\" value=\"\" name=\"pass\">
  75. <INPUT type=\"submit\" value=\"Ок\"></TD></TR>\n
  76. <TR><TD colspan=2 align=center><a href=\"index.php?state=reg\">
  77. Регистрация</a></TD></TR>
  78. </TABLE>
  79. </FORM>");
  80. // обработчик авторизации
  81. $query = mysql_query("SELECT Type FROM Users
  82. WHERE login='".$_POST["login"]."' AND Password='".MD5($_POST["pass"])."'");
  83. $row = mysql_fetch_assoc($query);
  84. if (mysql_num_rows($query)==0)
  85. $text="Несоответствие логина и пароля: ".MD5($_POST["pass"]);
  86. else $num=0;
  87. if (empty($text))
  88. {
  89. $_SESSION["login"] = $_POST["login"];
  90. $_SESSION["pass"] = $_POST["pass"];
  91. }
  92. if (!empty($text)) PRINT $text;
  93. else
  94. if (isset($_SESSION["login"]))
  95. PRINT("
  96. <TABLE>
  97. <TR><TD><B>Тест</B></TD></TR>
  98. <TR><TD><a href=\"index.php?state=run\">Начать тест</a></TD></TR>
  99. <TR><TD><a href=\"index.php?state=quit\">Выход</a></TD></TR>
  100. <TR><TD></TD></TR>
  101. </TABLE>");
  102.  
  103.  }

Проблема в том, что это все тот же вариант, что был вначале, только по-другому написанный. Проблему это пока что не решает. Огорчение
Создается впечатление, что не хватает каких-то условий, но вот каких?
 
 Top
Данил_123
Отправлено: 21 Октября, 2011 - 17:50:06
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




Может все же кинуть мой скрипт.. Да и еще ощибки скнинь?


-----
http://mysitecost.ru
 
 Top
jkhan
Отправлено: 21 Октября, 2011 - 17:59:21
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Данил_123 пишет:
Может все же кинуть мой скрипт.. Да и еще ощибки скнинь?

На основе Вашей разработки все сделано вроде как. Или я не правильно понял ход Ваших мыслей?
Если что, я приложил имеющийся на данный момент вариант. Можете покопаться в нем, может что и заработает. Радость
Скачать файл: www.rar
Скачан раз: 112

(Отредактировано автором: 21 Октября, 2011 - 18:15:01)

 
 Top
Данил_123
Отправлено: 21 Октября, 2011 - 18:29:26
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




я имею мой готовый скрипт регистрации, то есть тот который крутиться у меня на сайте


-----
http://mysitecost.ru
 
 Top
jkhan
Отправлено: 21 Октября, 2011 - 18:33:34
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Вполне реально. Можно попробовать.
 
 Top
Данил_123
Отправлено: 21 Октября, 2011 - 18:38:51
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




Данил_123 пишет:
Может все же кинуть мой скрипт..

(Добавление)
Дай структуру базы


-----
http://mysitecost.ru
 
 Top
jkhan
Отправлено: 21 Октября, 2011 - 18:43:55
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




В архиве, который я скинул, все же есть.
Прикреплено изображение (Нажмите для увеличения)
База.jpg

(Отредактировано автором: 21 Октября, 2011 - 19:19:21)

 
 Top
Данил_123
Отправлено: 21 Октября, 2011 - 18:50:32
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




Да щас проверяю, как проверю выложу


-----
http://mysitecost.ru
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB