J'ai un problème avec ma page. J'essaie de créer une page "Contactez-nous". Cela fonctionne parfaitement au niveau du design. Mais quand j'essaie d'envoyer le formulaire à la même page que l'origine. Il renvoie une erreur 404.
Cela ne se produit que lorsque j'envoie le formulaire. J'ai essayé les deux avec les demandes GET et POST. Rien ne semble fonctionner.
J'ai même commenté la partie PHPMailer. Elle est entièrement causée par les variables supplémentaires.
Si cela aide quelque chose, ce sont "nom", "email" et "message".
$_POST
les données ne devraient vraiment pas affecter le fait que la page soit trouvée ou non.Réponses:
Préfixez tout , en particulier vos variables. Les noms que vous utilisez sont utilisés par WordPress en interne (voir le formulaire de commentaire), donc WordPress peut essayer de faire quelque chose avec vos valeurs de formulaire. Si cela échoue, vous obtenez une erreur.
Alors que les
$_GET
problèmes sont généralement assez faciles à déboguer,$_POST
et les$_REQUEST
noms ne sont pas si simples.La liste suivante n'est probablement pas complète. Mais sa longueur nue nous apprend une leçon:
Évitez tout nom que vous pouvez trouver dans un dictionnaire. Préfixez vos noms de formulaire.
Liste des noms réservés dans
$_POST
et$_REQUEST
utilisés par WordPress 3.5Ces noms peuvent avoir des effets secondaires lorsqu'ils sont utilisés dans des thèmes ou des plugins. Certains sont utilisés uniquement sur des pages spécifiques (
removeheader
), d'autres sur plusieurs pages ou demandes. Évitez-les tous si vous le pouvez.Noms de variables
la source
Vous pouvez également le poster sur WP et gérer le traitement dans functions.php.
Pour le formulaire:
Et incluez une entrée cachée qui indique à WP quelle est la fonction avec laquelle vous allez la traiter:
Écrivez la fonction dans functions.php:
Dites à WP quelle est la fonction:
la source