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
Форумы портала PHP.SU :: Версия для печати :: Помогите мне с формой авторизации.
Форумы портала PHP.SU » » Вопросы новичков » Помогите мне с формой авторизации.

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

1. Master_YI - 01 Августа, 2012 - 16:42:57 - перейти к сообщению
Я не могу придумать нормального способа авторизоваться на сайте. Огорчение В итоге у меня есть некий свой, но во-первых он не пашет из-за проблемы:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\dd.net\www\prov1.php on line 7
Во-вторых даже если я это исправлю думаю оно будет очень не мобильно и не оптимизировано.
.
И так гляньте и помогите пожалуйста сделать нормальную и оптимизированную форму авторизации.
.
Вот весь код формы:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?PHP
  2. include('connect.php');
  3. include('prov1.php')
  4. ?>
  5. Введите логин/пароль!
  6. <form name='f2' action='loginform.php' method='get'>
  7. <input name="loginin" type='text' value='login'>
  8. <input name="passin" type="password" value='------'>
  9. <input name="butt" type='submit' value='sign up'>
  10. </form>

.
А вот это код проверки формы:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?PHP
  2.              $prolog = "SELECT login,pass FROM `users` WHERE login = '$_GET[loginin]'";
  3.                   $prelog = mysql_query($prov);
  4.                          
  5.  
  6.  
  7. while ($row = mysql_fetch_assoc($prelog)) {
  8.  
  9.         $_GET[loginin] = $row["login"];
  10.         $_GET[passwordin] = $row["pass"];                     // вот этот момент мне не нравится, 100% тут проблема но как все тут править?
  11. }                        
  12.  
  13. echo $_GET[loginin];
  14. echo $_GET[passwordin];
  15. IF ($loginin != $_GET[loginin]) {
  16. echo 'неверный логин'; }
  17. elseif ($passwordin != $_GET[passin]) {
  18. echo "неверный пароль";
  19. }
  20. Else {
  21. echo 'Здраствуйте'.$Loginin.'!';
  22. }
  23.  
  24. ?>

.
А то что выводит на скриншоте видно.
Ну и как же все это править?
2. caballero - 01 Августа, 2012 - 16:48:06 - перейти к сообщению
Цитата:
он не пашет из-за проблемы:

это не проблема а несуществующая переменная $prov
3. Hawkmoth - 01 Августа, 2012 - 16:49:13 - перейти к сообщению
Обязательно прочитайте вот это:
http://phpfaq[dot]ru/slashes
и вот это:
http://php.su/security/?databases

Ошибка возникает из-за
PHP:
скопировать код в буфер обмена
  1. $prolog = "SELECT login,pass FROM `users` WHERE login = '$_GET[loginin]'";
  2. $prelog = mysql_query($prov);

У Вас в запросе откуда-то взялся $prov вместо $prolog
4. Master_YI - 01 Августа, 2012 - 16:54:13 - перейти к сообщению
Hawkmoth пишет:
Обязательно прочитайте вот это:
http://phpfaq[dot]ru/slashes
и вот это:
http://php.su/security/?databases

Ошибка возникает из-за
PHP:
скопировать код в буфер обмена
  1. $prolog = "SELECT login,pass FROM `users` WHERE login = '$_GET[loginin]'";
  2. $prelog = mysql_query($prov);

У Вас в запросе откуда-то взялся $prov вместо $prolog


СЛУШАЙТЕ, ВЫ ГЕНИЙ!!
Я УЖЕ КАК СУТКИ НЕ МОГУ ЭТОЙ ПРОБЛЕМЫ НАЙТИ!!

