我正在使用bootstrap,我想创建一个联系表单。我创建了一个名为testForm.php的文件,在那里我编写了我的php和我的html代码(我应该创建一个不同的文件吗?一个用于php,一个用于html?)。我的文件以html代码之后的PHP代码开头。只要我在html区域中放置一个<?php echo....
,就会一直出现在网站Undefined index:。例如
现在我只尝试使用一个参数: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>
如何解决问题,以便我的联系表格能够运作?
答案 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']
。