2014-09-29 102 views
-7

我的網頁工作正常,直到我添加了這段代碼,我無法弄清楚它有什麼問題。這段代碼爲什麼會讓我的頁面變爲空白?

<? 
if (isset($_POST['credclick'])){ 
$amount=$_POST['credits'] 
mysql_query("UPDATE users SET points = points+".$amount." WHERE id = '".$username."'"); 
echo"<p>Credits Added</p>"; 
} 
?> 

$ username是從頁面頂部的會話定義的。

$username=$_SESSION['username']; 
+2

1.請激活錯誤報告,然後重試。 2.請閱讀關於SQL注入。 – lxg 2014-09-29 20:05:06

+0

你確實需要Google'SQL注入'。你的網站很容易被破解。 – ceejayoz 2014-09-29 20:05:13

+1

[請勿使用'mysql_ *'函數](http://stackoverflow.com/q/12859942/1883647),並查看錯誤日誌。 – ajp15243 2014-09-29 20:05:24

回答

4

語法錯誤可能: 在$amount=$_POST['credits']末添加一個分號來表示語句結束。

變化$amount=$_POST['credits']$amount=$_POST['credits'];

至於其他的都表示,你很容易受到惡意的SQL注入,所以要解決這個問題,一個)停止使用mysql_,並使用PDOmysqli_或至少是與淨化你的聲明是這樣的:

$amount = htmlentities($_POST['credits'], ENT_QUOTES);$amount = mysql_real_escape_string($_POST['credits']);

最佳做法雖然是切換數據庫連接類型。

+3

至少指出你添加了';'。快速瀏覽看起來像兩個版本是相同的。但是爲了捕捉錯誤而+1。 – 2014-09-29 20:06:17

+0

同意,你應該*總是*解釋代碼片段之間的差異,即使它看起來很明顯。 – ajp15243 2014-09-29 20:07:33

+0

是的,沒錯。有時我把這些小事看作是理所當然的,每個人都應該接受... – Rasclatt 2014-09-29 20:07:50

相關問題