Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,283
Записей в блоге: 3

Сообщение PHP Notice: Undefined index:

05.02.2026, 16:03. Показов 1567. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу победить. Есть страница на сервере с php-кодом. Ниже сделана вырезка из формы ввода данных через метод POST.

HTML5
1
2
3
4
5
<form action="" method="post" style="text-align: center; margin-top: 10px;">
    <input type="number" step="0.0001" name="a" value="<?php echo $_POST["a"] ?>" placeholder="Параметр a"> <br>
    ...
    <input type="submit" name="send" value="Вперед">
</form>
Параметр "a" это число типа float.
Далее в PHP-коде делается проверка на получение данных и выполняется код:

PHP
1
2
3
4
5
6
7
<?php
$a = $_POST["a"];
 
if ( !empty($_POST["a"])  ){
    //запускается код
    }
?>
Важно. Страница и код работоспособны. Все работает, данные читаются и передаются, результат работы выводится правильно. Я бы вообще не обнаружил вопроса, если бы не полез в лог сервера, где практически случайно обнаружил следующую запись:

Code
1
mysite.ru [Wed Feb 04 05:44:32 2026] [notice] [client 187.187.257.239] PHP Notice:  Undefined index: a in /home/mysite.ru/public_html/calc.php on line 34
34-я строка, указанная в логе, это первая строка input из приведенного выше HTML кода. Точно такое же сообщение выводится на приведенную строчку PHP кода $a = $_POST["a"]; (2-я строчка в вышеприведенном коде PHP).
Что означает это сообщение и что нужно сделать, что бы оно не писалось в логи? Может ли это быть связано с кавычками?


PS Опыт в PHP небольшой )
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.02.2026, 16:03
Ответы с готовыми решениями:

Как исправит Notice: Undefined index: sessy in и undefined variable
Доброго времени суток! Возможно это мелочь и с высоты опытного программиста это легкая задача, но...

Ошибка Notice: Undefined index: user in C:\Server\data\htdocs\index.ph p on line 40
Помогите решить

Notice: Undefined index: files in newnews.php on line 61
&lt;?php $modul_name='Написать/редактировать новость'; require_once &quot;../function.php&quot;; if (!user())...

26
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3970 / 2091 / 832
Регистрация: 13.03.2010
Сообщений: 6,892
10.02.2026, 15:19
Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
<?php
$a = '';
if(isset($_POST["a"])) $a = $_POST["a"];
?>
1
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,283
Записей в блоге: 3
10.02.2026, 15:52  [ТС]
Цитата Сообщение от liris Посмотреть сообщение
полный текст ошибки приложите, пожалуйста.
Code
1
PHP Notice:  Undefined variable: a in /путь_к_файлу/calc.php on line 45
45-я строка это и есть номер той строчки, где <input type="number".....

Первую часть листинга не стал копировать, там адрес сайта, время и мой IP.

Добавлено через 12 минут
gogolik, Спасибо. Закинул на сервер исправленную страницу. Потом отпишусь.

Добавлено через 1 минуту
Цитата Сообщение от liris Посмотреть сообщение
Для них можно сделать чуть иначе. Выше по коду написать такую конструкцию:
Попробую, спасибо.
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,283
Записей в блоге: 3
11.02.2026, 15:54  [ТС]
Цитата Сообщение от liris Посмотреть сообщение
Для них можно сделать чуть иначе. Выше по коду написать такую конструкцию:
liris, этот код работает, но состояние радиокнопок к сожалению не запоминается. Можно что-то подправить?



И тут еще один вопрос возникает. Кнопок 2 или 3 штуки. Я в своем примере не совсем правильно записал. На самом деле было так:

HTML5
1
2
<input type="radio" name="choice1" value="v1"  <?php if ($_POST["choice1"] == "v1"): ?>checked='checked'<?php endif; ?> /> выбор 1
<input type="radio" name="choice1" value="v2"  <?php if ($_POST["choice1"] == "v2"): ?>checked='checked'<?php endif; ?> /> выбор 2
т.е. это choice1 в обеих строках (один параметр), а вот варианты выбора этого параметра уже разные - v1, v2.

Как правильно записать первую приведенную Вами строчку PHP, для единого choice и разных вариантов v1, v2? Ее нужно записать столько же раз сколько вариантов "v" или один раз с перечислением "v"?



ps Ошибка с вводом основного значения вроде пропала, в сегодняшнем логе ее не нахожу, завтра скажу точнее.
0
Эксперт PHP
 Аватар для liris
5127 / 1086 / 160
Регистрация: 16.01.2023
Сообщений: 2,680
11.02.2026, 21:38
Цитата Сообщение от WH Посмотреть сообщение
но состояние радиокнопок к сожалению не запоминается
Что вы понимаете под "запоминается"? У вас обрабатывается только post-запрос. После того как вы обновите страницу (пришлете get-запрос) вы увидите, что ничего не сохранилось.

