繁体   English   中英

带有错误消息的 PHP Contactform 不会触发 php 脚本

[英]Php Contactform with error messages dont trigger php script

我为一个带有一些错误消息的简单联系表单制作了一个 index.php。 脚本和表单在同一个 index.php 中(也试过外部,没有工作)现在我想知道为什么这个脚本不工作我没有收到邮件,我没有收到错误消息,也没有从服务器端收到正确的错误我检查了几次,如果我在变量中犯了一些错误,但我找不到任何人。 希望在这里得到帮助,知道为什么它不起作用吗? 也许 PHP 脚本没有被激活(它在 index.php 文件中的实际表单之前)

首先尝试stackoverflow :)

这是PHP脚本

if (isset($_POST['submit'])) {
$name = $_POST['name'];
$prename = $_POST['prename'];
$sex = $_POST['sex'];
$company = $_POST['company'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$message = $_POST['message'];
$from = 'Demo Contact Form';
$to = 'martin.niklaus@gmx.com';
$subject = 'Message from Contact form';

$body = 'From: $sex $prename $name\n Company: $company\n  E-Mail: $email\n Mobile: $mobile\n Message:\n $message';

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

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

// Check if sex has been entered
if (!$_POST['sex']) {
    $errSex = 'Please choose your sex';
}

// Check if Companyname has been entered
if (!$_POST['company']) {
    $errCompany = 'Please enter your Companis name';
}


// Check if email has been entered and is valid
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    $errEmail = 'Please enter a valid email address';
}

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

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

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

// If there are no errors, send the email
if (!$errName && !$errPrename && !$errSex && !$errCompany && !$errEmail && !$errMessage && !$errMobile) {
    if (mail($to, $subject, $body, $from)) {
        $result = '<div class="alert alert-success">Thank You! I will be in touch</div>';
    } else {
        $result = '<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>';
    }
}
}

HTML脚本

<div class="form-holder mg-bottom-50">
              <form accept-charset="UTF-8" action="index.php" method="post">
                 <div class="col-md-6">
                    <label for="name">Name*</label>
                    <input id="name" name="name" type="text" value="<?php echo htmlspecialchars($_POST['name']); ?>"/>
        <?php echo "<p class='text-danger'>$errName</p>";?>
                 </div>
                 <div class="col-md-6">
                    <label for="prename">Prename*</label>
                    <input id="prename" name="prename" type="text" value="<?php echo htmlspecialchars($_POST['prename']); ?>"/>
        <?php echo "<p class='text-danger'>$errPrename</p>";?>
                 </div>
                 <div class="col-md-6">
                    <label>Sex*</label>
                    <div class="form-choose-type choose-type">
                       <span>
                       <input type="radio" checked="checked" id="male" name="sex" rel="Mr" value="Mr" />
                       <label class="active Mr" for="male">Mr.</label>
                       </span>
                       <span>
                       <input  type="radio"  id="female" name="sex" rel="Mr" value="Mrs" />
                       <label class="Mrs" for="female">Mrs.</label>
                       </span>
                       <div class="clear"></div>
                    </div>
                 </div>
                 <div class="col-md-6">
                    <label for="company">Company*</label>
                    <input id="company" name="company" type="text" value="<?php echo htmlspecialchars($_POST['name']); ?>"/>
        <?php echo "<p class='text-danger'>$errName</p>";?>
                 </div>
                 <div class="col-md-6">
                    <label for="email">E-mail*</label>
                    <input id="email" name="email" type="text" value="<?php echo htmlspecialchars($_POST['name']); ?>"/>
        <?php echo "<p class='text-danger'>$errName</p>";?>
                 </div>
                 <div class="col-md-6">
                    <label for="mobile">Mobile*</label>
                    <input id="mobile" name="mobile" type="text" value="<?php echo htmlspecialchars($_POST['name']); ?>"/>
        <?php echo "<p class='text-danger'>$errName</p>";?>
                 </div>
                 <div class="clear"></div>
                 <div class="col-md-12 mg-bottom-50">
                    <label for="message">Message*</label>
                    <textarea id="message" name="message">
                    <?php echo htmlspecialchars($_POST['message']);?>
                    </textarea>
                 </div>
                 <div class="col-md-12 actions">
                    <input class="black-button" name="commit" type="submit" value="Senden" />
                 </div>
              </form>
              <?php echo $result; ?>

              <div class="clear"></div>
           </div>
        </div>
     </div>
  </div>

