• ベストアンサー

phpの$_GET['page']で不具合

サイトのページに[http://hogehoge.com/db_search/?page=○○○]というリンクを貼ってます。 リンク先には$_GET['page']という関数を使って○○○という部分を取り出し、 その語句を元にデータベースから検索を行なってデータ引き出して表示しています。 この○○○という部分が半角数字以外で始まるものであれば理想通り機能するのですが、 半角数字でから始まる語句のみ[http://hogehoge.com/db_search/○○○]というページに飛ばされてしまい上手く機能しません。 さらに、この時例えば[123acb]で無くてはならないものが[123]と数字以降のものが省略されて[http://hogehoge.com/db_search/123]となってしまいます。 日本語や英字、記号、全角数字で始まる語句では機能するのに、半角数字から始まる語句だけ機能しないのでさっぱり原因がわからず困っています。 何か原因につながるようなものが分かる方がいましたら教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • iioi
  • ベストアンサー率26% (22/84)
回答No.2

>リンク先には$_GET['page']という関数を使って○○○という部分を取り出し、 これ関数ではない。 変数。 >この○○○という部分が半角数字以外で始まるものであれば理想通り機能するのですが、 >半角数字でから始まる語句のみ[http://hogehoge.com/db_search/○○○]というページに飛ばされてしまい上手く機能しません。 GETパラメータの値がセキュリティー的に問題ないかも含めてチェック処理すらしていないダメソース?

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

httpd側でなんらかのRewriteRuleが設定されているのでないでしょうか?

poniponi69
質問者

補足

調べてみたらWordpressがRewriteRuleを作っているようでした。 初心者でどこが影響しているのかちょっとわからないので教えていただけないでしょうか? また、どのように書き換えるのがよいのでしょう? # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

関連するQ&A