美文网首页程序员干货Tech
目录规划意识的觉醒

目录规划意识的觉醒

作者: 麦田里的程序员 | 来源:发表于2014-07-16 12:47 被阅读1335次

目录规划意识的觉醒

访问index.php是正常网页,但访问index.html看到了什么?

访问模板文件访问模板文件

如上图所示,访问index.html会看到代码片段,而不是正常的网页,这会给用户带来困惑。所以应该只允许访问index.phpadd_article.htmlget_article.php等文件,其他文件一律禁止访问,比如index.html这种模板文件。

如何禁止访问呢?

把允许访问的文件放在一个目录,修改HTTP Server的根目录指向这里即可。

本来项目里没有目录,所有文件都放在一起,是这样的:

add_article_submit.php
get_article.html
get_article.php
index.html
index.php

改成下面的目录结构:

htdocs/
    add_article_submit.php
    get_article.php
    index.php
res/
    /layout/
        get_article.html
        index.html

然后找到nginx的配置文件,在这里:

  • Windows:C:\Wnmp\Conf\nginx.conf

  • Linux: /etc/nginx/sites-enabled/default

修改其中的server->root,重启nginx即可。如图所示:

修改nginx conf root修改nginx conf root

目录变了,包含就变了,记得index.php等php文件中的代码要改。以前是:

require_once __DIR__ . '/index.html';

要改成:

require_once __DIR__ . '/../res/layout/index.html';

然后访问index.html会出现404错误,即“不存在”。而访问index.php是可以的,如图所示:

index.html 404index.html 404

多个文件里都连了数据库,如果密码变了,每个地方都要改,怎么办?

同一件事情,重复做很多次,浪费了时间,是编程的大忌,违反了DRY原则(don't repeat yourself)。使用配置文件即可解决此问题。

配置文件用什么格式?打开PHP安装后的目录,会发现lib/php.ini文件,这是PHP的配置文件,由此可知PHP原生支持ini格式。本书也采用ini格式。配置文件当然也不应该让用户访问,所以单独建一个conf目录,现在项目目录结构如下:

conf/
    db.ini
htdocs/
    add_article.html
    get_article.php
    index.php
res/
    /layout/
        get_article.html
        index.html

db.ini的内容如下:

host="127.0.0.1"
port="3306"
dbname="reader"
charset="utf8"
username="root"
password="1"

然后每个php页面解析配置文件,连接数据库,执行SQL。代码如下:

$conf = parse_ini_file(__DIR__ . '/../conf/db.ini');
$dsn = 'mysql:host=' . $conf['host'] . ';port=' . $conf['port'] . ';dbname=' . $conf['dbname'] . ';charset=' . $conf['charset'];
$db = new PDO($dsn, $conf['username'], $conf['password']);

如图所示:

php解析iniphp解析ini

可以看到,如果数据库地址、用户名、密码改了,只用改db.ini即可,很方便。

代码下载:https://github.com/sinkcup/php-ebook-online-reader/tree/0.5.0

总结一下

我的技术水平

<table>
<tr>
<th>HTML</th>
<th>PHP</th>
<th>数据存储</th>
<th>HTTP协议</th>
<th>程序员的自我修养</th>
<th>装备</th>
<th>等级</th>
</tr>
<tr>
<td>语义化</td>
<td>让内容动起来</td>
<td>单机文件</td>
<td>GET、POST</td>
<td></td>
<td>PC + Windows</td>
<td>0.2</td>
</tr>
<tr>
<td></td>
<td>表现与业务分离</td>
<td></td>
<td>charset</td>
<td>Unicode</td>
<td></td>
<td>0.3</td>
</tr>
<tr>
<td></td>
<td>PDO</td>
<td>MySQL</td>
<td></td>
<td></td>
<td></td>
<td>0.4</td>
</tr>
<tr>
<td></td>
<td>目录规划</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>0.5</td>
</tr>

</table>

已解决的问题

  • 访问index.php是正常网页,但访问index.html看到了什么?

    用户看到了代码片段,这是不对的,目录规划隔离即可。

  • 多个文件里都连了数据库,如果密码变了,每个地方都要改,怎么办?

    谨记DRY,使用ini配置文件。当然还可以使用PHP array、PHP object、JSON,请自行了解。

  • 【锤子手机 Smartisan T1 正式发售版的实际使用体验如何?】

    喻梦萱:谢邀。。。 11日早上收到的,优先码来源是自己购买的发布会门票。总体感觉是…美哭了…非常非常精致。… http://zhi.hu/5h2M(分享自知乎)

待解决的问题

  • 单引号能保存吗?会导致什么后果?

    请按照截图进行实验。且听下回分解。

单引号实验保存1单引号实验保存1
单引号实验保存2单引号实验保存2

相关文章

  • 目录规划意识的觉醒

    目录规划意识的觉醒 访问index.php是正常网页,但访问index.html看到了什么? 如上图所示,访问in...

  • 觉醒的意识

    2018.5.20,是我真正意识觉醒的一天。这天,我听到一个很有智慧的前辈,在分享自己从什么都是不是,到一...

  • 意识的觉醒

    你现在是否对于人生依旧迷茫,但生活里却依旧有人过着你想要的生活,平静的生活里不乏潇洒的牛逼人物,而芸芸众生继续生活...

  • 意识的觉醒

    小年到,浓浓年味扑面而来。生活中意外和惊喜,真的不知道哪个先来。 前两天,孩子的班主任在群里发信息...

  • 意识的觉醒

    【001】活在当下 在陷入穷困之时,所有目标在于解决当前的温饱问题。未来不可知,哪怕有明确的预估收益,也是毫无触动...

  • 意识觉醒

    2012.12.21

  • 觉醒意识

    我正在房间里听歌,老妈突然从门缝里探出脑袋说:“你教我打字吧!” 刚开始我以为她只是图个新鲜,就没有放心上。但是经...

  • 意识觉醒

    什么是命运? 有些人说,是宿命和运气,事物由定数与变数组合进行的一种模式。 但我们的命运是我们可以觉知并且改变的。...

  • 觉醒意识

    有了意识觉醒的环境才能有觉醒意识之后才是生存,再之后才是大千世界。 甘肃杨的事情本来并没有引起吃瓜群众的关注,因为...

  • 意识觉醒

    意识觉醒这个创意挑战真的很适合我,意识觉醒。我正处于意识觉醒阶段,从以前的懵懵懂懂到现在开始有了追求,有了想法。 ...

网友评论

    本文标题:目录规划意识的觉醒

    本文链接:https://www.haomeiwen.com/subject/ljkstttx.html