Исправляем ошибку “Notice: Undefined index:” в форме PHP

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

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'];
}

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

Наверх ↑

Создаю веб-проекты, придумываю идеи, занимаюсь разработкой, оптимизирую и продвигаю сайты. Первые шаги в этом направлении были сделаны в 2008 году. Если у вас есть какие-то идеи или вы хотите что-то предложить, то пишите мне и моей команде.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>