2014-09-30 36 views
-3

當我嘗試在我的網站輸入頁面的代碼我得到這個錯誤隨着從Earth.php在線路14

注意:未定義的變量:ID在C:\ Users \用戶名\桌面\文件夾\ htdocs中\包括\ Earth.php上線14

php文件看起來像這樣在編輯器中

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

session_start(); 

$verbindung = mysql_connect("localhost","root","Palmen162"); 
mysql_select_db("lan"); 

if(isset($_SESSION['id'])) { 
// do the following query 
} 

mysql_query("UPDATE users SET ally='3' WHERE id='{$id}'"); 
?> 
+2

是什麼mysql_error()說什麼?你的答案在其輸出中。 – 2014-09-30 12:57:33

+1

您的代碼有很多問題(使用不建議使用的數據庫函數構建,例如SQL注入),但最大的問題是您沒有執行任何錯誤檢查或報告。 mysql_connect,mysql_select_db或mysql_query中的任何一個都可能失敗,但是您不打擾檢查是否有任何失敗。 – GordonM 2014-09-30 12:57:35

+0

在嘗試使用它的值之前,您從不定義'$ id'也不設置 – 2014-11-14 15:58:43

回答

2

確保你在你的PHP文件的頂部有session_start()

而且經常檢查值的存在:

if(isset($_SESSION['id'])) { 
    // do the following query 
} 

強制性注:

Please, don't use mysql_* functions in new code。他們不再維護and are officially deprecated。請參閱red box?請改爲了解prepared statements,並使用PDOMySQLi - this article將幫助您決定哪個。如果您選擇PDO,here is a good tutorial

而且總是不忘記關閉錯誤報告:

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
+0

由於沒有錯誤檢查,因此代碼可能因與mysql有關的任何其他原因而失敗。你可能是對的,這是問題所在,但OP有可能沒有把session_start調用放在問題中。 – GordonM 2014-09-30 13:00:36

+0

@GordonM多數民衆贊成在我的想法,因爲它沒有添加在OP的代碼,session_start缺失 – Ghost 2014-09-30 13:01:20