if (($REMOTE_ADDR !== "127.0.0.1") OR ($REMOTE_ADDR !== "81.240.211.179") OR ($REMOTE_ADDR !== "180.142.31.91")){
date_default_timezone_set('Europe/Moscow');
$handle = fopen('log.txt', 'a');
fwrite($handle, $REMOTE_ADDR." | ".date("d.m.y - H:i:s")." [ ".$txt." ]\n");
fclose($handle);
}
Спустя 1 минута, 30 секунд (28.12.2010 - 10:18) kovaldm написал(а):
А у тебя сравнение какое выполняется?
Спустя 15 минут, 43 секунды (28.12.2010 - 10:34) papa_serg написал(а):
!==?
так же работает.
if ($REMOTE_ADDR !== "127.0.0.1")
так же работает.
Спустя 6 минут, 55 секунд (28.12.2010 - 10:41) kovaldm написал(а):
А чем отличается != от !== ?
Спустя 10 минут, 40 секунд (28.12.2010 - 10:52) papa_serg написал(а):
if (($REMOTE_ADDR != "127.0.0.1") OR ($REMOTE_ADDR != "81.240.211.179") OR ($REMOTE_ADDR != "180.142.31.91"))
Так-то тоже не работает.
Спустя 9 минут, 9 секунд (28.12.2010 - 11:01) linker написал(а):
Не OR а ||, но в твоем случае надо использовать AND, только писать надо &&
Спустя 1 минута, 10 секунд (28.12.2010 - 11:02) papa_serg написал(а):
linker, спасибо.
Правдо немного не понятно, почему "И", вместо "ИЛИ".
Правдо немного не понятно, почему "И", вместо "ИЛИ".
Спустя 5 минут, 27 секунд (28.12.2010 - 11:08) hellmin написал(а):
papa_serg, тут надо думать логически.
тут написано примерно так "если что-то одно выполняется"
if (($REMOTE_ADDR != "127.0.0.1") OR ($REMOTE_ADDR != "81.240.211.179") OR ($REMOTE_ADDR != "180.142.31.91"))
тут написано примерно так "если что-то одно выполняется"
Спустя 2 минуты, 44 секунды (28.12.2010 - 11:10) papa_serg написал(а):
hellmin, ну так да) если выполняется любое из усвовий. А с AND, если выполняются сразу все условия.
Спустя 18 минут, 2 секунды (28.12.2010 - 11:28) linker написал(а):
Вы не понимаете логики, ИЛИ подойдет в данном случае на проверку равенства: (А равно А) ИЛИ (А равно Т) ИЛИ (А равно З), в твоем случае логика будет следующая:
PHP берет первое неравенство $REMOTE_ADDR != "127.0.0.1"и оно выполняется, т.е. результат TRUE, а значит PHP больше ничего проверять не будет, т.к. далее идет OR и сразу перейдет к телу условия. Это логическая ошибка.
$REMOTE_ADDR = "81.240.211.179" // Допустим это такдалее условие
if (($REMOTE_ADDR != "127.0.0.1") OR ($REMOTE_ADDR != "81.240.211.179") OR ($REMOTE_ADDR != "180.142.31.91"))
PHP берет первое неравенство $REMOTE_ADDR != "127.0.0.1"и оно выполняется, т.е. результат TRUE, а значит PHP больше ничего проверять не будет, т.к. далее идет OR и сразу перейдет к телу условия. Это логическая ошибка.
Спустя 23 минуты, 26 секунд (28.12.2010 - 11:52) papa_serg написал(а):
linker, разобрался. Ещё раз спасибо.