Pourquoi, lorsque je soumets un formulaire au format wordpress, celui-ci charge une page de 404 si l'URL est correcte

16

Je ne fais que créer un formulaire de contact simple, mais je remarque qu'il semble publier sur une page non valide. L'URL dans le navigateur est correct mais le titre de la page est "Page introuvable"

en haut de la page

$emailed = false;
if (isset($_POST['submit'])) {
    wp_mail('[email protected]', $_POST['subject'], $_POST['content']);
    $emailed = true;
}

ci-dessous ... le code HTML:

<form action="<?php the_permalink(); ?>" method="post" id="contactform">
    <div class="formelem">
        <label for="name">Name</label>
        <input type="text" name="name" class="required" />
    </div>
    <div class="formelem">
        <label for="email">Email</label>
        <input type="text" name="email" class="required email" />
    </div>
    <div class="formelem">
        <label for="subject">Subject</label>
        <input type="text" name="subject" class="required" />
    </div>
    <div class="formelem">
        <label for="content">Content</label>
        <textarea name="content" cols="30" rows="10" class="required"></textarea>
    </div>

    <input type="submit" value="Submit Message" name="submit" value="submit" />
</form>
    
posée JM at Work 11.03.2011 - 09:06

3 réponses

36

Je peux me tromper, mais je me souviens vaguement que: nom, email soit pris en otage par WordPress pour poster des commentaires, si vous avez renommé les éléments de formulaire en contact-name et contact-email, obtenez-vous le même problème?

    
réponse donnée Tom 11.03.2011 - 12:09
3

Ce n'est pas seulement name ou email problème, comme l'a écrit Tom. J'avais un problème même avec le champ de saisie avec l'attribut name identique à l'un de mes types de publication personnalisés. Par exemple:

...
<input type="text" name="movie">
...

Et lorsque vous aurez enregistré un "film" CPT ailleurs, la soumission de votre formulaire se terminera par une erreur 404.

Conclusion: n'utilisez pas name , email et any registered custom post type handle comme valeur d'attribut de nom d'entrée dans vos formulaires.

    
réponse donnée Marek 05.11.2014 - 13:32
1

Essayez de remplacer name="email" par quelque chose comme name="my_theme_email" . Faites de même avec tout votre champ. Il semble qu'un nom soit réservé avec WordPress lors de l'envoi de données de formulaire. J'ai eu le même problème et je l'ai résolu comme ça.

    
réponse donnée Thierry Edou 29.11.2016 - 09:26

Lire d'autres questions sur les étiquettes