Ben muhtemelen mysql_fetch_assoc() yerine mysql_result() kullanılarak istiyorum düşünüyorum. mysql_result() sadece size sonuç kümesinden tek bir hücre değerini verir, böylece $_SESSION['user'] = mysql_result($result,0,$userdata); atarken, yalnızca sonuç satırın ilk hücre değerini alıyorsanız. Bir dizi değil çünkü bir ilişkisel anahtarla erişerek (yani $_SESSION['user']['username']), mümkün değildir.
Eğer mysql_fetch_assoc() kullanıyorsanız, birlikte çalışmak için sütun adları ve değerleri bir anahtar / değer çifti olacak:
$result = mysql_query("SELECT `id`, `username`, `email` FROM `users`
WHERE `username` = '".mysql_real_escape_string($username)."'
AND `password` = '".mysql_real_escape_string($passwd)."'");
$_SESSION['user'] = mysql_fetch_assoc($result);
Bir yan fayda olarak, mysql_fetch_assoc() mysql_result() çok daha hızlıdır.
Note: Ben de size güvenli olduğundan emin olmadıkça, bir şekilde sorgu verileri kaçmak için emin olması gerektiği gibi, orada bir mysql_real_escape_string() koydu.