2013-09-21 123 views
4

我正在尝试为我的网站合并一个公共配置文件页面。基本上我有数据库的所有设置和editprofile和东西。它的所有工作100%正确,包括改变你的照片。公共用户配置文件页面

我想要做的就是让这个文件“profile.php”使它成为这样,例如,如果你有这样的链接。

http://local.com/profile.php?id=8

它会给你带来用户与用户ID 8和显示信息。

我在想我可以让它SELECT * FROM users WHERE id ='$ userid'。

我使用$ id作为查看页面的人的用户标识符,但是我必须让$ userid变量包含您正在查看的任何配置文件的标识符。

接下来我可以做这样的事情

$id=$_SESSION['id']; 
$result3 = mysql_query("SELECT * FROM users where id='$userid'"); 
while($row3 = mysql_fetch_array($result3)) 
{ 
$username=$row3['username']; 
$email=$row3['email']; 
$firstname=$row3['firstname']; 
$lastname=$row3['lastname']; 
} 

我想我的问题是我怎么会做这么$用户ID等于任何个人资料您正在查看并使它这样的链接profile.php? userid = 8会将您带到用户8.

任何人有想法? :)

+2

'editprofile和东西。它的所有工作正常100%,包括改变你的照片哇你是否确定你有剩下的工作,但你不知道如何使用'$ _GET ['id']'? – Prix

+0

自9AM以来,我一直在编码,现在1:05 AM。我不是很清楚,头脑也很痛,但我只想在睡觉之前完成这件事。 –

+0

@Prix - 也在使用deprecate库的曲线上。 –

回答

3

最简短的回答是

$userid = mysql_real_escape_string($_GET['id']); 
$result3 = mysql_query(....); 
//.... 

答案的更长的版本是,因为它已被弃用,并将在新的版本中删除你不应该使用的mysql_query。你可以移动到PDO或mysqli。假设您想要坚持传统函数mysql_ *,您需要使用mysql_real_escape_string来保护自己免受SQL注入攻击。但是,如果不恰当地使用mysql_real_escape_string将使您无法进行注射。

+0

$ _GET ['id']不会获取登录用户的ID吗? –

+0

不,$ _GET ['id']将从链接获取输入。例如:http://localhost/profile.php?id = 8 < - 此 – invisal

+0

谢谢!这是完美的工作,如果我回声$用户名显示正确的数据!谢谢!顺便PDO和mysqli是什么意思?我将如何转换它。本周我才开始学习PHP,而且我没有太多的MySQL经验。这是我的第一个大型PHP项目。但是,嘿,我们都必须从某个地方开始,对吧?如果你能告诉我有关PDO和mysqli的信息,我会很感激,但我明白如果你没有时间。谢谢你的帮助! –

0

$_GET['$variable'];使用此方法从URL栏中获取数据。如果您在表单中使用post方法,那么请使用$_POST['$variable'];