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 :: Проблема с cookie

 PHP.SU

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


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

> Описание: Я не понимаю, почему они устанавливаются как гость.
Doox911
Отправлено: 22 Июля, 2012 - 15:08:12
Post Id



Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include ('../connect.php');
  3.  
  4. $login_v_n    = $_POST['v_i'];//Значение вводимого логина//
  5. $password_v_n = $_POST['v_p'];//Значение вводимого пороля//
  6.  
  7. $login_v = strip_tags($login_v_n );
  8. $login_v = HtmlSpecialChars($login_v);
  9.  
  10. $password_v = strip_tags($password_v_n);
  11. $password_v = HtmlSpecialChars($password_v);
  12.  
  13. if ((strlen($login_v) != null ) and (strlen($password_v) != null ))//если не пусты//
  14.  {                                                                          
  15.   $zapros = mysql_query("SELECT pass,key_reg FROM user WHERE id_name= '$login_v'",$link) or die("Could not query:" . mysql_error());///////проверяем логин///
  16.   $result = mysql_result($zapros,0,0);
  17.   echo ' Условие пустоты пройдено.<br>';
  18.   if ($result > 0)
  19.    {
  20.     $password = mysql_result($zapros,0,0);
  21.     $key_reg = mysql_result($zapros,0,1);
  22.     $password_v .= $key_reg;  
  23.     $password_v = md5($password_v);
  24.     echo 'Условие пустоты запроса успешно.<br />';
  25.     if ($password == $password_v)
  26.      {
  27.       setcookie('flag_vhoda',$login_v,time()+72000); // ПОЧЕМУ ТУТ НЕ СТАВЯТСЯ КУКИ?)
  28.      }
  29.     else
  30.      {
  31.       echo 'Пароли не совподают! <br>';
  32.      }
  33.    }
  34.   else
  35.   {
  36.    echo 'Результат SQL запроса: null <br>';
  37.   }
  38.  }
  39. else
  40.  {
  41.   echo 'Поля пусты! <br>';
  42.  }
  43. mysql_close($link);
  44. ?>
  45.  
  46.  
  47.  

За ранее спасибо всем кто поможет или проявит интерес.
 
 Top
Hawkmoth
Отправлено: 22 Июля, 2012 - 15:35:35
Post Id


Посетитель


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


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




Doox911 пишет:
PHP:
скопировать код в буфер обмена
  1. if ((strlen($login_v) != null ) and (strlen($password_v) != null ))//если не пусты//


оригинальный способ проверки на не-пустоту строки.


Doox911 пишет:
PHP:
скопировать код в буфер обмена
  1. $login_v = strip_tags($login_v_n );
  2.  
  3. $login_v = HtmlSpecialChars($login_v);


Вместо этого

Doox911 пишет:
PHP:
скопировать код в буфер обмена
  1. $password_v = strip_tags($password_v_n);
  2.  
  3. $password_v = HtmlSpecialChars($password_v);

Зачем? Вы все равно записываете в базу хеш.
Плюс, если у пользователя в целях безопасности пароль содержит символы <, > и т.д.,
вы изменяете пароль, даже не сообщая ему об этом.

(Отредактировано автором: 22 Июля, 2012 - 15:44:45)

 
 Top
Doox911
Отправлено: 22 Июля, 2012 - 15:48:57
Post Id



Частый гость


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


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




Hawkmoth пишет:

Doox911 пишет:
PHP:
скопировать код в буфер обмена
  1. $password_v = strip_tags($password_v_n);
  2.  
  3. $password_v = HtmlSpecialChars($password_v);

Зачем? Вы все равно записываете в базу хеш.
Плюс, если у пользователя в целях безопасности пароль содержит символы <, > и т.д.,
вы изменяете пароль, даже не сообщая ему об этом.


Ко всему выше сказанному. Я начинающий разработчик сайтов. Лаймер можно сказать. Поэтому спасибо за справедливые исправления.

Да Я записываю хеш. Не подумал как-то. А как сделать безопасность лучше?

