Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Minha empresa de hospedagem na web diz que há algo errado com o código PHP


Supondo que você deseja executar isso a partir de um formulário, você precisará definir sua tag de formulário HTML da seguinte forma:
<form action="contact.php" method="post">

Você deve então renomear contact.html para contact.php (qualquer editor de texto deve ser capaz de fazer isso facilmente).

Finalmente, você está usando o header() do PHP função, que causará erros se você tiver saída para o navegador antes de ser chamado. Isso inclui usar o echo do PHP estrutura. Seu contact.php O arquivo deve ficar assim (e estar no mesmo diretório que o arquivo HTML que contém o formulário):
<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $number = $_POST['number'];
    $message = $_POST['message'];
    $from = 'From:you'; 
    $to = '[email protected]'; 
    $subject = 'Hello';
    $human = $_POST['human'];

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


if ($_POST['submit']) {
    if ($name != '' && $email != '') 
    {
        if ($human == '4') 
        {                 
            if (mail ($to, $subject, $body, $from)) 
            { 
                header("Location: thanks.html");
            } 
            else 
            { 
                echo '<p>Something went wrong, go back and try again!</p>'; 
            } 
        } 
        else
        {
            echo '<p>You answered the anti-spam question incorrectly!</p>';
        }
    } 
    else 
    {
        echo '<p>You need to fill in all required fields!!</p>';
    }
}
?>

Observação: Corrigi um pouco seu layout e alterei algumas das condições que você estava usando. O primeiro elseif era realmente redundante, e um else será suficiente.