2017-08-11 19 views
0

私は私の会社のウェブサイトの1つを編集しています。 Zendの仕組みにはあまり慣れているわけではありませんが、この問題の解決策を見つけることはできません。

我々は2つの異なるサイト、私は自由に編集して、上のテスト、ステージングサイト、および公衆が閲覧できるライブバージョンを持っています。新しいコントローラ/ビューを作成したとき、$ _GETデータを使用していくつかのフォームを処理しました。テスト終了時に期待どおりに機能しましたが、何らかの理由でプロダクション終了が機能しませんでした。少しのテストの後、私は$ _GETデータが実際に送信されていないことを知りました。したがって、私のスクリプトは(私の設計通りに)私を起動します。

URLはみかん次のようになります。

/admin/something/update?data=20 

私は通常どおりだから私は、$ _GETを確認してください。

if (isset($_GET) && !empty($_GET["data"])) { 
    // do something 
} else { 
    // redirect the user 
} 

それが必要のように何の$ _GETデータが存在しない場合、それは常に(リダイレクトデータに値が含まれていない場合)。

だから私はデバッグし、これは$ _GETは私がしますprint_rと私が得るすべては明らかに$ _GETデータを含むURLにもかかわらず、空の配列になった後のように見えるものであることを知ります。

それは、Zendの私の限られた知識(Iはかなり古い学校のPHPに私の編集を保つため)データをGETとPOST処理しますので、これまでの任意の光が幻想的になるかもしれません。ありがとう。

+0

RewriteRule . index.php?url=$1 [PT,L,QSA] 

あるいは、

RewriteRule ^(.*)$ %{ENV:BASE}/index.php [L] 

とGETの値を取得するために、あなたが使用する必要があり、どちらかが動作するはずです、追加して試すことができますZFを知っているのですが、もし私が推測しなければならないのは、あなたのmod_rewriteの規則に 'QSA'フラグがなく、クエリ文字列項目が転送されていないということですZFは$ _GETを使って何かを行い、それを上書きして、そのデータを取得するために何らかのメソッドを使うことを期待しています。 –

+0

['isset()&&!empty()'](https://stackoverflow.com/questions/4559925/why-check-both-isset-and-empty)の両方をチェックする必要はありません。 – Qirel

+0

'$ _GET'などの他**スーパーグローバル**常に\利用できるが、それが存在するかどうかをチェックすることは無意味です、それは扱うことになるので、でも私は、事実上すべてのためにISSET()と!空を()を使用してきた –

答えて

1

それはあなたの.htaccessファイルにいくつかの問題です。 SEOの書き換えルールが追加されることがあります。

あなたは「私はドン

if(isset($_GET['data']) && $_GET['data']){ 
      var_dump($_GET['data']);exit; 
     } 
+0

書き換えルールでした。私は最近、商業ウェブサイトで働くことに昇進したので、私にとってはちょっと外国人です。 –

関連する問題