html - 发布变量在在线服务器上丢失,在本地工作正常

标签 html forms

我的 post 变量在我的在线页面上丢失了(使用完全相同的代码在本地工作正常)。以下是我在页面重新加载时检索它们的方式:

if ( isset($_POST['sub']) ) $sub = $_POST['sub']; else $sub = ''; 
if ( isset($_POST['contact_nom']) ) $contact_nom = $_POST['contact_nom']; else $contact_nom = ''; 
if ( isset($_POST['contact_prenom']) ) $contact_prenom = $_POST['contact_prenom' ]; else $contact_prenom = ''; 
if ( isset($_POST['contact_mail']) ) $contact_mail = $_POST['contact_mail']; else $contact_mail = ''; 
if ( isset($_POST['contact_sujet']) ) $contact_sujet = $_POST['contact_sujet']; else $contact_sujet = ''; 
if ( isset($_POST['contact_destinataire']) ) $contact_destinataire = $_POST['contact_destinataire']; else $contact_destinataire = ''; 
if ( isset($_POST['contact_message']) ) $contact_message = $_POST['contact_message']; else $contact_message = ''; 

这是我的表格:

<form id='contact_form_mmt' action='<?php echo bloginfo("wpurl"); ?>/contact' method='post'>
  <input type='text' name='contact_nom' placeholder='Votre nom *' data-validation='length' data-validation-length='min3' data-validation-error-msg='<?php echo $text_too_short_or_empty; ?>'>  
  <input type='text' name='contact_prenom' placeholder='Votre prénom *' data-validation='length' data-validation-length='min3' data-validation-error-msg='<?php echo $text_too_short_or_empty; ?>'>
  <input type='text' name='contact_mail' placeholder='Votre mail *' data-validation='email' data-validation-length='min3' data-validation-error-msg='<?php echo $email_valid; ?>'>
  <select name='contact_destinataire'>
    <option value="contact@example.com|Information générales">Information générales</option>
    <option value="webmaster@example.fr|Problèmes liés au site">Problèmes liés au site</option>
  </select>
  <textarea name='contact_message' placeholder='Message *'data-validation='length' data-validation-length='min3' data-validation-error-msg='<?php echo $text_too_short_or_empty; ?>'></textarea>  
  <input type='hidden' name='sub' value='1'>  
  <input type='submit' value='envoyer'>
</form>

所有这些变量(如 $sub$contact_nom)都在我的本地服务器上重新加载页面时填充。它们在我的本地服务器上是空的。为什么会出现此问题以及如何解决?

[EDIT] 这是htaccess的内容,问题出在哪里?

SetEnv PHP_VER 5_4
Options -Indexes
ErrorDocument 404 /index.php
RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www.example.fr$
RewriteRule ^(.*)   http://www.example.fr/$1  [QSA,L,R=301] 

最佳答案

我建议将 $_POST 转储到您的 index.php 上,以查看 $_POST 是否包含值。 如果 No($_POST 为空) 那么在你的 Wordpress 模板中有一个重定向。 如果是($_POST 不为空) 那么您表单中的action url 是错误的。并尝试跟踪您将在何处使用 $_POST 的 url。

关于html - 发布变量在在线服务器上丢失,在本地工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40203781/

相关文章:

javascript - jQuery 加载本地文件

html - jQueryUI 'Blind' 效果在动画时引入页面流中断

JavaScript 文本框 "Scrubber"

php - 如何以 Symfony 形式创建和渲染对象数组

django - 为选定的单选按钮返回非类型对象

php - JavaScript 元素样式随动态 id 变化

javascript - 单击移动设备上的按钮调用电话号码

javascript - 有没有办法写入通过 Iframe 显示的外部 HTML 文件?

javascript - 如何为 React 函数保留状态文本

jquery - 如何使用 jQuery (javascript) 绕过 HTML 表单提交