Здравствуйте, у меня есть проблема с идентификатором isset, как кто-то, чтобы помочь мне решить эту проблему. Это его проблема Обратите внимание: Неопределенная переменная: v в C: \ xampp \ htdocs \ что-то \thing2.php в строке 17 и мой код:
<form id="priklad" method="post">
<label>Obvod kruhu:</label>
<?php IF (isset($_POST['v'])) {
$_POST['v'];
}
?>
<label>r:</label><input type="text" name="r"/>
<input type="submit" value="Vypočti"/></br>
<label><?php echo 2*$v;?> cm</label>
</form>
РЕДАКТИРОВАТЬ:
<form id="priklad" method="post">
<label>Obvod kruhu:</label>
<?php If (is_numeric($_POST['v'])) {
$v = $_POST['v'];
}
?>
<label>v:</label><input type="text" name="v"/>
<input type="submit" value="Vypočti"/></br>
<label><?php echo 2*$v;?> cm</label>
</form>
и я получаю эти ошибки
Примечание: неопределенный индекс: v в C: \ xampp \ htdocs \ что-то \ нечто2.php в строке 11 и Примечание: неопределенный переменный: v в C: \ xampp \ htdocs \ что-то \thing2.php в строке 17
Что на самом деле происходит с этой ошибкой, так это то, что ваша переменная $v
не инициализируется, потому что код не введен if
состояние.
if(is_numeric($_POST['v'])){
$v = $_POST['v'];
}
Вы предполагаете, что условие is_numeric($_POST..)
является true
но это не может быть, что означает, что переменная $v
никогда не инициализируется. Поэтому вполне нормальная ошибка, которую вы имеете.
Вы можете продолжить с вашим условием, но вы должны проверить переменную после Это.
if(is_numeric($_POST['v'])){
$v = $_POST['v'];
}
echo 2 * (isset($v) ? $v : 1);
Приведенный выше код может быть улучшен. Лучшим кодом / логикой было бы установить значение переменной по умолчанию на случай, если is_numeric
возвращает ложь
$v = 1; // default value
if(is_numeric($_POST['v'])){
$v = $_POST['v'];
}
echo 2 * $v;
Что происходит, так это то, что ваша ценность v
не совпадает с подразумеваемым значением $_POST['v']
, Как заявил Тим, нет $v =
заявление, так что в действительности ваш вывод эха ничего не выводит, умноженный на 2.
Это выдает предупреждение, которое вы подобрали.
Таким образом, решение может быть:
<form id="priklad" method="post">
<label>Obvod kruhu:</label>
<?php If (is_numeric($_POST['v'])) {
$v = $_POST['v'];
}
?>
<label>r:</label><input type="text" name="r"/>
<input type="submit" value="Vypočti"/></br>
<label><?php echo 2*$v;?> cm</label>
</form>
я использовал is_numeric
так как вы используете echo для получения значения x 2, имеет смысл проверить, что V — это число, а не строка.
Хорошо, сначала остановимся, чтобы увидеть, что находится в строке 11? это $_POST['v']
? Если так, то вы можете вернуться к источнику причины — замените строку 11 (закомментируйте, не удаляйте ее) на что-то вроде:
print_r($_POST);
Это выведет все значения, связанные с массивом $ _POST.
Если вы не видите значение для ‘v’ (и я думаю, что вы, вероятно, не увидите), то это означает, что это значение не было установлено на предыдущей HTML-странице, поэтому вернитесь и проверьте, что ваша форма отправляет такие данные, как:
<input name='v' value="something">
Неопределенный индекс означает, что массив ($ _POST) не содержит никакой информации, хранящейся в $_POST['v']
,
Можете ли вы подтвердить, что ваш POST соответствует назначению, и что вы действительно хотите опубликовать, что означает, что вам нужно отправить форму, а не GET или другой метод, такой как index.php?v=10
?
Уведомление:
У PHP есть уведомления, но они только заметки, они не являются ошибками или даже предупреждениями, это просто PHP говорит вам, что происходит. Это не нарушит ваш код, но было бы неплохо добавить эту строку выше Ваше заявление ЕСЛИ:
$v = 0;
Это устанавливает переменную $ v и дает ей значение. Что, если $ _POST [‘v’] существует, затем обновляется, чтобы отразить это.
Ваш код должен быть таким.
<form id="priklad" method="post">
<label>Obvod kruhu:</label>
<?php
$v = '';
If (is_numeric($_POST['v'])) {
$v = $_POST['v'];
}
?>
<label>v:</label><input type="text" name="v"/>
<input type="submit" value="Vypočti"/></br>
<label><?php echo (($v)? 2*$v : 'Its not numeric value');?> cm</label>
</form>