Иногда при работе с формами пользователи получают следующее сообщение об ошибке, когда пытался отправить данные в свою форму:

Notice: Undefined index: filename in D:\wamp\www\update.php on line 4

Поговорим о том, как можно исправить эту небольшую ошибку?

Допустим у нас есть файл update.php:

<?php
    $index = 1;
    $filename = $_POST['filename'];

    echo $filename;
?>

И $_POST['filename'] приходит с другой страницы:

<?php
    $db = substr($string[0],14) . "_" . substr($string[1],14) . "_db.txt";
?>

<input type="hidden" name="filename" value="<?php echo $db; ?>">

Предполагаем, что форма включает:

<form method="POST">

Мы можем применить решение ниже, в котором если _POST не установлен, то переменной имени файла не будет в приведенном выше примере.

if(isset($_POST['filename'])){
    $filename = $_POST['filename'];
}
if(isset($filename)){ 
    echo $filename;
}

Альтернативный способ:

$filename = false;
if(isset($_POST['filename'])){
    $filename = $_POST['filename'];
 } 
    echo $filename; //guarenteed to be set so isset not needed

В данном примере имя файла задается независимо от ситуации с _POST. Это должно хорошо продемонстрировать использование isset.

Более подробная информация по функции isset по этой ссылке.

Также пользователи поделились таким примером решения:

if(isset($_POST['form_field_name'])) {
    $variable_name = $_POST['form_field_name'];
}

Вот такое решение должно помочь справиться с проблемой.

Статьи #