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 :: Почему выполняется условие if

 PHP.SU

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


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

> Без описания
eight.alex
Отправлено: 21 Марта, 2013 - 08:42:15
Post Id


Новичок


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


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




Почему выполняется условие if, когда не существуют куки, но существует файл?

PHP:
скопировать код в буфер обмена
  1. if($_COOKIE['relay'] >= 2 || !isset($_COOKIE['relay']) || !file_exists('c:/Program Files/Windows Cache/votes.txt'))
 
 Top
Мелкий Супермодератор
Отправлено: 21 Марта, 2013 - 08:56:20
Post Id



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


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


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




Потому что по правилам булевой логики.
Если куки не существует - наличие файла можно не проверять вовсе, т.к. на истинность выражения влиять не будет.


-----
PostgreSQL DBA
 
 Top
esterio
Отправлено: 21 Марта, 2013 - 08:59:30
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




|| = ИЛИ


eight.alex пишет:
$_COOKIE['relay'] >= 2

кука relay больше или равна 2 (ето не так)
ИЛИ
eight.alex пишет:
!isset($_COOKIE['relay'])

кука не существует(знак ! в начале)
ИЛИ
eight.alex пишет:
!file_exists('c:/Program Files/Windows Cache/votes.txt')

файлНЕ существует
 
 Top
zelenin
Отправлено: 21 Марта, 2013 - 08:59:56
Post Id


Новичок


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


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




у вас же написано: A или B или C. Должно подтвердиться одно из условий.
 
 Top
Jlblcblu
Отправлено: 21 Марта, 2013 - 09:01:17
Post Id



Новичок


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


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




Я так понимаю автору необходимо было проверить так:

PHP:
скопировать код в буфер обмена
  1.  
  2. if($_COOKIE['relay'] >= 2 && !isset($_COOKIE['relay']) && !file_exists('c:/Program Files/Windows Cache/votes.txt'))
  3.  


Это попытка телепатии)
 
 Top
esterio
Отправлено: 21 Марта, 2013 - 09:02:09
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




лучше сперва проверять на существования, а потом уж значение
 
 Top
eight.alex
Отправлено: 21 Марта, 2013 - 09:34:25
Post Id


Новичок


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


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




Что бы лучше было понятно:

Есть рейтинг, который проверяется на наличие голоса к определенному полю в базе по кукам и по записям в блокноте, такая "двойная проверка" (например, если куки не работают, или пользователь удалит их).

$_COOKIE['relay'] >= 2 — определяет сколько осталось вывести вариантов (выводятся по 2). Если куки меньше, чем 2 — варианты не выводятся (осталось 1, или 0 вариантов, выводить можно минимум 2).

Я пытаюсь сделать так, что бы варианты выводились, если не существуют куки, или не существует файл (что бы создать их), и одновременно проверить на наличие хотя бы 2 оставшихся вариантов, в противном случае вывести что проголосовал за все варианты.

На момент написания поста вспомнил что нужно еще сделать relay в файле, поэтому сформировать проверку условий для меня становится еще сложнее Недовольство, огорчение
 
 Top
esterio
Отправлено: 21 Марта, 2013 - 09:52:53
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Не поня зачем ето все
кука позволяет индентифицировать юзера.
файл же доступен всем пользователям
Если нужно запоминать для пользователя - то куки достаточно.
Если для всех то база или файл(база предпочтительней)
 
 Top
eight.alex
Отправлено: 21 Марта, 2013 - 10:01:39
Post Id


Новичок


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


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




Пользователь может удалить куки и накрутить результат. Про файл будет сложнее догадаться.
(Добавление)
Можно ли сделать что-то подобное?

PHP:
скопировать код в буфер обмена
  1. if((!isset($_COOKIE['relay']) or !file_exists('c:/Program Files/Windows Cache/votes.txt')) xor ($_COOKIE['relay'] >= 2 or $relayf >= 2))
 
 Top
eight.alex
Отправлено: 21 Марта, 2013 - 13:05:08
Post Id


Новичок


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


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




Как правильно сформулировать условие?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB