首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注意:未定义索引:在(路径)中提交

注意:未定义索引:在(路径)中提交
EN

Stack Overflow用户
提问于 2015-05-20 13:05:21
回答 1查看 2.3K关注 0票数 3

嘿,StackOverflow社区,我的联系方式有问题。

我使用了这个PHP脚本:

代码语言:javascript
复制
<?php
    if ($_POST["submit"]) {
        $name = $_POST['name'];
        $email = $_POST['phone'];
        $email = $_POST['email'];
        $message = $_POST['message'];
        $human = intval($_POST['human']);
        $from = 'Kontaktformular'; 
        $to = 'email@mail.com'; 
        $subject = 'Buchungsanfrage - $name';

        $body ="From: $name\n: $phone\n E-Mail: $email\n Message:\n $message";

        // Check if name has been entered
        if (!$_POST['name']) {
            $errName = 'Bitte geben Sie den Namen ein.';
        }

        // Check if email has been entered and is valid
        if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            $errEmail = 'Bitte geben Sie eine gültige E-Mail Adresse ein.';
        }

        //Check if message has been entered
        if (!$_POST['message']) {
            $errMessage = 'Bitte hinterlassen Sie mir eine Nachricht.';
        }
        //Check if simple anti-bot test is correct
        if ($human !== 5) {
            $errHuman = 'Ihre Anti-Span Antwort war falsch.';
        }

// If there are no errors, send the email
if (!$errName && !$errEmail && !$errMessage && !$errHuman) {
    if (mail ($to, $subject, $body, $from)) {
        $result='<div class="alert alert-success">Danke! Ich werde mich schnellstmöglich bei Ihnen melden.</div>';
    } else {
        $result='<div class="alert alert-danger">Entschuldigung, beim versenden Ihrer Nachricht ist etwas schief gelaufen. Bitte versuchen Sie es nochmal.</div>';
    }
}
    }
?>

这个HTML代表我的表单:

代码语言:javascript
复制
<div class="block block-primary-head no-pad">
            <h3><i class="fa fa-pencil"></i> Buchungsanfrage</h3>
            <div class="block-content">
                <form role="form" method="post" action="fotografie.php">
            <div class="form-group">
                <label>Name*</label>
                <input type="text" class="form-control" id="name" name="name" placeholder="Vor- und Nachname" value="<?php echo htmlspecialchars($_POST['name']); ?>">
                <?php echo "<p class='text-danger'>$errName</p>";?>
            </div>
            <div class="form-group">
                <label>Telefonnummer</label>
                <input type="text" class="form-control" id="phone" name="phone" placeholder="Ihre Telefonnummer" value="<?php echo htmlspecialchars($_POST['phone']); ?>">
            </div>
            <div class="form-group">
                <label>E-Mail Adresse</label>
                <input type="email" class="form-control" id="email" name="email" placeholder="Ihre E-Mail Adresse" value="<?php echo htmlspecialchars($_POST['email']); ?>">
                <?php echo "<p class='text-danger'>$errEmail</p>";?>
            </div>
            <div class="form-group">
                <label>Nachricht</label>
                <textarea class="form-control" id="message" name="message"><?php echo htmlspecialchars($_POST['message']);?></textarea>
                <?php echo "<p class='text-danger'>$errMessage</p>";?>
            </div>
            <div class="form-group">
                <label>2 + 3 = ?</label>
                <input type="text" class="form-control" id="human" name="human" placeholder="Ihre Antwort">
                <?php echo "<p class='text-danger'>$errHuman</p>";?>
            </div>
        </div>
        <div class="form-group">
            <?php echo $result; ?>
        </div>
        <button type="submit" id="submit" name="submit" value="send" class="btn btn-primary">Absenden</button>
    </form>
</div>

但是,当我现在站在我这边的时候,我得到了以下错误:

注意:未定义索引:在第2行的..\htdocs\projects\bootstrap-themes\001\contact\form-fotografie.php中提交

第2行代码如下:

如果($_POST“提交”){

有什么问题吗?

谢谢你的帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-20 13:10:06

看起来您正在尝试检查表单是否已提交。为此您需要使用isset函数,如下所示

第2行:

if ($_POST["submit"]) {

应改为:

if (isset($_POST["submit"])) {

编辑:

在使用变量之前,应该始终检查是否设置了变量,因此要更正html,需要更改以下内容:

代码语言:javascript
复制
<div class="form-group">
            <label>E-Mail Adresse</label>
            <input type="email" class="form-control" id="email" name="email" placeholder="Ihre E-Mail Adresse" value="<?php echo htmlspecialchars($_POST['email']); ?>">
            <?php echo "<p class='text-danger'>$errEmail</p>";?>
        </div>

至:

代码语言:javascript
复制
<div class="form-group">
            <label>E-Mail Adresse</label>
            <input type="email" class="form-control" id="email" name="email" placeholder="Ihre E-Mail Adresse" value="<?php if(isset($_POST['email'])) { echo htmlspecialchars($_POST['email']); } ?>">
            <?php if(isset($errEmail) && ($errEmail) != "") { echo "<p class='text-danger'>$errEmail</p>"; } ?>
        </div>

您需要对所有具有相关变量名的窗体组进行此更改,请告诉我您是如何处理的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30350578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档