提问人:Conner Burnett 提问时间:7/6/2012 最后编辑:Nikola K.Conner Burnett 更新时间:7/6/2012 访问量:2552
PHP Self 上的 PHP 未定义索引
PHP Undefined Index on PHP Self
问:
我的页面上不断收到未定义的索引错误。我尝试过不同的东西,但似乎无法摆脱它。我有一个项目,我必须创建一个简单的区域转换,运行服务器PHP Self。
<?php
if ($_POST['number'] == "") {
$number = '';
} else {
$number = $_POST['number'];
}
?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
<label>Please Select Area Conversion Method</label>
<select name="con">
<option selected="selected"></option>
<option>Square Feet to Square Meters</option>
<option>Square Yards to Square Meters</option>
<option>Square Miles to Square Kilometers</option>
<option>Square Meters to Square Feet</option>
<option>Square Meters to Square Yards</option>
<option>Square Kilometers to Square Miles</option>
</select><br />
<label>Input Number: </label>
<input type="text" name="number" size="10" /><br />
<input type="submit" value="Calculate" name="submit" />
</form>
我试过做 和 ,但似乎无法摆脱 .if isset
if empty
undefined index error
答:
0赞
jeffjenx
7/6/2012
#1
出现错误可能是因为索引中不存在。number
$_POST
在使用它之前检查它是否存在,或者在使用其中可能设置或可能未设置的索引之前检查它是否不为空。$_POST['number']
$_POST
if ( !empty($_POST) )
{
if( $_POST['number'] == "" )
// ...
}
或者,如果您要显式检查“number”是否为空白字符串:
if( isset( $_POST['number'] ) && $_POST['number'] == "" )
{
// ...
但是,对于你的方案,最好只执行如下操作:
$number = isset($_POST['number']) ? $_POST['number'] : '';
1赞
pamil
7/6/2012
#2
试试这个:
<?php
if (!isset($_POST['number'] || $_POST['number'] == "") {
$number = '';
} else {
$number = $_POST['number'];
}
?>
0赞
Sergey Eremin
7/6/2012
#3
同一答案的另一种变体,但更短:
$number = empty($_POST['number']) ? '' : $_POST['number'] ;
上一个:PHP 验证表单未返回正确的响应
评论
$number = isset( $_POST['number']) ? $_POST['number'] : '';