(Добавление)
Осталась только оптимизация...
5. caballero - 01 Августа, 2012 - 16:56:41 - перейти к сообщению
в место орать читать научись - я тебе еще в первом посте написал где ошибка
6. KingStar - 01 Августа, 2012 - 16:59:41 - перейти к сообщению
$prolog = "SELECT login,pass FROM `users` WHERE login = '$_GET[loginin]'";
$prelog = mysql_query($prolog);
7. Master_YI - 01 Августа, 2012 - 17:01:47 - перейти к сообщению
Это я из великой благодарности, просто уже ничего не мог придумать, а оказывается такая смешная ошибка....
8. caballero - 01 Августа, 2012 - 17:02:26 - перейти к сообщению
начни с обучения пользования английским словарем
написало же конкретно
supplied argument is not a valid MySQL result resource i
за сутки можно было бы и перевести
9. Master_YI - 01 Августа, 2012 - 17:04:04 - перейти к сообщению
caballero пишет:
начни с обучения пользования английским словарем
написало же конкретно
supplied argument is not a valid MySQL result resource i
за сутки можно было бы и перевести

Это только последние 5 минут оно так пишет, до того была строка что написана еще вначале.
10. Hawkmoth - 01 Августа, 2012 - 17:09:09 - перейти к сообщению
caballero справедливо заметил, из текста ошибки явно следует ее происхождение. Учитесь читать такие вещи.
Зачем Вы результат запроса в цикл загнали?
Вы что, ожидаете, что у Вас в базе будет несколько пользователей с одинаковым логином?
11. Master_YI - 01 Августа, 2012 - 17:11:25 - перейти к сообщению
Hawkmoth пишет:
caballero справедливо заметил, из текста ошибки явно следует ее происхождение. Учитесь читать такие вещи.
Зачем Вы результат запроса в цикл загнали?
Вы что, ожидаете, что у Вас в базе будет несколько пользователей с одинаковым логином?

А как иначе?
12. Hawkmoth - 01 Августа, 2012 - 17:15:48 - перейти к сообщению
Гм.
Авторизация предполагает наличие в базе уникальной пары логин-пароль.
После запроса обычно делают проверку навроде такой
PHP:
скопировать код в буфер обмена
  1. if (mysql_num_rows($query)==1) {//если в базе есть один, и только один пользователь с подобным сочетанием логина и пароля
  2.   //действия по авторизации
  3. }
  4. else die('Неверная пара логин-пароль!');
13. Master_YI - 01 Августа, 2012 - 17:30:37 - перейти к сообщению
Hawkmoth пишет:
Гм.
Авторизация предполагает наличие в базе уникальной пары логин-пароль.
После запроса обычно делают проверку навроде такой
PHP:
скопировать код в буфер обмена
  1. if (mysql_num_rows($query)==1) {//если в базе есть один, и только один пользователь с подобным сочетанием логина и пароля
  2.   //действия по авторизации
  3. }
  4. else die('Неверная пара логин-пароль!');

А что это значит?
Я так понял что это говорит что если в базе найден только один пользователь с таким логином/паролем то оно продолжит действие, но по идее там и должен быть лишь один!
+ я подставил, оно все-время теперь переходит на Else , говорит что неверно...
14. Hawkmoth - 01 Августа, 2012 - 17:38:40 - перейти к сообщению
Master_YI пишет:
оно все-время теперь переходит на Else , говорит что неверно...

значит, неверно.
погуглите, тема избита донельзя.
Я даже сделал это за Вас:
http://htmlweb[dot]ru/php/example/avtorizacija2.php
http://pyha[dot]ru/articles/php/auth/
Этих примеров достаточно, чтобы понять принцип авторизации.
15. Master_YI - 01 Августа, 2012 - 17:41:10 - перейти к сообщению
Hawkmoth пишет:
Master_YI пишет:
оно все-время теперь переходит на Else , говорит что неверно...

значит, неверно.
погуглите, тема избита донельзя.
Я даже сделал это за Вас:
http://htmlweb[dot]ru/php/example/avtorizacija2.php
http://pyha[dot]ru/articles/php/auth/
Этих примеров достаточно, чтобы понять принцип авторизации.

Спасибо еще раз.

 

Powered by ExBB FM 1.0 RC1