感谢帮助 :)

问题:电子邮件格式错误,但消息不会显示 bcaz

<?php echo "<p class='text-danger'>$errName</p>";?>

代替

<?php echo "<p class='text-danger'>$errEmail</p>";?>

修改后的脚本如下

php

<?php
if (isset($_POST['name'])) {

$name    = $_POST['name'];
$prename = $_POST['prename'];
$sex     = $_POST['sex'];
$company = $_POST['company'];
$email   = $_POST['email'];
$mobile  = $_POST['mobile'];
$message = $_POST['message'];
$from    = 'Demo Contact Form';
$to      = 'martin.niklaus@gmx.com';
$subject = 'Message from Contact form';

$body = 'From: $sex $prename $name\n Company: $company\n  E-Mail: $email\n Mobile: $mobile\n Message:\n $message';

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

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

// Check if sex has been entered
if (!$_POST['sex']) {
    $errSex = 'Please choose your sex';
}

// Check if Companyname has been entered
if (!$_POST['company']) {
    $errCompany = 'Please enter your Companis name';
}

// Check if email has been entered and is valid
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    $errEmail = 'Please enter a valid email address';
}

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

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

// If there are no errors, send the email
if (!isset($errName) && !isset($errPrename) && !isset($errSex) && !isset($errCompany) && !isset($errEmail) && !isset($errMessage) && !isset($errMobile)) {

    if (mail($to, $subject, $body, $from)) {
        $result = '<div class="alert alert-success">Thank You! I will be in touch</div>';
    } else {
        $result = '<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>';
    }
}

}
?>

HTML

<div class="form-holder mg-bottom-50">
          <form accept-charset="UTF-8" action="index.php" method="post">
             <div class="col-md-6">
                <label for="name">Name*</label>
                <input id="name" name="name" type="text" value="<?php echo htmlspecialchars($_POST['name']); ?>"/>
    <?php echo "<p class='text-danger'>$errName</p>";?>
             </div>
             <div class="col-md-6">
                <label for="prename">Prename*</label>
                <input id="prename" name="prename" type="text" value="<?php echo htmlspecialchars($_POST['prename']); ?>"/>
    <?php echo "<p class='text-danger'>$errPrename</p>";?>
             </div>
             <div class="col-md-6">
                <label>Sex*</label>
                <div class="form-choose-type choose-type">
                   <span>
                   <input type="radio" checked="checked" id="male" name="sex" rel="Mr" value="Mr" />
                   <label class="active Mr" for="male">Mr.</label>
                   </span>
                   <span>
                   <input  type="radio"  id="female" name="sex" rel="Mr" value="Mrs" />
                   <label class="Mrs" for="female">Mrs.</label>
                   </span>
                   <div class="clear"></div>
                </div>
             </div>
             <div class="col-md-6">
                <label for="company">Company*</label>
                <input id="company" name="company" type="text" value="<?php echo htmlspecialchars($_POST['name']); ?>"/>
    <?php echo "<p class='text-danger'>$errName</p>";?>
             </div>
             <div class="col-md-6">
                <label for="email">E-mail*</label>
                <input id="email" name="email" type="text" value="<?php echo htmlspecialchars($_POST['name']); ?>"/>
    <?php echo "<p class='text-danger'>$errEmail</p>";?>
             </div>
             <div class="col-md-6">
                <label for="mobile">Mobile*</label>
                <input id="mobile" name="mobile" type="text" value="<?php echo htmlspecialchars($_POST['name']); ?>"/>
    <?php echo "<p class='text-danger'>$errName</p>";?>
             </div>
             <div class="clear"></div>
             <div class="col-md-12 mg-bottom-50">
                <label for="message">Message*</label>
                <textarea id="message" name="message">
                <?php echo htmlspecialchars($_POST['message']);?>
                </textarea>
             </div>
             <div class="col-md-12 actions">
                <input class="black-button" name="commit" type="submit" value="Senden" />
             </div>
          </form>
          <?php echo $result; ?>

          <div class="clear"></div>
       </div>
    </div>
 </div>
</div>

小笔记

您需要改进错误显示部分并在输入中检索 POST 变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM