2014-04-23 79 views
0

我有問題。要更新PHP中的個人資料,需要您的ID,但我沒有獲得ID。我把重要的代碼放在後面,更好地理解我的問題。在php中更新個人資料

這是我的代碼登錄到會員區。

<?php 
require_once 'config.php'; 
session_start(); 
$userName = isset($_POST["user-name"]) ? $_POST["user-name"]: ''; 
$userPass = isset($_POST["user-pass"]) ? $_POST["user-pass"]: ''; 

if ($userName != '0' && $userPass != '0'){ 

    $criptSen = hash("whirlpool", $userPass); 

    $SQL = "SELECT Usuario, Senha, Rank FROM utilizadores WHERE Usuario='$userName' AND Senha='$criptSen'"; 
    $query = mysql_query($SQL); 

    if (mysql_num_rows($query)>0) 
    { 
     $row = mysql_fetch_array($query); 
     $_SESSION['Usuario'] = $row['Usuario'];  
     $_SESSION['Rank'] = $row['Rank']; 
     mysql_free_result($query); 
     if($row['Rank'] == 'Membro'){ 
      header("Location: index_membro.php"); 
     } else { 
      if($row['Rank'] == 'Administrador') { 
       header("Location: admin/index_logged.php");     
      } 
     }  

    } else { 
     if (isset($query)){ 
      mysql_free_result($query); 
     } 
     header ("Location: index.php?page=erro"); 
    } 

} else { 
    header ("Location: index.php?page=erro"); 
} 
?> 

現在,該代碼驗證用戶是否在網站上登錄navegate時是否登錄。

<?php 
$Usuario = ($_SESSION["Usuario"]) ? $_SESSION["Usuario"]: ''; 
$Rank = ($_SESSION['Rank']) ? $_SESSION['Rank'] : ''; 

if ($Usuario != '' && $Rank == 'Membro'){ 
} 
else 
{ 
header("Location: index.php"); 
echo "<script>alert(\"Area Restrita\");</scrpit>"; 
} 
?> 

現在,這是我的個人資料檔案查詢,但我沒有得到的是登錄用戶的ID ..你可以幫助我獲得ID?

<?php 
$result = mysql_query("SELECT * FROM utilizadores WHERE ID='$ID'") 
or die(mysql_error()); 

    while($row = mysql_fetch_array($result)) { 
     $id  = $row["ID"]; 
     $nome = $row["Nome"]; 
     $imagem = $row["imgPerfil"]; 
     $email = $row["Email"]; 
     $usuario = $row["Usuario"]; 
     } 
    ?> 
+0

你確實有'session_start();'加載到你的所有文件中,對吧? –

+0

我假設這是用戶表?你可以在那裏添加ID(假設這個表有一個名爲ID的字段)。SELECT ID,Usuario,Senha,Rank從utilizadores WHERE Usuario ='$ userName'AND Senha ='$ criptSen' –

+0

是的,session_start();被加載到每個頁面的標題中。 – LuisMiguelGT

回答

0

當用戶註冊時,應確保用戶名是唯一的。數據庫會自動發出主鍵自動遞增的ID。

只需在用戶名上運行查詢並檢查其ID。

另外,創建您自己的註冊/登錄系統存在安全風險。我建議你使用一個內置的現成的,並根據你的需求定製一些東西。你是mysql_real_escape_string'的用戶名和密碼?

+0

如果將數據庫放入相應的表中,數據庫將只有auto_increment ID。 –

+0

是的,安德魯是正確的。無論如何,這個ID通常是人們在處理用戶時添加的第一件事。 –