Так про куки что?)

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include ('../connect.php');
  3.  
  4. $login_v_n    = $_POST['v_i'];//Значение вводимого логина//
  5. $password_v = $_POST['v_p'];//Значение вводимого пороля//
  6.  
  7. $login_v = strip_tags($login_v_n );
  8. $login_v = HtmlSpecialChars($login_v);
  9.  
  10. if (!empty($login_v) && !empty($password_v))//если не пусты//
  11.  {                                                                          
  12.   $zapros = mysql_query("SELECT pass,key_reg FROM user WHERE id_name= '$login_v'",$link) or die("Could not query:" . mysql_error());///////проверяем логин///
  13.   $result = mysql_result($zapros,0,0);
  14.   echo ' Условие пустоты пройдено.<br>';
  15.   if ($result > 0)
  16.    {
  17.     $password = mysql_result($zapros,0,0);
  18.     $key_reg = mysql_result($zapros,0,1);
  19.     $password_v .= $key_reg;  
  20.     $password_v = md5($password_v);
  21.     echo 'Условие пустоты запроса успешно.<br />';
  22.     if ($password == $password_v)
  23.      {
  24.       setcookie('flag_vhoda',$login_v,time()+72000);
  25.      }
  26.     else
  27.      {
  28.       echo 'Пароли не совподают! <br>';
  29.      }
  30.    }
  31.   else
  32.   {
  33.    echo 'Результат SQL запроса: null <br>';
  34.   }
  35.  }
  36. else
  37.  {
  38.   echo 'Поля пусты! <br>';
  39.  }
  40. mysql_close($link);
  41. ?>
  42.  
  43.  
  44.  

(Отредактировано автором: 22 Июля, 2012 - 15:52:11)

 
 Top
Hawkmoth
Отправлено: 22 Июля, 2012 - 15:51:47
Post Id


Посетитель


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


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




Doox911 пишет:
$password = mysql_result($zapros,0,0);

далеко не самая подходящая функция для того, что Вы здесь делаете.

Почитайте про mysql_fetch_...

Doox911 пишет:
PHP:
скопировать код в буфер обмена
  1. if ($password == $password_v)
  2.  
  3.      {
  4.  
  5.       setcookie('flag_vhoda',$login_v,time()+72000); // ПОЧЕМУ ТУТ НЕ СТАВЯТСЯ КУКИ?)
  6.  
  7.      }


Скорее всего, потому, что условие if ($password == $password_v) не выполняется (здесь написал ерунду, невнимательно посмотрел в код).

(Отредактировано автором: 22 Июля, 2012 - 15:59:49)

 
 Top
Doox911
Отправлено: 22 Июля, 2012 - 15:55:02
Post Id



Частый гость


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


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




Hawkmoth пишет:
Doox911 пишет:
$password = mysql_result($zapros,0,0);

далеко нре самая подходящая функция для того, что Вы здесь делаете.

Почитайте про mysql_fetch_...

Doox911 пишет:
if ($password == $password_v)

{

setcookie('flag_vhoda',$login_v,time()+72000); // ПОЧЕМУ ТУТ НЕ СТАВЯТСЯ КУКИ?)

}


Скорее всего, потому, что условие if ($password == $password_v) не выполняется.


Выполняются. А почему она не подходящая? Я проверял результат с помощью echo. Вывел оба пароля и сравнил их . Они были одинаковы.
 
 Top
Hawkmoth
Отправлено: 22 Июля, 2012 - 15:59:13
Post Id


Посетитель


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


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




Doox911 пишет:
Выполняются. А почему она не подходящая?


Нажмите на нее и почитайте описание. А в конце описания есть ссылки на другие функции, на которые Вам необходимо обратить внимание.

Вывод ошибок отключен?
"headers already sent by" ни о чем не говорит?
 
 Top
Doox911
Отправлено: 22 Июля, 2012 - 16:10:14
Post Id



Частый гость


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


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




Hawkmoth пишет:
Doox911 пишет:
Выполняются. А почему она не подходящая?


Вывод ошибок отключен?
"headers already sent by" ни о чем не говорит?


Как проверить вкл/выкл проверка ошибок?
Нет. Что это?) Я бы не против ссылки по этой теме.
 
 Top
Hawkmoth
Отправлено: 22 Июля, 2012 - 16:18:02
Post Id


Посетитель


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


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




Doox911 пишет:
Как проверить вкл/выкл проверка ошибок?



в начало всех скриптов.

http://phpfaq[dot]ru/debug
http://lmgtfy[dot]com/?q=setcookie+h[dot][dot][dot]+already+sent+by

Если вкратце, Вы пытаетесь пнуть заголовки с куками уже после того, как заголовки были отправлены.
Странно, что Вы занялись регистрацией и авторизацией, не имея представления об этом.

(Отредактировано автором: 22 Июля, 2012 - 16:18:31)

 
 Top
Doox911
Отправлено: 22 Июля, 2012 - 16:40:05
Post Id



Частый гость


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


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




Hawkmoth пишет:
Doox911 пишет:
Как проверить вкл/выкл проверка ошибок?



в начало всех скриптов.

http://phpfaq[dot]ru/debug
http://lmgtfy[dot]com/?q=setcookie+h[dot][dot][dot]+already+sent+by

Если вкратце, Вы пытаетесь пнуть заголовки с куками уже после того, как заголовки были отправлены.
Странно, что Вы занялись регистрацией и авторизацией, не имея представления об этом.

Спасибо.
p.s. no bad!)
 
 Top
LIME
Отправлено: 22 Июля, 2012 - 16:49:47
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB