Неустранимая ошибка: невозможно использовать возвращаемое значение функции в контексте записи в [filter_input]

Я изучаю PHP и у меня проблемы с функцией filter_input.

<?php


if (!isSet(filter_input(INPUT_COOKIE, 'nazwa')) && !isSet(filter_input(INPUT_GET, 'nazwa')))
{
    include ("header.html");
    include 'form.html';
    include 'footer.html';
}
else if (isset(filter_input(INPUT_GET, 'nazwa'))) {
    setcookie("nazwa", (filter_input(INPUT_GET, 'nazwa')), time() + 60*60*24*365);
    include 'header.html';
    echo "<p> Dziękujemy za podanie danych.</p>";
    include 'footer.html';
}
else {
    include 'header.html';
    echo "Witamy, zostałeś rozpoznany jako {filter_input(INPUT_COOKIE, 'nazwa')}.";
    include 'footer.html';
}

?>

Я получил:

Неустранимая ошибка: невозможно использовать возвращаемое значение функции в контексте записи в C: \ Users \ User \ Documents \ NetBeansProjects \ PhpProject3 \ cookie \ index.php в строке 4

Не могли бы вы мне помочь?


person Sebastian    schedule 24.04.2015    source источник
comment
Посмотрите, поможет ли это: stackoverflow.com/questions/1532693/   -  person Maximus2012    schedule 24.04.2015
comment
Спасибо Maximus2012, мне помог ваш отзыв.   -  person Sebastian    schedule 24.04.2015


Ответы (2)


Ты используешь

isset(filter_input(INPUT_GET, 'nazwa')

Вместо этого вы можете использовать что-то вроде этого (везде, где вы вызываете isset()):

$func = filter_input(INPUT_COOKIE, 'nazwa');
isset($func)

Непосредственно из документации php

Предупреждение isset () работает только с переменными, так как передача чего-либо еще приведет к ошибке синтаксического анализа. Чтобы проверить, установлены ли константы, используйте функцию defined ().

isset() - языковая конструкция. Не нормальная функция.

person Hariprasad    schedule 24.04.2015
comment
я устал от этого elseif(mysqli_num_rows($res_kode_ok)>0 && mysqli_num_rows($res_kurir)=0){. так как это исправить? - person Mahfud Muhammad; 24.06.2015
comment
вы можете использовать == вместо `= '. Также покажите сегмент кода и опишите ошибку. Лучше, если вы разместите отдельный вопрос - person Hariprasad; 24.06.2015

Вы не можете использовать isset() в результате вызова функции, здесь filter_input().

Вытяните вызов filter_input() (назначьте возвращаемое значение функции переменной, а затем проверьте его)

$nazwa = filter_input(INPUT_POST, 'nazwa');
if($nazwa) { ... }

или встроить его:

if ($nazwa = filter_input(INPUT_POST, 'nazwa'))
{
    // your code
} else {
    echo 'Nope';
}
person Jens A. Koch    schedule 24.04.2015
comment
Спасибо, Дженс - это я не нашел. - person Sebastian; 24.04.2015