我正在使用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
每个页面都与/ controlpanel组合在一起,包括header.php,然后是controlpanel.php,最后是footer.php等。
Router.php
$this->routes = array(
"home" => "indexPage",
"controlpanel" => "controlPanel",
"autolike" => "autoLike",
"about" => "about",
"logout" => "logout"
);
(Relevent部分)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] / etc,我希望你能理解到目前为止!
在controlpanel.php上,有一个表单在页面加载时填充了数据库中的信息,然后有一个提交按钮来更新数据。我想不出安全更新数据的方法,因为如果我(例如)创建update.php然后用GET发送数据,任何人都可以去update.php?username = [不是他们的用户名]& email = [一些电子邮件]等,并改变任何人的elses记录。 POST似乎也不适用于mod_rewrite。任何人都可以给我任何建议吗?
TL; DR:如何在启用mod_rewrite时将信息从表单安全地发送到数据库?
答案 0 :(得分:2)
您想要的是身份验证和权限系统。要求用户登录。建立用户可以做什么或不能做什么或访问的权限。 检查每个请求是否允许用户执行他将要执行的操作。如果他发送到update.php?username=foobar
,请检查是否允许他更改有关用户名foobar
的任何内容并拒绝请求是他不是。