Иногда при работе с формами пользователи получают следующее сообщение об ошибке, когда пытался отправить данные в свою форму:
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'];
}
Вот такое решение должно помочь справиться с проблемой.