2014-04-23 81 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通常是人们在处理用户时添加的第一件事。 –