Mysql
 sql >> Database >  >> RDS >> Mysql

La mia società di web hosting dice che c'è qualcosa che non va nel codice PHP

Supponendo che desideri eseguirlo da un modulo, dovrai impostare il tag del modulo HTML come segue:

<form action="contact.php" method="post">

Dovresti quindi rinominare contact.html a contact.php (qualsiasi editor di testo dovrebbe essere in grado di farlo facilmente).

Infine, stai usando header() di PHP funzione, che causerà errori se l'output viene inviato al browser prima che venga chiamato. Ciò include l'utilizzo di echo di PHP struttura Il tuo contact.php dovrebbe avere questo aspetto (e trovarsi nella stessa directory del file HTML contenente il modulo):

<?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>';
    }
}
?>

Nota: Ho corretto un po' il tuo layout e cambiato alcune delle condizioni che stavi usando. Il primo elseif era effettivamente ridondante e un else sarà sufficiente.