• ベストアンサー

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

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

  • PHP
  • 回答数2
  • ありがとう数0

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

  • ベストアンサー
  • 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

  • URLのパラメータを取得しリンクに渡すには?

    Javascriptで、URLのパラメータを取得し、リンクにパラメータを渡したいです。 例えば、現在のURLが、 http://www.hogehoge.com/hoge.php?page=hoge1だとします。 そのページに、様々なリンクがあるとします。 <リンク例> http://www.hogehoge.com/moge/moge.php http://www.hogehoge.com/boge/boge.php http://www.yahoo.co.jp/auctionxx.html このうち、/moge/以下のページへのリンクにのみ、自動で現在のURLのパラメータを渡したリンクにしたいです。 つまり、 http://www.hogehoge.com/moge/moge.php ↓ http://www.hogehoge.com/moge/moge.php?page=hoge1 というリンクにしたいです。 当然現在のURLにパラメータが存在しない場合は、そのままのリンクになります。 また、他のディレクトリや他のドメインのサイトにはパラメータを渡さず、変更せずにそのままのURLのリンクにしたいです。 <リンク例> http://www.hogehoge.com/moge/moge.php ○変更 http://www.hogehoge.com/boge/boge.php ×変更なし http://www.yahoo.co.jp/auctionxx.html ×変更なし よろしくお願いします。

  • ***.php?1 等というリンクをクリックすると、ページが自動的に生成されるPHP

    http://XXXXX.com/****.php?1 http://XXXXX.com/****.php?2 ↓ http://XXXXX.com/****.php?50 などというリンクをクリックすると、外部のファイルの一部分を読み込み、 ページに反映させてページを自動的に生成する方法を教えていただけない でしょうか? 急遽、ページのコンテンツの一部分がすべて異なるページを50枚ほど作ら なくてはならなくなってしまい、PHPで動的に作成出来ないものかと思っ てのことでした。 PHPはほぼ初心者で、本屋を回ってPHPの書籍を読みあさってみたのです が、どのような手法を用いているのか見当もつかず、困っております・・・ どなたかご教授いただけないでしょうか? (検索語句や、書籍を探す際のヒントをいただけるだけでも有り難いです)

    • 締切済み
    • PHP
  • ステータスバーにerror on pageのメッセージが出る原因

    私の制作した、ある公開しているサイトで、ページのテキスト部分や何もない部分にマウスを重ねると、ウィンドウの左下のステータスバーに「Error on Page」とでたり、ステータスバーにリンク先のアドレスは表示されているのにページアイコンが三角に「!」の物になっていて普通のIEアイコンが表示されません。 ページ自体は問題ないように見えるので、見ただけでは原因が良くわかりませんでした。ページにはJava ScriptやCGIが使われています。 どなたかご存知の方がいらっしゃれば是非、原因を教えてください。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • PHPでページネーション

    よくあるページネーションで、効率的な方法を探しています。 知恵をお持ちの方、ご教授くださいませ。自分でもやってみましたがこんがらがってわかんなくなってしまいました。 ←(一つ前のページ) 1 2 3 4 5 6 7 8 9 (次のページ)→ 形はこんな感じです。ヤフーとかグーグルの形です。 現在のページはリンク無し、現在のページが1の時は前へ行く矢印←はリンク無し、同様に最終ページの場合もそのページと→にリンク無しです。 現在のページより前後5ページを出力しますが、1ページ目の時は前が無いため後ろに10ページを出力、同様に最終ページの時は前に10ページ出力します。 つまり、常に当該ページも入れて11ページ出力します。しかしリストすべきページが10ページに満たない場合はこの限りではありません。 またこれはヤフーとかには無い機能ですが、前(または後ろ)に行く矢印と数字の間に、最後のページに行くリンクを作ります。 ←(一つ前のページ) ←←(TOP=1件目) 5 6 ~ 10 ~ 14 15  →→  → このような感じです。 現在考えた(参考にした)のはループで回してページ数とリンクを出力という感じですが、これだと要望をうまく満たせません。 $sql = (略; $result = $sql; $resultcount = $result->numRows();//結果件数 $limit = 10;//1ページに表示する件数 $TOTALresultcount = ($resultcount % $limit);//結果ページ数算出 $NOWPAGE = 1; if($TOTALresultcount >= 1){ for($PAGE_COUNTER = 0 ; $PAGE_COUNTER < $resultcount ; ){ $PAGE_COUNTER++; if($NOWPAGE = = $PAGE_COUNTER){ echo "$PAGE_COUNTER"; }else{ echo '<a href="xxx">'.$PAGE_COUNTER.'</a>'; } } php4です。よろしくお願いします。

    • ベストアンサー
    • PHP
  • シンボリックリンクでマルチサイトを実現

    全国向けのサイト構築を考えています。 トップページは、都道府県を選択するようにし、 都道府県のサイトは別ドメインで実現しようと思ってます。 <トップ> http://www.hogehoge.com <都道府県別> http://hokaido.hogehoge.com http://aomori.hogehoge.com : http://okinawa.hogehoge.com それぞれのデザインや機能などは同じなので、 シンボリックリンクでソースを一元化したいと思っています。 一元化はしますが、どの都道府県のページを開いてるのかは、区別しなければなりません。 どのように区別したらいいのでしょう?というのが質問です。 シンボリックリンクを作成し、それぞれのページで "__FILE__" を参照したところ、 元ソースのパスとなっていますので区別ができません。 簡単にできそうな気がするのですが・・・。

    • ベストアンサー
    • PHP
  • 数字.htmlについて教えてください。

    最近築いたのですが、●●●●●●.htmlで●←の部分が数字のhtmlのURLを見かけたりします。 例えばですが、 http://hogehoge.com/12345.html http://hogehoge.com/12346.html http://hogehoge.com/12347.html http://hogehoge.com/12348.html http://hogehoge.com/12349.html http://hogehoge.com/12350.html このように、大量のファイル数で「数字.html」という形式を見かけますが、一つひとつ、HTMLファイルを作成しているのでしょうか? ものすごく疑問です。 そして数字というのが疑問です。 SEO対策になるのですか?? さらに、何かHTML作成するツールやスクリプトなどが存在するのでしょうか? 教えていただけないでしょうか?

  • 辞書ツールに語句を登録

    語句は半角数字を含んだメルアドです。これを読みから入力すると半角数字の部分が全角になって困っています。どなたか解決策を教えてください。Win.XPです。

  • phpのpagerについて

    参考サイト http://enjoyjob.blog116.fc2.com/blog-entry-291.html にてpagerを作っているのですが、うまくできません。 DBに接続して、DBないのレコード数を表示させたいのですが、DBを読みこんでからがわかりません。 サンプルコードは以下です。 $bbs_query = mysql_query("SELECT COUNT(*) FROM `bbs` limit 15"); //全アイテム数 $totalItem = $bbs_query; //1ページあたりの上限 $parOnePage = 15; ・ ・ ・ 以下参考サイトの記述をし、表示するページにも http://enjoyjob.blog116.fc2.com/blog-entry-292.htmlにあるものを記入しました。 結果は PREVIOUS 1 NEXT とでるだけでリンクもできずページ数も増えません。 bbsテーブルにはレコード数は30程あります。 お分かりの方がいらっしゃいましたらご教授いただければと思います。 宜しくお願いします。

    • 締切済み
    • PHP
  • トップページの前に期間限定のトップページ

    表題の件ですが、 http://www.hogehoge.com/ へアクセスした人を トップページ(index.php)の前に期間限定のトップページ(2013.php)を表示させたいのですが、htaccessで 2013.phpを優先にしてしまえば、2013.phpが最初に表示されますが、そこから、index.phpに移動したあと、Home へリンクすると、http://www.hogehoge.com/index.phpへリンクしたいのですが、 再度、http://www.hogehoge.com/2013.phpが表示されてしまします。 最初にアクセスしたら http://www.hogehoge.com/2013.php その中から、 http://www.hogehoge.com/index.phpへ移動して、 あとはhttp://www.hogehoge.com/へアクセスしても、 http://www.hogehoge.com/index.phpが優先で表示させる方法は無いのでしょうか? 恐れ入りますが、お分かりになられる方ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • jquery mobile/指定のURLに飛ばない

    今スマートフォンのトップページのロゴに自分のサイトのURLをリンクしているのですが、【error loading page】とでてリンク先に飛ぶ事が出来ません。 たとえば【a.com】というドメインを持ってたとして、ナビ部分のHOMEに【a.com】をリンクしてあるボタンを置いたとします。 それを押すと、【error loading page】と表示されてトップページに飛ぶことが出来ません。 どうすればこのエラーは解消されますでしょうか??

    • ベストアンサー
    • AJAX

専門家に質問してみよう