Formulaire de contact redirigeant vers une page introuvable lors de l'envoi

16

J'ai un formulaire de contact que j'ai utilisé beaucoup de fois auparavant sur d'autres sites non WP mais il ne semble pas fonctionner sur mon site WP actuel , il vous redirige simplement vers une page introuvable.

Je ne veux pas utiliser de plugins pour le créer.

Voici le code:

<form class="form" method="POST" action="<?php the_permalink(); ?>">
    <table border="0" style="float:left;">
        <tbody>
            <tr>
                <td>
                <p>Company Name:</p>
                </td>
                <td>&nbsp;</td>
                <td><input type="text" name="companyname" id="companyname" /></td>
            </tr>
            <tr>
                <td>
                <p>Your Name:</p>
                </td>
                <td>&nbsp;</td>
                <td><input type="text" name="name" id="name" /></td>
            </tr>
            <tr>
                <td>
                <p>E-mail:</p>
                </td>
                <td>&nbsp;</td>
                <td><input type="text" name="email" id="email" /></td>
                <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
                <td>
                <p>Telephone:</p>
                </td>
                <td>&nbsp;</td>
                <td><input type="text" name="tel" id="tel" /></td>
                <td colspan="2">&nbsp;</td>
            </tr>
        </tbody>
    </table>

    <table border="0" style="float:left;" width="450">
        <tbody>
            <tr>
                <td valign="top"><p style="margin-left:42px;margin-right:10px;margin-top:7px;">Enquiry:</p></td>
                <td><textarea name="enquiry"></textarea></td>
            </tr>
            <tr>
                <td colspan="2"><button class="blue medium awesome awesomeforward" type="submit" name="submit">Send message</button></td>
            </tr>
        </tbody>
    </table>        

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

$to = "[email protected]";
$subject = "Teamworks contact enquiry";
$companyname_field = $_POST['companyname'];
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$tel_field = $_POST['tel'];
$enquiry_field = $_POST['enquiry'];


$body = "Hello Teamworks,\n\n You have an enquiry from the website, please see the details below:\n\n Name: $name_field\n Company Name: $companyname_field\n E-Mail: $email_field\n Tel: $tel_field\n Message:\n $enquiry_field\n\n Please reply to the enquiry asap.\n\n Kind Regards \n The Teamworks Website";

mail($to, $subject, $body);

echo "</br>Thank you for getting in touch, we will contact you shortly.";

} ?>
</form>
Rob
la source
3
essayez de changer le champ nommé name="name"par autre chose.
Bainternet
Génial, merci. Frustrant quand c'est quelque chose de si simple !! ps je ne peux pas vous marquer comme répondu.
Rob
l'a ajouté comme réponse pour que vous puissiez marquer cette question comme ayant été répondue.
Bainternet

Réponses:

25

Lorsque vous traitez des formulaires, vous devez vous assurer que votre formulaire n'a pas quelques noms de fichiers spécifiques comme: nom, jour, mois, année et je suis sûr que quelques autres, alors faites vos noms de champs de formulaire plus spécifiques comme: nom_contact, jour_contact, mois_contact, année_contact.

dans votre cas, changez name="name"pour autre chose.

Bainternet
la source