2017-01-20 2 views
0

私はWebアプリケーションを開発するためにPHPを学んでいます。 MVCモデルを使用して、$_GETを使用して、.htaccessファイル設定によって、コントローラとメソッドとしてURLにユーザ入力を取得します。しかし、通常の$_GET関数は、リンクをクリックしてdivを更新しようとしているときに機能しなくなっています。

それは、次の例のように.htaccessファイルがなくても動作します:

<a href="?grade=grade1">Grade 1</a> 

<?php $grade=$_GET['grade'];?> 

<div> <?php include ($grade.'.php');?> </div> 

私はjQueryのを試してみましたが、それは何らかの形で私のすなわちでは動作しません。私もボタンアクションを試みました。それは働いたが、私はまだリンクが良く見えると思う。上の例でMVCモデルで_GETを使用する方法はありますか?それを回避するための他の提案はありますか?私はウェブ開発に新しいです、私は簡単な解決策が欲しいです。 :)

ありがとう!

+3

https://en.wikipedia.org/wiki/File_inclusion_vulnerability –

答えて

0

あなたが使用している書き換えルールを表示するには、.htaccessファイルを投稿する必要がありますが、投稿したコード例は動作します。しかし、私はそれを使用することについて警告します。これはファイル包含脆弱性として知られています。つまり、誰かがそのGET変数に別のファイルを入力し、それがユーザーに表示されることを意味します。

ここでは、MVCの一般的な概要と、正しく使用する方法について説明します。

https://www.sitepoint.com/the-mvc-pattern-and-php-1/

(私は残念ながら、私は必要な評判を持っていない、コメントとしてこれを追加したい。)

+0

非常にありがとうあなたのコメントのために多く!ボタンアクションを使用してインクルードファイル名を変更する場合。 URLにファイル名が含まれないため、この問題は解決しますか?それとも、ファイルをインクルードして安全に保つ方がいいですか? – Cici

+0

ファイルをインクルードするためにユーザーが入力したものを絶対に使用しないことをお勧めします。あなたは$ _GET ['grade'] = 1-5またはそれに類するものを用意し、スイッチ()を使ってそれらの数字が何に対応しているかを判断することができます。 –

関連する問題