sql >> Base de Datos >  >> RDS >> Mysql

Mi empresa de alojamiento web dice que algo anda mal con el código PHP

Suponiendo que desea ejecutar esto desde un formulario, deberá configurar su etiqueta de formulario HTML de la siguiente manera:

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

A continuación, debe cambiar el nombre de contact.html a contact.php (cualquier editor de texto debería poder hacer esto fácilmente).

Finalmente, estás usando el header() de PHP función, que causará errores si tiene salida al navegador antes de que se llame. Esto incluye el uso de echo de PHP estructura Tu contact.php El archivo debería tener este aspecto (y estar en el mismo directorio que el archivo HTML que contiene el formulario):

<?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: Arreglé un poco tu diseño y cambié algunas de las condiciones que estabas usando. El primer elseif en realidad era redundante, y else será suficiente.