问题是你的htaccess
因为您正在重定向到另一个URL,导致POST数据不再可用。
RewriteRule ^(.*) http://www.example.fr/$1 [QSA,L,R=301]
应该是
RewriteRule ^(.*) /$1 [QSA,L,R]
您还可以将其设置为在帖子上不重定向:
RewriteCond %{REQUEST_METHOD} !POST [NC]
或者,使用307重定向,这将保留POST数据
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection您还可以使用PHP速记IF语句,并建议使用array_key_exists
结束isset
检查阵列时
$sub = array_key_exists( \'sub\', $_POST ) ? $_POST[ \'sub\' ] : \'\';
$contact_nom = array_key_exists( \'contact_nom\', $_POST ) ? $_POST[ \'contact_nom\' ] : \'\';
$contact_prenom = array_key_exists( \'contact_prenom\', $_POST ) ? $_POST[ \'contact_prenom\' ] : \'\';
$contact_mail = array_key_exists( \'contact_mail\', $_POST ) ? $_POST[ \'contact_mail\' ] : \'\';
$contact_sujet = array_key_exists( \'contact_sujet\', $_POST ) ? $_POST[ \'contact_sujet\' ] : \'\';
$contact_destinataire = array_key_exists( \'contact_destinataire\', $_POST ) ? $_POST[ \'contact_destinataire\' ] : \'\';
$contact_message = array_key_exists( \'contact_message\', $_POST ) ? $_POST[ \'contact_message\' ] : \'\';
https://davidwalsh.name/php-ternary-examples
您还应该清理来自前端表单的数据,以防止任何可能的安全漏洞
https://codex.wordpress.org/Validating_Sanitizing_and_Escaping_User_Data为什么不使用类似火山口形状的东西来为您处理所有这些?https://wordpress.org/plugins/caldera-forms/