【问题标题】:Notice: Undefined index: submit in (Path)注意:未定义索引:在(路径)中提交
【发布时间】:2015-05-20 13:05:21
【问题描述】:

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

我使用了这个 PHP 脚本:

<?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:

<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["submit"]) {

可能是什么问题?

感谢您的帮助:-)

【问题讨论】:

    标签: php forms contact-form


    【解决方案1】:

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

    第 2 行:

    if ($_POST["submit"]) {

    应改为:

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

    编辑:

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

    <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>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>
    

    您需要对所有具有相关变量名称的表单组进行此更改,让我知道您的进展情况

    【讨论】:

    • 酷,谢谢!这解决了我的通知问题,但现在我的表单输入框下仍然有一些通知:“注意:未定义变量:..\htdocs\projects\bootstrap-themes\001\fotografie.php 第 241 行中的 errName跨度>
    • $errName";?>
    • 嘿,谢谢!但是现在我收到以下错误: Parse error: syntax error, unexpected 'if' (T_IF) in ..\htdocs\projects\bootstrap-themes\001\fotografy.php on line 249 - Line 249 is:
    猜你喜欢
    • 2018-11-06
    • 2012-07-15
    • 2015-12-01
    • 2013-11-27
    • 2015-06-02
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多