2015-04-24 21 views
0

我想讓用戶上傳我的網站的個人資料圖像。文件上傳部分工作正常(雖然沒有阻止他們上傳非圖像文件)。然而,我不能得到它來更新mysql數據庫中的「配置文件」行。我認爲它與$ _SESSION ['user_id']有關,但我不確定。任何想法爲什麼它不會更新行?PHP更新行函數

<?php 
if(isset($_POST['submit'])){ 
$temp = explode(".",$_FILES["file"]["name"]); 
$newfilename = ('ProfileImage') . rand(1,99999) . '.' .end($temp); 
move_uploaded_file($_FILES['file']['tmp_name'],"images/profile/" . $newfilename); 
      $con = mysqli_connect("localhost","root","","testsite"); 
      $q = mysqli_query($con,"UPDATE user SET profile = '".$newfilename."' WHERE username = '".$_SESSION['user_id']."'"); 
} 
?> 
     <form action="" method="post" enctype="multipart/form-data" name=""> 
        <input type="file" name="file" required> 
        <input type="submit" name="submit" value="Update Image"> 

      </form> 

以防萬一,你需要看到這一點,這就是「的functions.php」頁面,$ _SESSION [「user_ID的」]定義:

<?php 

@session_start(); 

function loggedin(){ 
if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id'])){ 
return true; 
} else { 
return false; 
} 
} 

function getuser($id, $field){ 
$query = mysql_query("SELECT $field FROM user WHERE UserID='$id'"); 
$run = mysql_fetch_array($query); 
return $run[$field]; 

} 

?> 
+1

請[停止使用'mysql_ *'函數](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。他們不再被維護,並[正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。瞭解[準備的陳述](http://en.wikipedia.org/wiki/Prepared_statement),並使用[PDO](http://jayblanchard.net/demystifying_php_pdo.html)。 –

+0

@JayBlanchard是的,我知道我真的需要這樣做,但那是什麼導致我的問題? –

+0

*沒關係。*您實際上是使用'mysqli_'和'mysql_'函數混合API的。這是行不通的。 –

回答

0

我假設你的錯誤是在這裏:

$q = mysqli_query($con,"UPDATE user SET profile = '".$newfilename."' WHERE username = '".$_SESSION['user_id']."'"); 

而且它應該是這樣的:

$q = mysqli_query($con,"UPDATE user SET profile = '".$newfilename."' WHERE UserID = '".$_SESSION['user_id']."'"); 

看起來像你用用戶名切換出UserId。

當涉及到您認爲設置的頁面$_SESSION['user_id']時,您在此處顯示的代碼沒有這樣的事情。

它定義了兩個函數,但沒有調用它們,也沒有爲user_id賦值。

首先,如上所示更新查詢,然後執行$ _SESSION的var_dump查看是否存儲了任何內容。如果不是,則需要返回幾個步驟,並確保實際設置會話變量。

+0

這解決了它,謝謝! –