【问题标题】:PHP Undefined Index on PHP SelfPHP 自身的 PHP 未定义索引
【发布时间】:2012-07-06 06:29:56
【问题描述】:

我的页面上不断出现未定义的索引错误。我尝试了不同的东西,但似乎无法摆脱它。我有一个项目,我必须创建一个运行 Server 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 issetif empty,但似乎无法摆脱undefined index error

【问题讨论】:

标签: php forms undefined-index


【解决方案1】:

试试这个:

    <?php 
if (!isset($_POST['number'] || $_POST['number'] == "") {
 $number = '';
} else {
    $number = $_POST['number'];
 }
 ?>

【讨论】:

    【解决方案2】:

    相同答案的另一种变体,但更短:

    $number = empty($_POST['number']) ? '' : $_POST['number'] ;
    

    【讨论】:

      【解决方案3】:

      出现错误可能是因为$_POST中不存在索引number

      在使用之前检查$_POST['number'] 是否存在,或者在使用可能设置或未设置的索引之前检查$_POST 是否为空。

      if ( !empty($_POST) )
      {
          if( $_POST['number'] == "" )
          // ...
      }
      

      或者,如果您明确检查“数字”是否为空字符串:

      if( isset( $_POST['number'] ) && $_POST['number'] == "" )
      {
          // ...
      

      但是,对于您的方案,最好只执行以下操作:

      $number = isset($_POST['number']) ? $_POST['number'] : '';
      

      【讨论】:

        猜你喜欢
        • 2013-01-26
        • 1970-01-01
        • 2015-03-24
        • 2018-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-19
        • 1970-01-01
        相关资源
        最近更新 更多