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 »   

> Описание: Мне нужно что бы можна было авторизоваться на сайте.
Master_YI
Отправлено: 01 Августа, 2012 - 16:42:57
Post Id



Частый гость


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


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




Я не могу придумать нормального способа авторизоваться на сайте. Огорчение В итоге у меня есть некий свой, но во-первых он не пашет из-за проблемы:
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. ?>

.
А то что выводит на скриншоте видно.
Ну и как же все это править?
Прикреплено изображение (Нажмите для увеличения)
ProblemPHP.png

(Отредактировано автором: 01 Августа, 2012 - 16:44:08)

 
 Top
caballero
Отправлено: 01 Августа, 2012 - 16:48:06
Post Id


Активный участник


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


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




Цитата:
он не пашет из-за проблемы:

это не проблема а несуществующая переменная $prov


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Hawkmoth
Отправлено: 01 Августа, 2012 - 16:49:13
Post Id


Посетитель


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


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




Обязательно прочитайте вот это:
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
 
 Top
Master_YI
Отправлено: 01 Августа, 2012 - 16:54:13
Post Id



Частый гость


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


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




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


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

(Добавление)
Осталась только оптимизация...
 
 Top
caballero
Отправлено: 01 Августа, 2012 - 16:56:41
Post Id


Активный участник


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


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




в место орать читать научись - я тебе еще в первом посте написал где ошибка


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
KingStar
Отправлено: 01 Августа, 2012 - 16:59:41
Post Id



Участник


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


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




$prolog = "SELECT login,pass FROM `users` WHERE login = '$_GET[loginin]'";
$prelog = mysql_query($prolog);


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Master_YI
Отправлено: 01 Августа, 2012 - 17:01:47
Post Id



Частый гость


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


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




Это я из великой благодарности, просто уже ничего не мог придумать, а оказывается такая смешная ошибка....
 
 Top
caballero
Отправлено: 01 Августа, 2012 - 17:02:26
Post Id


Активный участник


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


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




начни с обучения пользования английским словарем
написало же конкретно
supplied argument is not a valid MySQL result resource i
за сутки можно было бы и перевести


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Master_YI
Отправлено: 01 Августа, 2012 - 17:04:04
Post Id



Частый гость


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


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




caballero пишет:
начни с обучения пользования английским словарем
написало же конкретно
supplied argument is not a valid MySQL result resource i
за сутки можно было бы и перевести

Это только последние 5 минут оно так пишет, до того была строка что написана еще вначале.
 
 Top
Hawkmoth
Отправлено: 01 Августа, 2012 - 17:09:09
Post Id


Посетитель


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


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




caballero справедливо заметил, из текста ошибки явно следует ее происхождение. Учитесь читать такие вещи.
Зачем Вы результат запроса в цикл загнали?
Вы что, ожидаете, что у Вас в базе будет несколько пользователей с одинаковым логином?

(Отредактировано автором: 01 Августа, 2012 - 17:10:00)

 
 Top
Master_YI
Отправлено: 01 Августа, 2012 - 17:11:25
Post Id



Частый гость


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


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




Hawkmoth пишет:
caballero справедливо заметил, из текста ошибки явно следует ее происхождение. Учитесь читать такие вещи.
Зачем Вы результат запроса в цикл загнали?
Вы что, ожидаете, что у Вас в базе будет несколько пользователей с одинаковым логином?

А как иначе?
 
 Top
Hawkmoth
Отправлено: 01 Августа, 2012 - 17:15:48
Post Id


Посетитель


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


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




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



Частый гость


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


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




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

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


Посетитель


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


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




Master_YI пишет:
оно все-время теперь переходит на Else , говорит что неверно...

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



Частый гость


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


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




Hawkmoth пишет:
Master_YI пишет:
оно все-время теперь переходит на Else , говорит что неверно...

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

Спасибо еще раз.
 
 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