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 :: Почему куки устанавливаются 1 раз?

 PHP.SU

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


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

> Без описания
etoYA
Отправлено: 03 Августа, 2011 - 03:46:41
Post Id



Участник


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


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




В общем у меня скрипт, который если куков нет, то записывает логи в файл и устанавливает куки. И в нем я для проверки сделал ссылку на снятие этих куков, но когда я снимаю эти куки, то они потом не записываются и поэтому логи записываются при каждом обновлении страницы

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. // Запись логов посещения админки
  4. if (!isset($_COOKIE['admin'])){
  5. $f = fopen('admin/logs/adm_visits.txt', 'a+');
  6. fwrite($f, $_SESSION['uid'] . "\n");
  7. fwrite($f, $_SESSION['group'] . "\n");
  8. fwrite($f, date('d.m.Y H:i:s') . "\n");
  9. fwrite($f, $_SERVER['REMOTE_ADDR'] . "\n");
  10. fclose($f);
  11. setcookie('admin', time() + 3600 * 24 * 1);
  12. }
  13.  
  14. $delete_cookie = setcookie('admin', '', time() - 1);
  15.  
  16. // Обьявление переменных отвечающих за ошибки
  17. $error = false;
  18. $errort = '';
  19.  
  20. // Проверка на авторизацию пользователя
  21. if (!isset($_SESSION['uid'])) {
  22.         $error = true;
  23.         $errort = 'Вы не авторизованы, пожалуйста авторизуйтесь и попробуйте снова';
  24. }
  25.  
  26. // Проверка группы пользователя
  27. if ($_SESSION['group'] != 'admin') {
  28.         $error = true;
  29.         $errort = 'Прав вашей группы не хватает на просмотр этой страницы!</br>Вы состоите в группе: ' . $_SESSION['group'];
  30. }
  31. if ($error == true){
  32.         echo $errort;
  33. }
  34.         require_once('admin/adm_visits.php');
  35.         echo '<a href="'.$delete_cookie.'">Выйти</a>';
  36. ?>
  37.  
 
 Top
illy
Отправлено: 03 Августа, 2011 - 09:23:20
Post Id



Участник


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. // Запись логов посещения админки
  4. if (!isset($_COOKIE['admin'])){
  5. $f = fopen('admin/logs/adm_visits.txt', 'a+');
  6. fwrite($f, $_SESSION['uid'] . "\n");
  7. fwrite($f, $_SESSION['group'] . "\n");
  8. fwrite($f, date('d.m.Y H:i:s') . "\n");
  9. fwrite($f, $_SERVER['REMOTE_ADDR'] . "\n");
  10. fclose($f);
  11. setcookie('admin','1', time() + 3600 * 24 * 1, "/", $_SERVER['SERVER_NAME']);
  12. }
  13.  
  14. $delete_cookie = setcookie('admin', '', 0, "/", $_SERVER['SERVER_NAME']);
  15.  
  16. // Обьявление переменных отвечающих за ошибки
  17. $error = false;
  18. $errort = '';
  19.  
  20. // Проверка на авторизацию пользователя
  21. if (!isset($_SESSION['uid'])) {
  22.         $error = true;
  23.         $errort = 'Вы не авторизованы, пожалуйста авторизуйтесь и попробуйте снова';
  24. }
  25.  
  26. // Проверка группы пользователя
  27. if ($_SESSION['group'] != 'admin') {
  28.         $error = true;
  29.         $errort = 'Прав вашей группы не хватает на просмотр этой страницы!</br>Вы состоите в группе: ' . $_SESSION['group'];
  30. }
  31. if ($error == true){
  32.         echo $errort;
  33. }
  34.         require_once('admin/adm_visits.php');
  35.         echo '<a href="'.$delete_cookie.'">Выйти</a>';
  36. ?>
  37.  

(Отредактировано автором: 03 Августа, 2011 - 09:24:54)



-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
etoYA
Отправлено: 03 Августа, 2011 - 12:29:21
Post Id



Участник


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


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




А собственно почему? Чтобы потом не задавал вопрос?
(Добавление)
И как правильней сделать это
CODE (htmlphp):
скопировать код в буфер обмена
  1. $delete_cookie = setcookie('admin', '', 0, "/", $_SERVER['SERVER_NAME']);

CODE (htmlphp):
скопировать код в буфер обмена
  1. echo '<a href="'.$delete_cookie.'">Выйти</a>';
 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Августа, 2011 - 12:45:20
Post Id



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


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


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




etoYA пишет:
$delete_cookie
И когда ж это ф-ция setcookie научилась возвращать значение которое можно вывести в ссылку?
 
 Top
etoYA
Отправлено: 03 Августа, 2011 - 12:55:38
Post Id



Участник


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


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




PHP:
скопировать код в буфер обмена
  1. function delete_cookie() {
  2. setcookie('admin', '', 0, "/", $_SERVER['SERVER_NAME']);
  3. }


Переделал

PHP:
скопировать код в буфер обмена
  1. Warning: setcookie() expects parameter 3 to be long, string given in T:\home\localhost\cw\admin\admin.php on line 10
как эту проблему решить?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB