2011-04-03 25 views
0

我正在爲一個學生組織設置一個網頁,其中包含圖片和內容。帶有數據庫內容的模板頁面的PHP鏈接

第一頁只是html和css。它有一張圖片,下面有一個名字和一個鏈接到完整的生物鏈接到「bio.php?id =」,然後在我的SQL數據庫中的那個人的ID。

現在我正在嘗試使php頁面允許使用用戶ID的簡單模板php頁面。不幸的是,當我做所有我認爲正確的事情時,我會遇到一個奇怪的錯誤。

這裏是我的代碼

<html> 
<body> 
<?php 

//connection to database 
//specify database 

$id= $GET['id']; 

$sql = " SELECT * FROM Members_table WHERE Id='$id' "; 
$result = mysql_query($sql) or print ("Can't select entry from table bloghomepage.<br />" . $sql . "<br />" . mysql_error()); 

WHILE($row = mysql_fetch_array($result)) { 
    $name = $row['Name']; 
    $position = $row['Position']; 
    $major = $row['Major']; 
    $hometown = $row['Hometown']; 
    $awards = $row['Awards']; 
    $bio = $row['Description']; 
    $act = $row['Activities']; 
    $pic = $row['Picture']; 
    $misc = $row['other']; 


    ?> 
    <h1><?php print $name; ?></h1> 
    <p><?php print '<img src="' . $pic . '"'; ?> 
    <?php } ?> 
</body> 
</html> 

這是我看到在我的網頁: 「$ SQL」。

「mysql_error());而($行= mysql_fetch_array ($ result)){$ name = $ row ['Name']; $ page_id = $ id; $ position = $ row ['Position']; $ major = $ row ['Major']; $ hometown = $ row ['Hometown']; $ awards = $ row ['Awards']; $ bio = $ row ['Description']; $ act = $ row ['Activities']; $ pic = $ row ['Picture']; $ misc = $ row ['other'];?>

這就是所有。任何想法我做錯了什麼?

+2

你應該閱讀有關[SQL注入](http://www.owasp.org/index.php/SQL_Injection)以及爲什麼[錯誤消息可以披露敏感信息](http://www.owasp.org/index.php/Information_Leakage)。 – Gumbo 2011-04-03 16:33:57

+0

正如@Gumbo所述,您需要了解SQL注入問題。有關更多信息,請參閱現有的[停止SQL注入的最佳方法](http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php)問題/答案。 – 2011-04-03 16:38:21

回答

1

你只是沒有在你的主機上啓用PHP。

提示:總是請參閱頁面源代碼,而不是瀏覽器呈現的圖片。它的HTML代碼是PHP腳本的結果,因此,您必須檢查HTML代碼,而不是從它渲染的圖片。

+0

以及我在本地運行文件(儘管我也嘗試上傳它)。所以我需要找到允許他允許php用於該數據庫或一般的地方?其他的PHP頁面正在同一個網站上工作...... – 2011-04-05 08:30:45

+0

@Colby只是讓你可以運行一般PHP文件的東西。一個安裝了php解釋器的web服務器。 – 2011-04-05 10:13:31

1

PHP沒有被解析,大概是因爲沒有在您的Web服務器中設置必要的模塊/內容處理程序。

0

它不直接相關的話題,但你可能想在一個查詢再使用它之前投的GET參數的值作爲一個整數,以防止基本的SQL注入

$id = intval($_GET['id']);