Php联系表格,验证无效

时间:2014-01-31 21:58:51

标签: php html forms

您好我已创建此联系表单以发送消息。
我已多次阅读,但我没有发现任何错误。有提示吗?
当我按“enviar”(发送)时没有任何反应。我创建了一个与“subject”(“assunto”)相关的新表单选项字段 ps.:plz忽略“mail@mail.com.br”,在我的测试中我正在使用真实的。

希望你能帮忙!

这是我在表单标记之前插入的PHP代码。这是我在这里看到的代码,但我已将其更改为适用于我的网站。

<?php $page = 'Contact'; 


    $to = "mail@mail.com.br"; 
    //$subject = "Company - Contato"; 

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

        // Error Checking 
        $errors = array(); 

        // Name Check 
        if (empty($_POST['name'])) { 
            $errors[] = 'Preencha corretamente o campo nome.'; 
        } 

        // Email Check 
        if (empty($_POST['email'])) { 
            $errors[] = 'Preencha corretamente o campo email.'; 
        } 

        // Assunto Check 
        if (empty($_POST['assunto'])) { 
            $errors[] = 'Preencha corretamente o campo assunto.'; 
        } 

        // Message check 
        if (empty($_POST['message'])) { 
            $errors[] = 'Preencha corretamente o campo mensagem'; 
        } 

        // If no errors - send email 
        if (empty($errors)) { 

            $name           = htmlentities($_POST['name']); 
            $email          = htmlentities($_POST['email']); 
            $assunto        = htmlentities($_POST['assunto']); 

            $subject = 'Company - Contato'; 

            $headers  = "From: $email" . "\r\n"; 
            $headers .= "Reply-To: $email" . "\r\n"; 
            $headers .= "MIME-Version: 1.0\r\n"; 
            $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 

            $message = $_POST['message'];

            $message = '<html><body>'; 
            $message .= "<br />"; 
            $message .= "<br />"; 
            $message .= '<div style="font: 14px Arial, sans-serif; color: #333;">'; 
            $message .= "<b>Nome:</b> $name" . "\r\n"; 
            $message .= "<br />"; 
            $message .= "<b>Email:</b> $email" . "\r\n"; 
            $message .= "<br />"; 
            $message .= "<b>Assunto:</b> $assunto" . "\r\n"; 
            $message .= "<br />"; 
            $message .= "<b>Mensagem:</b>"; 
            $message .= "<br />"; 
            $message .= $_POST['message']; 
            $message .= "<br />"; 
            $message .= '</div>'; 
            $message .= "</body></html>"; 

            // Send Email 
            mail($to,$subject,$message,$headers); 

            // Set sent variable to allow sent message to be displayed 
            $sent = 'Sent'; 

        } 

    } 
    ?> 

    <?php if (!empty($errors)) { ?> 
        <div class="error"> 
            <ul> 
                <?php 

                foreach ($errors as $error) { 
                    echo '<li>'.$error.'</li>'; 
                } 

                ?> 
            </ul> 
        </div> 
    <?php } ?> 

    <?php if(isset($sent)) { ?> 
        <div class="success"> 
            <p>Sua mensagem foi enviada com sucesso.</p>
        </div> 
    <?php } ?>



下面我已插入表单本身。正如你所看到的,我使用了相同的'名字',但它不起作用。 :/

    <form name="htmlformContato" class="form-horizontal"  action="" accept-charset="UTF-8" method="post">


    <div class="col-sm-6 col-xs-12">

              <div class="form-group col-sm-12">
              <label for="inputNome" class="control-label">Nome *</label>
              <input id="inputNome" type="text" class="form-control" name="name" value="<?php echo $_POST['name']; ?>" />
              </div> 

              <div class="form-group col-sm-12">
              <label for="inputEmail" class="control-label">Email *</label>
              <input id="inputEmail" type="text" class="form-control" name="email" value="<?php echo $_POST['email']; ?>" />
              </div>


              <div class="form-group col-sm-12">
              <label for="inputAssunto" class="control-label">Assunto *</label>
              <select class="form-control" name="assunto">
                <option value="SelecioneAssunto">Selecione o assunto</option>
                <option value="Duvidas">Dúvidas</option>
                <option value="Sugestoes">Sugestões</option>
                <option value="Reclamacoes">Reclamações</option>
                <option value="Outro">Outro</option>
              </select>
              </div>                                  

    </div>


    <div class="col-sm-6 col-xs-12">

              <div class="form-group col-sm-12">
              <label for="inputMensagem" class="control-label">Mensagem *</label>
              <textarea class="form-control" rows="9" id="inputMensagem" name="message"><?php echo $_POST['message']; ?></textarea>
              </div>

    </div>

    <div class="col-xs-12">

              <div class="form-group col-xs-12">          
              <button type="submit" class="btn btn-bodyupA">Enviar</button>          
              </div>

    </div>          

    </form>                                                     

3 个答案:

答案 0 :(得分:4)

<button type="submit" class="btn btn-bodyupA">Enviar</button>   

应该是:

<input type="submit" value="Enviar" class="btn btn-bodyupA">   

答案 1 :(得分:1)

如果您使用inputbutton,只要他们有type="submit"并不重要,但您必须设置name,因为您有if (isset($_POST['whatevername'])) { < / p>

<button name="whatevername" type="submit" class="btn btn-bodyupA">Enviar</button>

<input name="whatevername" type="submit" class="btn btn-bodyupA" value="Enviar">

要么都能正常工作。

另外 <button> vs. <input type="button" />. Which to use?

答案 2 :(得分:0)

添加name =“submit”

<button type="submit" name="submit" class="btn btn-bodyupA">Enviar</button>