php - 通过 POST 方法提交 HTML 表单时未定义索引

标签 php html forms indexing undefined

我几天来一直在寻找为什么这段代码不起作用。通过搜索有相同问题的帖子多次调整代码。

问题:我的 php 文件似乎无法通过 POST 方法从简单的 HTML 表单(使用 bootstrap 制作)获取所需的值。我使用 issit 函数来检查提交按钮是否已被单击,然后我使用 issit 函数来检查表单是否已完整填写。

请注意,我对 php 还比较陌生。我希望我确实错过了一些东西,而且这不仅仅是一个简单的拼写错误。

PHP 代码 (bootstrap/php/boeking.php)

<?php

//<!--debug-->

error_reporting(E_ALL);
ini_set('display_errors', '1');


//<!--connectie-->

mysql_connect("localhost","root","root") or die(mysql_error());
mysql_select_db("hota") or die(mysql_error());


//<!--boeking info verzenden-->

if(isset($_POST['send']))

{

if (isset($_POST['achternaam'])) 
{
   $anaam = $_POST['achternaam'];
   // do whatever here
}

if(isset($_POST['voornaam']))
{
$vnaam =  $_POST['voornaam'];

}

}



$anaam = mysql_real_escape_string($anaam);
$vnaam = mysql_real_escape_string($vnaam);


$boek = "INSERT INTO klant (achternaam , voornaam) VALUES ('{$anaam}', '{$vnaam}')";

mysql_query($boek);

?>

HTML 代码:

<form id="newbook" method="POST" action="bootstrap/php/boeking.php" class="form-horizontal">
  <legend>Nieuwe boeking</legend>
   <div class="control-group">
      <label class="control-label" for="voornaam">Voornaam</label>
      <div class="controls">
        <input type="text" name="voornaam" id="voornaam" placeholder="Voornaam">
      </div>
   </div>
   <div class="control-group">
      <label class="control-label" for="achternaam">Achternaam</label>
      <div class="controls">
        <input type="text" name="achternaam" id="achternaam" placeholder="Achternaam">
      </div>
    </div>
   <div class="control-group">
      <div class="controls">
        <button type="submit" name="send" class="btn">Sign in</button>
      </div>
   </div>
  </form>

提前致谢!

更新:

更改了我的 php 代码。

不再出现未定义索引错误。
var_dump($vnaam);和 var_dump($anaam);确实表明字符串被传递到 php,但之后,当查询被触发时,事情似乎没有被发送到数据库。

这可能是我的查询中的问题吗?

(已经感谢您的提示:为按钮提供了一个值并使用了 var_dump)

这是我的新代码:

<?php

//<!--debug-->

error_reporting(E_ALL);
ini_set('display_errors', '1');


//<!--connectie-->

mysql_connect("localhost","root","root") or die(mysql_error());
mysql_select_db("hota") or die(mysql_error());


$anaam = '';
$vnaam = '';


if(!isset($_POST['send'])) { 

} 
 else
{

if (isset($_POST['achternaam'])) 
{
   $anaam = $_POST['achternaam'];
   // do whatever here

}

if(isset($_POST['voornaam']))
{
$vnaam =  $_POST['voornaam'];


}
var_dump($vnaam);
var_dump($anaam);


    $anaam = mysql_real_escape_string($anaam);
    $vnaam = mysql_real_escape_string($vnaam);

}

var_dump($vnaam);


$boek = "INSERT INTO klant (achternaam , voornaam) VALUES ('{$anaam}', '{$vnaam}')";

mysql_query($boek);

?>

最佳答案

你可以尝试一下:

替换

<button type="submit" name="send" class="btn">Sign in</button>

<input type="submit" name="send" value="Sign in" />

   if(isset($_POST['send']))

    {

    if (isset($_POST['achternaam'])) 
    {
       $anaam = $_POST['achternaam'];
       // do whatever here
    }

    if(isset($_POST['voornaam']))
    {
    $vnaam =  $_POST['voornaam'];

    }

    }

    $anaam = mysql_real_escape_string($anaam);
    $vnaam = mysql_real_escape_string($vnaam);
    [...]

if(!isset($_POST['send'])) { 
    echo " No valid Post ";
} 
 else
{

if (isset($_POST['achternaam'])) 
{
   $anaam = $_POST['achternaam'];
   // do whatever here
}

if(isset($_POST['voornaam']))
{
$vnaam =  $_POST['voornaam'];

}

    $anaam = mysql_real_escape_string($anaam);
    $vnaam = mysql_real_escape_string($vnaam);
    [...]
}

可点击按钮

<button type="submit" name="send" class="btn">Sign in</button>

要指定单击按钮时应发生的情况,您可以使用 side onclick 事件处理程序。将值分配给事件处理程序属性,然后您可以编写 JavaScript 代码。

在其他方面,这些按钮与它们的传统对应按钮具有相同的功能:如果没有 JavaScript,它们将完全无功能

关于php - 通过 POST 方法提交 HTML 表单时未定义索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159158/

相关文章:

php 内的 javascript 函数在 chrome 中不起作用

php - 如果复选框被选中循环并检索相应的文本字段值

html - 悬停后更改其他表格元素的样式

javascript - 向上滑动整页

ruby-on-rails - Rails 在参数中为 M 到 M 关联形成传递数组

php - 使用 Composer 要求多个子目录共享文件

php - 我如何存储 PDO 对象

html - 为什么 Bootstrap 列与固定 header 重叠?

php - 更新数据库中的多项选择复选框

javascript - 如何在 select 标签中动态设置默认值?