PHP表单变量声明错误

时间:2015-02-12 20:19:37

标签: php forms

我只是在页面顶部试验一些php来处理一些表单数据。它似乎要我声明变量,即使它不存在,因为它将在提交表单时传递。

我收到以下错误 注意:未定义的索引:第3行的/home/grsim/public_html/age1.php中的mysubmit

   <?php
    $problem='';
       if($_POST['mysubmit']=="Submit Form"){
           if($_POST['age']==''){
               $problem="The form is blank";
       } else {
          // do something
          $myage = $_POST['age'];
          if($myage < 21){
              echo "you are a bit young for this";
          } else {
             echo "you are old enough";
          }
      }}

任何帮助都会受到赞赏,因为我在使用前不必声明变量。我正在使用一个名为mysubmit的按钮。

3 个答案:

答案 0 :(得分:0)

只需将if行更改为

即可
if(isset($_POST['mysubmit']) && $_POST['mysubmit']=="Submit Form"){

答案 1 :(得分:0)

当您放入$_POST的索引不存在时,某些服务器将设置为提供未定义索引错误的位置。 if(isset($_POST['index']) && $_POST['index']=='whatever') { ... }

也是如此
   <?php
    $problem='';
       if(isset($_POST['mysubmit']) && $_POST['mysubmit']=="Submit Form"){
           if(isset($_POST['age']) && $_POST['age']==''){
               $problem="The form is blank";
       } else {
          // do something
          if(isset($_POST['age']) && $_POST['age'] < 21) { 
                echo "you are a bit young for this";
          } else {
             echo "you are old enough";
          }
      }}

这可以在服务器的设置中进行配置。它可以设置为为空字符串而不是抛出此错误。

答案 2 :(得分:0)

首次运行时,您的变量mysubmit尚未设置。 所以你有这个消息。

尝试使用此代码来解决问题:

  $problem='';
  $my_submit = isset($_POST['mysubmit']) ? $_POST['mysubmit'] : false;
  $myage = isset($_POST['age']) ? $_POST['age'] : false; 

   if($my_submit == "Submit Form"){
       if(empty($myage){
           $problem="The form is blank";
   } else {
      // do something

      if($myage < 21){
          echo "you are a bit young for this";
      } else {
         echo "you are old enough";
      }
  }}