【发布时间】:2012-01-02 22:04:30
【问题描述】:
我有一个数据库,其中包含一个名为 songs 的表,其中包含一个字段 title。
现在如果我的网址是http://www.foo.com/songs/xxx(xxx = 歌曲的标题),
apache 正在默默地重定向到一个类似于:/song.php?title=xxx 的页面。
为了修饰 URL,我将空格转换为下划线(因为我知道某些浏览器显示 %20 而不是空格,而不是 %20really%20user%20friendly%20ya%20know%20what%20i%20mean)。
如果标题包含空格和下划线(例如DJ_underscore fx)并且脚本将其转换为DJ_underscore_fx sql,则会出现问题:
select * from songs where songs.title=xxx
找不到。
这是更具体的草图:
- 脚本获取数据库中的不同标题
- 将所有空格转换为下划线(例如
name_of the song->name_of_the_song) - 将它们作为链接回显(例如
<a href="/songs/name_of_the_song">name_of_the_song</a>) - 用户点击链接并请求文档
- apache 正在静默重定向(例如
/songs/name_of_the_son->/song.php?title=name_of_the_song) -
song.php 获取特定数据(例如
select * from songs where songs.title=name_of_the_song)
好的,您看到数据库中没有看起来像 name_of_the_song 而是 name_of the song 的条目。
如何管理整体,以使我的 URL 保持清晰,并且 title 字段不限于一定数量的值(可以有空格、下划线、破折号,以及任何东西)?
【问题讨论】:
标签: php sql url user-experience