2013-09-21 168 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'];