PHP 的永久链接
Permalinks with PHP
我目前正在一个我从 SCRATCH 制作的网站上工作 :) 不管怎样,用户将能够创建帐户(登录和注册页面已经完成),然后他们将能够查看那里的个人资料。现在我 运行 遇到的问题是每个用户都需要有自己的个人资料 URL 的永久链接。我不知道该怎么做! :( 我所能找到的就是使用 Wordpress 为我做这件事,但我不想那样。我想只用 PHP 和 HTML/CSS 来做这件事。请帮帮我,谢谢你!:)
更新 1
谢谢你的回复,不过我还是有点困惑。现在,如果我使用 GET,是否真的会保存文件?永久链接究竟是如何工作的(抱歉,我很困惑!:O)?就像我创建永久链接时一样,创建一个新文件以及其中的代码?如果是这样,我会为此写什么?
更新 2
抱歉,我说明了我真正要问的问题。当用户创建一个帐户时,我希望它自动为他们创建一个永久链接(这将是一个新文件,对吗?),我该怎么做?
更新 3
好的,所以我基本上在想同样的事情。因此,当用户创建帐户时,这是执行的代码:
//Create Account Page
$inputquery = "INSERT INTO users username VALUES :username";
$datasend = $connection->prepare($inputquery);
$datasend->execute(array(':username'=>utf8_decode($username),)); //Inputs it into the database
$username = $_POST["username"]; //The username input, then lets say that the account was created with that
$userprofile = fopen($username . ".php", "w"); //Makes a file with the users info, a PHP function
$text = include ('base.php'); //Grabbing the base layout
fwrite($userprofile, $text); //Setting the base layout to the userprofile page
所以一旦它是一个代码就会在文件中。然后当页面加载时,所谓的 "base" 代码仍然存在,然后被用户的详细信息所取代。这是我对此的粗略尝试,它应该有效! :) 感谢您的所有帮助! :D
您可以使用 GET 请求,它将存储在 URL 中。您只需使用 $_GET['user']
访问它,url 将采用 my.site.on.the.net/user.php?user=3141
的形式。此 URL 可以存储在书签中、放在网页中或其他任何地方,它会 link 到该用户的个人资料。
这不会自动保存文件。您需要将用户信息存储在网络根目录之外的某个位置,然后使用 PHP 文件根据 ID 访问该信息。您不想存储整个网页;只存储该用户独有的信息(在 SO 上,这可能是他们的关于我、声誉、徽章等)
编辑: 简单示例(请注意,它没有任何密码保护或其他任何东西来防止任何随机的陌生人访问它)
user.php:
<?php
function getPoints(){
// get the number of points from your data source
}
function getName(){
// get the name from your data source
}
?>
<!DOCTYPE html>
<html>
<body>
<img src="logo.png" alt="logo" />
<h1>Hello, <?php echo getName();?>!</h1>
<p>You have <?php echo getPoints();?> points.</p>
</body>
</html>
在这个例子中,数据源只需要存储用户的名字和点数。单个 PHP 文件填充页面的其余部分。要创建新的用户帐户,您需要将用户的数据添加到您的数据源。
我目前正在一个我从 SCRATCH 制作的网站上工作 :) 不管怎样,用户将能够创建帐户(登录和注册页面已经完成),然后他们将能够查看那里的个人资料。现在我 运行 遇到的问题是每个用户都需要有自己的个人资料 URL 的永久链接。我不知道该怎么做! :( 我所能找到的就是使用 Wordpress 为我做这件事,但我不想那样。我想只用 PHP 和 HTML/CSS 来做这件事。请帮帮我,谢谢你!:)
更新 1
谢谢你的回复,不过我还是有点困惑。现在,如果我使用 GET,是否真的会保存文件?永久链接究竟是如何工作的(抱歉,我很困惑!:O)?就像我创建永久链接时一样,创建一个新文件以及其中的代码?如果是这样,我会为此写什么?
更新 2
抱歉,我说明了我真正要问的问题。当用户创建一个帐户时,我希望它自动为他们创建一个永久链接(这将是一个新文件,对吗?),我该怎么做?
更新 3
好的,所以我基本上在想同样的事情。因此,当用户创建帐户时,这是执行的代码:
//Create Account Page
$inputquery = "INSERT INTO users username VALUES :username";
$datasend = $connection->prepare($inputquery);
$datasend->execute(array(':username'=>utf8_decode($username),)); //Inputs it into the database
$username = $_POST["username"]; //The username input, then lets say that the account was created with that
$userprofile = fopen($username . ".php", "w"); //Makes a file with the users info, a PHP function
$text = include ('base.php'); //Grabbing the base layout
fwrite($userprofile, $text); //Setting the base layout to the userprofile page
所以一旦它是一个代码就会在文件中。然后当页面加载时,所谓的 "base" 代码仍然存在,然后被用户的详细信息所取代。这是我对此的粗略尝试,它应该有效! :) 感谢您的所有帮助! :D
您可以使用 GET 请求,它将存储在 URL 中。您只需使用 $_GET['user']
访问它,url 将采用 my.site.on.the.net/user.php?user=3141
的形式。此 URL 可以存储在书签中、放在网页中或其他任何地方,它会 link 到该用户的个人资料。
这不会自动保存文件。您需要将用户信息存储在网络根目录之外的某个位置,然后使用 PHP 文件根据 ID 访问该信息。您不想存储整个网页;只存储该用户独有的信息(在 SO 上,这可能是他们的关于我、声誉、徽章等)
编辑: 简单示例(请注意,它没有任何密码保护或其他任何东西来防止任何随机的陌生人访问它)
user.php:
<?php
function getPoints(){
// get the number of points from your data source
}
function getName(){
// get the name from your data source
}
?>
<!DOCTYPE html>
<html>
<body>
<img src="logo.png" alt="logo" />
<h1>Hello, <?php echo getName();?>!</h1>
<p>You have <?php echo getPoints();?> points.</p>
</body>
</html>
在这个例子中,数据源只需要存储用户的名字和点数。单个 PHP 文件填充页面的其余部分。要创建新的用户帐户,您需要将用户的数据添加到您的数据源。