未定义的索引:formSubmit

时间:2015-11-06 13:06:42

标签: javascript php html

我正在构建一个用于将数据输入数据库的表单。我有基本的表单和验证(我认为)。当我尝试在我的服务器/域上测试它时,我一直得到错误未定义索引:表单提交。我确定这是一件轻微的事,但我无法找到错误。非常感谢额外的一双眼睛。

github.com/phonegap-build/PushPlugin

3 个答案:

答案 0 :(得分:2)

你应该改变:

  if($_POST['formSubmit'] == "Submit") 

致:

  if(isset($_POST['formSubmit']) && $_POST['formSubmit'] == "Submit") 

当您使用表单时,您应该始终至少验证一次是否已设置您的字段。

例如:

我们有这种快速形式:

<form action="action_page.php" method="POST">
  First name:<br>
  <input type="text" name="firstname" value="">
  <br>
  Last name:<br>
  <input type="text" name="lastname" value="">
  <br><br>
  <input type="submit" value="Submit">
</form>

首先请注意,我已经提出了两个属性:

  • 操作:表单将发送到哪里
  • 方法:表格的发送方式

有两个输入&#34; firstname&#34;,&#34; lastname&#34;和一个按钮提交。

让我们在&#34; action_page.php&#34;你想要显示:&#34;你好,名字姓氏&#34;。

您可以执行以下操作:

<?php 
   echo 'Hello, '.$_POST['firstname'].' '.$_POST['lastname'];
?>

这将打印出你想要的东西。 但是如果那些字段是空的,那将创建&#34; 未定义的索引&#34; ...

因此,为了确保您不会使用不存在的变量,您应该执行以下操作:

<?php 

  //First we create an array that will errors if they occurs
  $error = array();

  //Then we test if firstname exist
  if(isset($_POST['firstname'])) {
     //if it does we can assign him.
     $firstname = $_POST['firstname'];
  }else{
     //if it doesn't that's an error.
     $error[] = 'Please enter your firstname';
  }

  //Then we test if lastname exist
  if (isset($_POST['lastname'])) {
     //if it does we can assign him.
     $lastname = $_POST['lastname'];
  }else{
     //if it doesn't that's an error.
     $error[] = 'Please enter your lastname';
  }

  //In the end we check if we have any error stocked:
  if(empty($error)) {
     //if it's empty we have all our required data to display our echo
   echo 'Hello, '.$firstname.' '.$lastname;
  }else{
     //else let's show the error
     print_r($error);
  }
?>

这样我们就可以处理任何可能的&#34; Undefined Index&#34;在它们发生之前,我们确信我们的数据会返回一些内容或至少与错误相关。

答案 1 :(得分:1)

检查是否有POST动作: -

if (!empty($_POST))

if ($_SERVER['REQUEST_METHOD'] == 'POST')

答案 2 :(得分:0)

更新了您的代码,请查看

&#13;
&#13;
<!DOCTYPE HTML>
<html lang = "en">
    <head>
        <link rel="stylesheet" type="text/css" href="mystylesheet.css">
        <title>Tech Order Department.html</title>
        <meta charset = "UTF-8" />
    </head>
    <body>
        <h2>New Projects</h2>
        <?php
        if ($_POST['formSubmit'] == "Submit") {
            $varMovie = $_POST['formProject'];
            $varMovie = $_POST['formClient'];
            $varMovie = $_POST['formLastName'];
            $varMovie = $_POST['formDateReceived'];
        }
        ?>
        <form action="myform.php" method="post">
            Project:<br>
            <input type="text" name="Project">
            <br>
            Client:<br>
            <input type="text" name="Client">
            <br>
            Last Name:<br>
            <input type="text" name="LastName">
            <br>
            Date Received:<br>
            <input type="text" name="DateReceived">
            <br><br>
            <input type="submit" name="formSubmit" value="Submit">
        </form>   
        <?php
        
       if(isset($_POST['formSubmit']) && $_POST['formSubmit'] == "Submit") {
            $errorMessage = "";
            if (empty($_POST['formProject'])) {
                $errorMessage .= "<li>You forgot to enter a project name!</li>";
            }
            if (empty($_POST['formClient'])) {
                $errorMessage .= "<li>You forgot to enter a client name!</li>";
            }
            if (empty($_POST['formLastName'])) {
                $errorMessage .= "<li>You forgot to enter the tech writer name!</li>";
            }
            if (empty($_POST['formDateReceived'])) {
                $errorMessage .= "<li>You forgot to enter the date received!</li>";
            }
            $varMovie = $_POST['formProject'];
            $varName = $_POST['formClient'];
            $varMovie = $_POST['formLastName'];
            $varMovie = $_POST['formDateReceived'];
            if (!empty($errorMessage)) {
                echo("<p>There was an error with your form:</p>\n");
                echo("<ul>" . $errorMessage . "</ul>\n");
            }
        }
        ?>
    </body>
</html>
&#13;
&#13;
&#13;