【发布时间】:2014-07-24 18:57:36
【问题描述】:
我在学习网站结构应该如何正确时遇到问题。我的意思是如何对页面进行编码以及文件夹结构应该如何。
目前,当您想转到另一个页面时,我正在使用 PHP 中的 GET 变量浏览我的网站,因此我总是加载 index.php 文件。我会像这样加载我想要的页面:
$page = "error";
if(isset($_GET["page"]) AND file_exists("pages/".$_GET["page"].".php")) {
$page = $_GET["page"];
} elseif(!isset($_GET["page"])) {
$page = "home";
}
还有这个:
<div id="page">
<?php
include("pages/".$page.".php");
?>
</div>
我这样做的原因是因为它使创建新页面变得更加容易,因为我不必像这样在每个文件中链接样式表和 javascript:
<head>
<title>
Website Name
</title>
<link href='http://fonts.googleapis.com/css?family=Lato:300,400' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="css/style.css" type="text/css">
<link rel="shortcut icon" href="favicon.png"/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js" type="text/javascript"></script>
</head>
如果我试图从 pages 文件夹内的文件夹中访问页面以防止混乱,这样做会出现很多问题,因为 URL 看起来不正常(“?page=apanel/app”)。
显然,这不是唯一的方法,我找不到正确的方法,因为我确信网站不会在每个文件中链接样式表,因为如果你更改了这将非常糟糕一个文件名或需要添加另一个文件,您必须在每个文件中更改它。
如果有人能告诉我它实际上是如何完成的,或者向我指出一个很棒的教程。
感谢您的宝贵时间 :)
【问题讨论】:
-
对于正确的 URL,请查看 mod_rewrite。这可以使用 get vars 将 /my/page/something.html 之类的漂亮 url 转换为 /index.php。
-
仅供参考,使用来自
$_GET的未经处理的用户数据,就像这样打开path traversal attacks。路径遍历攻击是一种极为常见的攻击类型,所有站点都应努力保护自己免受攻击。
标签: php html css structure directory