以下のようなツリーを持つように、mod_rewrite を使用してサイトを構築しています。
+---css
| \---bootplus-responsive.min.css
| \---bootplus.min.css
| \---extra.css
+---views
| \---autolike.php
| \---controlpanel.php
| \---footer.php
| \---header.php
| \---home.php
\---app.php
\---controller.php
\---model.php
\---router.php
\---.htaccess
各ページは、header.php、controlpanel.php、footer.php などからなる /controlpanel でまとめられています。
Router.php
$this->routes = array(
"home" => "indexPage",
"controlpanel" => "controlPanel",
"autolike" => "autoLike",
"about" => "about",
"logout" => "logout"
);
(関連部分) Controller.php
private function loadView($view){
require("views/" . $view . ".php");
}
private function loadPage($view){
$this->loadView("header");
$this->loadView($view);
$this->loadView("footer");
}
//--- Page Functions
private function indexPage(){
$this->loadPage("home");
}
private function controlPanel(){
$this->loadPage("controlpanel");
}
private function autoLike(){
$this->loadPage("autolike");
}
private function about(){
$this->loadPage("about");
}
app.php
require("controller.php);
$app = new Controller();
実際には app.php?page=[page] にページが表示され、mod_rewrite で /[page]/ などに短縮されるという仕組みになっています。
controlpanel.php には、ページの読み込み時にデータベースからの情報が読み込まれるフォームがあり、データを更新するための送信ボタンがあります。(たとえば) update.php を作成して GET でデータを送信すると、だれでも update.php?username=[自分のユーザー名ではない]&email=[メール] など、他のユーザーのレコードを変更します。POST は mod_rewrite でも機能しないようです。誰でもアドバイスをもらえますか?
TL;DR: mod_rewrite が有効になっているときに、フォームからデータベースに情報を安全に送信するにはどうすればよいですか?