如何在一个不存在的页面上显示信息?


How can I display information on a page that doesn't physically exist?

我用html和jquery制作了我的搜索表单。当我在搜索字段中输入一个名称并单击search时,它会检查我指定的MySQL数据库,并在搜索字段中显示包含文本的任何名称。url是localhost/players.html,因为我现在正在apache上测试它,它是一个游戏服务器玩家统计页面。

我的结果显示了我想要的结果,在一个表中,列中显示了某些信息。

当点击一个结果时,我想在一个新页面上显示玩家统计数据,但我不想为每个注册玩家创建和存储数千个页面。所以我想让它创建一个虚拟页面,或者类似的东西。在链接被点击的地方,URL将是/players/PlayerName.html或者如果这是不可能的也许是players.php?action=getstats(PlayerName)我真的不知道如何做到这一点,或者如果它是可能的。

我想让它工作,如果我输入www.myurl.co.uk/players/PlayerName.html,它会显示统计页面的播放器,没有实际存在的html页面。

像这样做

创建一个名为"player.php"的页面,该页面将接收参数UserID。

所以在你的高分表中为每个玩家添加链接指向这个页面,参数UserID

<a href="/player.php?player_id=xxxxx">Player</a>
当点击

时它会转到player。php你可以通过全局$_GET变量获取参数,就像这样

$player_id = $_GET["player_id"]

在页面中选择用户的数据

$sql = "select * from player_stat where UserID = " . $player_id;

在添加到查询之前,请记住mysql_escape $player_id,以避免SQL注入

这是一种简单的方法,你也可以用URL重写apache模块,以获得友好的URL,如/player/stat/nickname

需要使用PHP

例如,你将发送每个结果到player.php?id=PLAYER_ID,在该页面上,您需要使用请求的id从数据库获取该播放器信息

检查以下链接,使您更方便

http://www.w3schools.com/php/php_mysql_intro.asp

http://www.w3schools.com/php/php_get.asp

这是使用mod_rewrite完成的,这是一个根据模式重写url的模块。您经常将这些模式输入到一个名为"。

例如:

RewriteEngine on
RewriteRule ^players/([^/]+).html.zip /search.php?playername=$1 [L]

如果你去"/players/MikeRoberts.html",那么你的PHP脚本"search.php"将收到值"MikeRoberts"(你可以使用$_GET['playername']访问)

记住:你可能需要在你的服务器上启用mod_rewrite。参见:如何在Apache 2.2中启用mod_rewrite或使用Google查找如何做到这一点。