我有以下php代码
<?php
if(isset($_POST['address_building_number']) OR !isset($_POST['address_building_number'])){
$address_building_number = $_POST['address_building_number'];
echo 'Hello';
$good = 'Good bye';
}
echo $address_building_number;
echo $good;
?>
当我点击提交按钮时,会显示Hello和Good bye字样,但它告诉我 PHP注意:未定义索引:现在$_POST['address_building_number'
来自带有名称的HTML输入表单address_building_number。
如何修改if(isset($_POST['address_building_number']) OR !isset($_POST['address_building_number'])){
以便我可以'定义索引',同时仍然能够回显Hello和Good再见。
答案 0 :(得分:3)
<?php
if(isset($_POST['address_building_number']) || !empty($_POST['address_building_number'])){
$address_building_number = $_POST['address_building_number'];
echo 'Hello';
$good = 'Good bye';
}
echo $address_building_number;
echo $good;
// comment out exit; if you want the form to NOT appear after submit
// exit;
?>
<form action="" method="post">
Name: <input type="text" name="address_building_number"><br>
<input type="submit" value="Submit">
</form>
你的条件似乎在与自己作斗争。
请注意if(isset
if(!isset
和$_POST['address_building_number']
这里发生的是“如果 IS 设置,如果不设置”;是一个矛盾的陈述。
你可能想要使用的是:
if(isset($_POST['address_building_number']) OR !empty($_POST['address_building_number']))
(快速FYI)如果是这种情况,||
优先于OR
,请使用:
if(isset($_POST['address_building_number']) || !empty($_POST['address_building_number']))
...检查是否已设置,以及是否为空。
以下内容已经成功测试并回显了所有内容,没有错误消息:
<强> HTML 强>
<form action="action.php" method="post">
Name: <input type="text" name="address_building_number"><br>
<input type="submit" value="Submit">
</form>
PHP (action.php)例如
<?php
if(isset($_POST['address_building_number']) || !empty($_POST['address_building_number'])){
$address_building_number = $_POST['address_building_number'];
echo 'Hello';
$good = 'Good bye';
}
echo $address_building_number;
echo $good;
?>
关于“以便我可以'定义索引',同时仍然能够回应Hello和Good bye” - 我很难理解你的意思。< / p>
如果你的意思是“如果你仍然可以回应”Hello and Good bye“在那条件声明之外”,那么答案是肯定的;这正是我的答案所做的,因为它使用OR
(||
)运算符。如果是AND
(&&
)运算符,则无法实现。
答案 1 :(得分:0)
1st - 你的if语句错了它总是导致true。我不确定你在这里做什么?
第二 - PHP注意:显示未定义的索引,因为即使您已提交表单,if语句也始终为true。
第3 - 如果循环到
,可能会改变if(isset($_POST['submit'])) {
还要确保提交按钮有name="submit"