ホームページ  >  記事  >  バックエンド開発  >  プロジェクトを Linux に変更した後、$_GET[] 入力パラメータはデフォルトで URL コード化されますか? ? ?

プロジェクトを Linux に変更した後、$_GET[] 入力パラメータはデフォルトで URL コード化されますか? ? ?

WBOY
WBOYオリジナル
2016-12-01 00:25:421332ブラウズ

判明しました

サーバー: Win2003 + IIS は問題なく正常に動作します
ローカル: Win10 + Apache および Win10 + nginx は問題なく正常に動作します

最近 Alibaba Cloud CentOS7.2 と nginx1.10.2 を置き換えたプロジェクトで問題が発生しました。

具体的な質問 (プロジェクトは ThinkPHP3.2.3 で書かれています)

検索用のページにフォームフォームがあり、ボタンをクリックすると検索用のデータを取得します

リーリー

コントローラーで I('key') ($_GET['key'] に似た入力変数を取得する TP でカプセル化されたメソッド) を使用してこのキーワードを取得し、ページ番号リンクで同様の URL を生成します。以下へ

リーリー

上のページ番号リンクをクリックしてページをめくると:

  • ローカルでキーを取得する方法、または元のサーバーからキーを取得する方法に関係なく、キーは文字列「Liu」です

  • しかし、新しいサーバーでは、取得されたキーワードは文字列「%e5%88%98」です

その結果、この種の検索を含む私のオリジナルのプログラムはすべて無効になり、ページをめくることができなくなりました。

私が試した解決策

  • I('key') はデータを取得するときに urldecode を使用しますが、1 ページしかめくることができないことがわかり、何度めくってもキーは再度 URLencode されます。無限に URL コード化されます

  • URLパターンは変更できないので、この方法は諦めました

なぜですか?

Win+IIS Win+nginx は問題ありません。linux+nginx を使用するとこの問題が発生するのはなぜですか?これは私、Linux、または nginx のせいですか?

プロジェクトを通常の状態に戻すことを急いでいますので、回答を手伝ってください

返信内容:

判明しました

サーバー: Win2003 + IIS は問題なく正常に動作します
ローカル: Win10 + Apache および Win10 + nginx は問題なく正常に動作します

最近 Alibaba Cloud CentOS7.2 と nginx1.10.2 を置き換えたプロジェクトで問題が発生しました。

具体的な質問 (プロジェクトは ThinkPHP3.2.3 で書かれています)

検索用のページにフォームフォームがあり、ボタンをクリックすると検索用のデータを取得します

リーリー

コントローラーで I('key') ($_GET['key'] に似た入力変数を取得する TP でカプセル化されたメソッド) を使用してこのキーワードを取得し、ページ番号リンクで同様の URL を生成します。以下へ

リーリー

上のページ番号リンクをクリックしてページをめくると:

  • ローカルでキーを取得する方法、または元のサーバーからキーを取得する方法に関係なく、キーは文字列「Liu」です

  • しかし、新しいサーバーでは、取得されたキーワードは文字列「%e5%88%98」です

その結果、この種の検索を含む私のオリジナルのプログラムはすべて無効になり、ページをめくることができなくなりました。

私が試した解決策

  • I('key') はデータを取得するときに urldecode を使用しますが、1 ページしかめくることができないことがわかり、何度めくってもキーは再度 URLencode されます。無限に URL コード化されます

  • URLパターンは変更できないので、この方法は諦めました

なぜですか?

Win+IIS Win+nginx は問題ありません。linux+nginx を使用するとこの問題が発生するのはなぜですか?これは私、Linux、または nginx のせいですか?

プロジェクトを通常の状態に戻すことを急いでいますので、答えを手伝ってください

TPページングのソースコードにURLを生成する際にurlencode操作があります

リーリー

解決策: ページング クラスをインスタンス化するときに、検索パラメーターを 3 番目のパラメーターとして渡すことができます。詳細については、Page クラスの構築メソッドを参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。