Если вы хотите, чтобы у вас результат сохранился - вам нужно куда-то его сохранить (в файл, в базу, куда-то еще).

Добавлено через 2 часа 50 минут
Цитата Сообщение от WH Посмотреть сообщение
Как правильно записать первую приведенную Вами строчку PHP, для единого choice и разных вариантов v1, v2? Ее нужно записать столько же раз сколько вариантов "v" или один раз с перечислением "v"?
Чтобы не писать кучу строчек руками, можно сделать себе вспомогательную функцию. Например такую:

PHP
1
2
3
4
5
6
7
function renderRadioButtons($name, $values, $checkedValue = null)
{
    foreach ($values as $value => $label) {
        $checkedText = $checkedValue !== null && $checkedValue == $value ? ' checked="checked"' : '';
        echo "<input type=\"radio\" name=\"{$name}\" value=\"{$value}\"{$checkedText} /> {$label}" . PHP_EOL;
    }
}
Эта функция будет выводить на экран нужное вам количество радиокнопок, достаточно лишь передать значения для них. Для вашего примера вызов будет следующим:

PHP
1
2
3
4
renderRadioButtons('choice1', [
        'v1' => 'выбор 1',
        'v2' => 'выбор 2'
], $_POST['choice1'] ?? null);
1
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,283
Записей в блоге: 3
12.02.2026, 15:46  [ТС]
liris, спасибо. Код с функцией работает, состояние радиокнопок запоминается (остается подсветка после нажатия submit). Загрузил тестовую страницу на сервер, теперь главное, что бы не было ошибок в логе. Перед формой, так же как и для основной переменной сделал
PHP
1
2
$choice = '';
if(isset($_POST["choice"])) $choice = $_POST["choice"];
Остались еще кое-какие вопросы. Но лучше позднее, последовательно, что бы не запутаться.
Сегодня еще раз проверил наличие на ошибку при вводе в форму основной переменной. Ее нет!!! Всем помогающим за это спасибо. Правда основные страницы еще не переделал, на все мало времени.
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,283
Записей в блоге: 3
17.02.2026, 15:18  [ТС]
Всем еще раз спасибо! Ошибки исчезли.

Еще пара вопросов. Функцию радиокнопок я подключил из файла:

PHP
1
include_once 'script/radioknopki.php';
Правильно ли, что кавычки одинарные, или нужны двойные?



И второй вопрос. Насколько я понял все данные из формы через массив POST передаются в строковом формате (команда is_string($a); дает такую информацию). Нужно ли в начале основного кода делать приведение формата в нужный формат float командой
PHP
1
$a = floatval($a);
Или это уже не требуется?
0
935 / 554 / 296
Регистрация: 07.11.2022
Сообщений: 908
17.02.2026, 15:56
Цитата Сообщение от WH Посмотреть сообщение
Правильно ли, что кавычки одинарные, или нужны двойные?
Любые кавычки годятся.
После include_once может идти любая строка. Или переменная, содержащая строку.
Просто строка в двойных кавычках может содержать переменные. Вроде такого "dir/$file_name".

Цитата Сообщение от WH Посмотреть сообщение
Насколько я понял все данные из формы через массив POST передаются в строковом формате (команда is_string($a); дает такую информацию). Нужно ли в начале основного кода делать приведение формата в нужный формат float
Не обязательно. PHP сам умеет преобразовывать формат переменной по контексту.
Например, если в переменной $a находится строка "1.57", то выражение echo $a*2; выведет 3.14
Но для верности можно преобразовывать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2026, 15:56
Помогаю со студенческими работами здесь

Notice: Undefined index: Submit in contact.php
Здрвствуйте! Помогите пожалуйста исправить ошибки, выскакивают при открытии страници с формой...

Перестала работать каптча. Пишет ошибку PHP Notice: Undefined index
После переезда сайта на новый хостинг, перестала работать каптча (kcaptcha). Все время пишет...

PHP Notice: Undefined index:
Существует связка MTA Server-&gt;MySQL-&gt;Apache2-&gt;Web морда Суть в том, чтобы заливать файлы на...

как избавиться от ошибки: Notice: Undefined index: id in ./headers.inc.php on line 4
На 4 строке: $id = strtolower(strip_tags(trim($_GET))); если пытаюсь объявить переменную $id: ...

Notice: Undefined index: buttonstyle in C:\wamp\www\steamauth\steamauth.php on line 19
Помогите пожалуйста решить данную ошибку Notice: Undefined index: buttonstyle in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru