bootsrap php联系表单值显示错误<br/> <b>通知</b>:未定义变量:<b> C:\ x \ testForm.php </b>中的myThema <b> 105 </b> <BR/>

时间:2017-03-23 08:41:00

标签: php html twitter-bootstrap contact-form

我正在使用bootstrap,我想创建一个联系表单。我创建了一个名为testForm.php的文件,在那里我编写了我的php和我的html代码(我应该创建一个不同的文件吗?一个用于php,一个用于html?)。我的文件以html代码之后的PHP代码开头。只要我在html区域中放置一个<?php echo....,就会一直出现在网站Undefined index:。例如 enter image description here

现在我只尝试使用一个参数:thema来查看它是否有效以及它是如何工作的,如果我把一些东西放到值上会产生如上图所示的结果。 我的PHP代码:

<?php
if (isset($_POST["submit"])) {
    $thema = $_POST['thema'];



    // Check if thema has been entered
    if (!$_POST['thema']) {
        $errThema = 'Please enter your thema';
    }


}

&GT;

和我的HTML代码:

<!-- MAIN SEITE -->
<h4><p class="text-primary"><u>Neuanforderungsformular</u></p></h4>

<!-- START FORM -->
<form method="post" role="form" action="testForm.php">
<!-- Thema Feld -->
<div class="form-group">
    <label for="usr">Thema / Title:</label>
    <input type="text" id="thema" name="thema" class="form-control input-lg" value="<?php echo htmlspecialchars($_POST['thema']); ?>">
</div>
<!-- Email Adresse Feld-->
<div class="form-group">
    <label for="exampleInputEmail1">Email address</label>
    <div class="input-group col-sm-5">
    <input type="text" class="form-control input-lg" placeholder="Ihre Email Addresse" aria-describedby="basic-addon2">
    <span class="input-group-addon" id="basic-addon2">@teswt.de</span>
</div>

如何解决问题,以便我的联系表格能够运作?

5 个答案:

答案 0 :(得分:2)

像这样使用

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

而不是

$thema = $_POST['thema'];

update.1

试试吧

<?php $thema = !empty($thema) ? $thema : ''; ?>
<input type="text" id="thema" name="thema" class="form-control input-lg" value="<?php echo htmlspecialchars($thema); ?>">

而不是

<input type="text" id="thema" name="thema" class="form-control input-lg" value="<?php echo htmlspecialchars($_POST['thema']); ?>">

答案 1 :(得分:1)

试试这个:

<?php
if (isset($_POST["submit"])) {
    if (isset($_POST['thema'])){
        $thema = $_POST['thema'];
    } else {
        $thema = 'Please enter your thema';
    }
}
?>

如果已设置$thema,您应首先检查。你所做的是你在没有检查的情况下使用$_POST['thema'],因此错误出现在文本字段

答案 2 :(得分:1)

当$ _POST中没有thema的条目

时,您正在访问$ _POST [&#39; thema&#39;])
<div class="form-group">
    <label for="usr">Thema / Title:</label>
<input type="text" id="thema" name="thema" class="form-control input-lg" 
        value="<?php echo htmlspecialchars($_POST['thema']); ?>">
 </div>

然后你应该为var使用适当的设置,例如$ myThema

if (isset($_POST["submit"])) {
      if (isset($_POST['thema'])){
          $myThema = $_POST['thema'];
      } else {
          $errThema = 'Please enter your thema';
          $myThema = '';
      }
  }

<div class="form-group">
    <label for="usr">Thema / Title:</label>
<input type="text" id="thema" name="thema" class="form-control input-lg" 
        value="<?php echo htmlspecialchars($myThema); ?>">
 </div>

答案 3 :(得分:1)

我会使用类似的东西:

function GetPostOrDefault($key, $default = '')
{
    if (array_key_exists($key, $_POST))
    {
        return $_POST[$key];
    }
    return $default;
}

然后

<input value="<?= GetPostOrDefault('thema') ?>">

<input value="<?= GetPostOrDefault('thema', 'Neues Thema') ?>">

如果您没有发布帖子,则会收到此错误,因为未定义索引。

这意味着$_POST['thema']仅在您提交的表单中包含名称为thema的字段时才可用。在初始页面加载时,您执行GET请求。表格未提交。

答案 4 :(得分:1)

只需在$ _POST ['submit']的支票之外移动您的默认$ thema值。您当前的代码仅在表单提交时设置。

$thema = '';
$errThema = '';

if (isset($_POST["submit"])) {
    // Check if thema has been entered
    if (!$_POST['thema']) {
        $errThema = 'Please enter your thema';
    } else {
        $thema = $_POST['thema'];
    }
}

当然,您应该在表单中显示$thema而不是$_POST['thema']