2016-07-20 5 views
0

GETパラメータを含むリンクにPOSTフォームを送信すると問題が発生します。GETパラメータを含むリンクにPOSTフォームを送信

問題は私のhtaccessファイルから来たと思います。

ここに私のhtaccessファイル:

Options -MultiViews 

RewriteEngine On 
RewriteBase/
# do not do anything for already existing files 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule .+ - [L] 

RewriteRule ^create$ create.php [L] 
RewriteRule ^delete$ delete.php [L] 
RewriteRule ^error$ error.php [L] 

RewriteRule ^([\$\.A-Za-z0-9_-]+)$ fetch.php?fetch=$1 [QSA,L] 
RewriteRule ^([\$\.A-Za-z0-9_-]+)/make$ fetch.php?fetch=$1&make=do [QSA,L] 
RewriteRule ^([\$\.A-Za-z0-9_-]+)/made$ fetch.php?fetch=$1&made=done [QSA,L] 

DirectoryIndex index.php 

マイPOSTフォーム:

<form action="<?=$param->getsite("url")?>/<?=$product_link?>/make" method="post"> 
    <input type="hidden" name="makeit" value="yes"> 
    <input type="hidden" name="another" value="other"> 
    <input type="submit" value="Let's make it" class="btn btn-primary btn-large"> 
</form> 

メイクページ(このページに提出POSTフォーム):

if(isset($_POST["makeit"]) && $_POST["makeit"] == "yes") { 
    die("Work !"); 
} 
print_r($_REQUEST); 

print_r($_REQUEST);返品のみ[make] => "do"(GETパラメータ)、POSTフォームについては何も返されません。このロジックでは

+0

は、あなたが '/ var'ディレクトリ – PseudoAj

+0

からエラーログを投稿することができ、私はhtaccessファイルを知っているが、からの回答はありません[この質問](http://stackoverflow.com/questions/19796522/php-method-post-stopped-working-after-i-added-this-htaccess-why)リダイレクトの「死」データを「死滅させる」。 .. – FirstOne

+0

@PseudoAjエラーログはありません! –

答えて

1
if(isset($_POST["makeit"]) && $_POST["makeit"] == "yes") { 
    die("Work !"); 
} 
print_r($_REQUEST); 

、それは$_REQUESTはどんなPOSTデータが含まれないことが正しい動作です。あなたのスクリプトは、あなたが尋ねたことを正確に行っています。

リクエストにPOSTパラメータがある場合、if(isset(...))テストに合格し、die("Work")になります。そのため、POSTパラメータを使用したリクエストは決してprint_r行に届きません。そのため、その印刷行にGETパラメータだけが表示されます。

あなたのPOSTのparamsを見たい場合は、あなたが何かを行う前に印刷:

print_r($_POST); 
if(isset($_POST["makeit"]) && $_POST["makeit"] == "yes") { 
    die("Work !"); 
} 
+0

die( "work!");決して到達しなかった!それを見るためにPOSTは検出されませんでした... –

+0

その行に到達しない場合は、 'makeit'パラメータが' $ _POST'にないか、 'yes'と等しくないことを意味します。私はあなたの2番目の文を理解していません。 – BeetleJuice

+0

'makeit'パラメータは' FORM'にありません。コードに書いて 'yes'と同じように、私の問題はここにあります!それは今私の主な問題です...なぜ届かなかったのですか?私の質問をよく読んでください。 –

関連する問題