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 :: Помогите с session

 PHP.SU

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


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

> Без описания
bgdankrlchuk
Отправлено: 01 Декабря, 2009 - 19:31:42
Post Id



Гость


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


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

[+][+][+][+][+]


Помогите с определением есть ли пользователь на сайте...Как это сделать так чтоб
Определялось постоянно...или через какието промежутки времени....Гдето уже есть но я не нашел..
 
 Top
DeepVarvar Супермодератор
Отправлено: 02 Декабря, 2009 - 01:32:08
Post Id



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


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


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




CODE (text):
скопировать код в буфер обмена
  1. стартуем сессию;
  2. смотрим предоставленые юзером куки;
  3. if (есть нужные куки) {сессия(имя,значение)}
  4. else {ставим куки + сессия(имя,значение)}


и как Valenok говорил: привязать значение текущей сессии к IP и поставить время жизни 3 мин. А в куки писать не IP, а какое-то контрольное значение.
(Добавление)
Проверять на валидность значения и юнсетить куки и сессии это сами разберетесь?
 
 Top
bgdankrlchuk
Отправлено: 04 Декабря, 2009 - 10:16:45
Post Id



Гость


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


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

[+][+][+][+][+]


ТАК?

CODE (text):
скопировать код в буфер обмена
  1. <?php
  2.  
  3. if (!ini_get('session.use_trans_sid')) {
  4.     ini_set('session.use_trans_sid', 1);
  5. }
  6. $log=$_GET[log];
  7. $pass=$_GET[pass];
  8. session_start();
  9. $_SESSION[login]=$log;
  10. $uid=session_id( );
  11. if(isset($_COOKIE[$uid])&&($uid==$_COOKIE[$uid]){
  12. if(!sesion_is_registered($log)){
  13. sesion_register(log,$log);
  14. sesion_register(pass,$pass);
  15. }
  16. }
  17. else{
  18. setcookie($uid,$log,time()+180);
  19. setcookie($uid,$pass,time()+180);
  20. sesion_register(log,$log);
  21. sesion_register(pass,$pass);
  22. }
  23.  
  24. session_destroy();
  25. ?>
  26. <form action="http://worldforum.in.ua/registration.php?" method=GET>
  27. <input type="text" name="log">
  28. <input type="text" name="pass">
  29. <input type="submit" name="SEND" value=""></form>


Я хочу сделать скрипт реэстрации и перехода по страницам+ чтобы было как в чате-тоесть должно на AJAXe передаватся новые сообщения через промежутки времени если они есть...

Fatal error: Call to undefined function sesion_register() in /home/worldfor/public_html/regis tration.php on line 20

(Отредактировано автором: 04 Декабря, 2009 - 11:16:02)

 
 Top
bgdankrlchuk
Отправлено: 05 Декабря, 2009 - 11:18:11
Post Id



Гость


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


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

[+][+][+][+][+]


CODE (text):
скопировать код в буфер обмена
  1. $log=$_GET[log];
  2. $pass=$_GET[pass];
  3. $s1=mysql_query("Select `login`,`pass`from `User` where `login`='$log' and `pass`='$pass'");
  4.  
  5. if(mysql_num_rows($s1)==1){
  6. unset($s);
  7. session_start();
  8. $_SESSION['log']=$log;
  9. $_SESSION['pass']=$pass;
  10. session_register("s");
  11. if(!isset($s['log'])){
  12. $s['log']=$log;
  13. }
  14. if(!isset($s['pass'])){
  15. $s['pass']=$pass;
  16. }
  17. session_destroy();
  18. }


Это более правильно????
 
 Top
biperch
Отправлено: 05 Декабря, 2009 - 13:15:31
Post Id



Частый посетитель


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


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




Дружище сразу делаю замечание

PHP:
скопировать код в буфер обмена
  1. $pass=$_GET[pass];
  2. $s1=mysql_query("Select `login`,`pass`from `User` where `login`="$log" and `pass`="$pass"");


пасы в базе хранить в открытом виде не безопасно, кодируй их хоть md5()
 
 Top
Мелкий Супермодератор
Отправлено: 05 Декабря, 2009 - 14:05:34
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




1) не забудьте про экранирование данных. В текущем виде получить права любого пользователя никакого труда не составляет.
2) лучше индексы ассоциативных массивов брать в кавычки
$log=$_GET['log'];
Меньше проблем будет на случай, если вдруг нарвётесь на зарезервированное php слово, да и работает на пару мс быстрее Улыбка


-----
PostgreSQL DBA
 
 Top
biperch
Отправлено: 05 Декабря, 2009 - 17:53:27
Post Id



Частый посетитель


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


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




точно в запросе в конце надо \" $pass\""
 
 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