php - htaccess 和变量 _POST

标签 php html .htaccess

我有一个 _POST 变量的问题,它在 URL 重写和重定向后为空。

HTML:

            <article class="span6">
                <textarea  id="msg" rows="3" cols="40" name="message" placeholder="Message">Détails</textarea>
            </article>

            <article class="span6">
                <input type="text" name="adresse" id="adresse">
                <input size="100" type="text" name="name" id="name" placeholder="Nom">
                <input type="text"  size="30" id="email" name="email" placeholder="Adresse e-mail">
                <button type="submit" name="submit" id="submit" class="btn btn-renova-alt add-top-half">Send message</button>
            </article>

            </form>

PHP:

<?php
if($adresse != "" ){

}
else{
if(isset($_POST['submit']))
{
$to = "daniel@example.com";
$subject = "Email from";
$name_field = stripslashes($_POST['name']);
$email_field = $_POST['email'];
$message = stripslashes($_POST['message']);
$body = "<html>\n";
$body .= "<body style=\"font-family:Verdana, Verdana, Geneva, sans-serif; font-size:12px; color:#666666;\">\n";
$body .= "From: $name_field <br/> E-Mail: $email_field <br/> Message: <br/> $message";
$body .= "</body>\n";
$body .= "</html>\n";

$headers  = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\n";
$headers .= 'Reply-to: '.$name_field. '<'.$email_field.'>' . "\n" ;
$headers .= 'Return-path: '.$name_field. '<'.$email_field.'>' . "\n" ;
$headers .= 'From: MGS < contact@example.com >' . "\r\n";
$name_field = stripslashes($name_field);
$message = stripslashes($message);
mail($to, $subject, $body, $headers);
unset($name_field);
unset($email_field);
unset($message);
}
else
{
echo "Failure!";
}
}
?>

访问权限:

RewriteEngine on
#RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
#RewriteCond %{HTTP_HOST} ^www\.example\.com$
#RewriteRule ^/?$ "https\:\/\/www\.example\.com\/" [R=301,L]
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

URL 被正确重写,但我的 POST 变量得到一个空值。 PS:我没有通过

的形式得到任何过去的变量

你有解决办法吗? 谢谢

最佳答案

要么在提交 POST 请求时不重定向:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} !POST [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

或者确保表单的操作是完整的完整 URL:

<form method=POST action="https://www.example.com/submit-whatever">

关于php - htaccess 和变量 _POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20106377/

相关文章:

php算法打印aa aaa ab aab直到zzz

.htaccess - 带有 .htaccess 的友好 URL 不工作...和 ​​stackoverflow URL 样式

apache - 代码点火器.htaccess : Give public access to all files and folders inside the 'public' folder

来自 root 用户的 PHP,mkdir 权限被拒绝

php - PDO->bindParam、PDO->bindValue 和 PDO->closeCursor

php - CSS 文件未在 php 索引和 header 中读取

html - 使用 ARIA 将 HTML 文本标记为装饰性的正确方法

html - 如何像金字塔一样按行对齐列表项?

javascript - 在 Overwolf 中设置窗口位置

php - 用于自定义脚本的 Wordpress RewriteRule