Использовать флаг MYSQL_ASSOC
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$jsonresult[$row['user_id']]["user_auth"] = 1;
$jsonresult[$row['user_id']]["user_id"] = $row['user_id'];
$jsonresult[$row['user_id']]["user_name"] = $row['user_name'];
$_SESSION[$row['user_id']]["user_auth"] = 1;
$_SESSION[$row['user_id']]["user_id"] = $row['user_id'];
$_SESSION[$row['user_id']]["user_name"] = $row['user_name'];
}
Или даже mysql_fetch_assoc
вместо mysql_fetch_array
, без флагов.
РЕДАКТИРОВАТЬ: так как ваша функция выглядит как базовая функция аутентификации, я бы изменил ее на что-то вроде этого:
$_SESSION["user_auth"] = 0;
$jsonresult = array('user_auth'=>0);
if(isset($_POST["user_name"]) && isset($_POST["user_password"])) {
$input = array(
'username'=>htmlspecialchars($_POST["user_name"], ENT_QUOTES),
'password'=>htmlspecialchars($_POST["user_password"], ENT_QUOTES)
);
$query = sprintf("SELECT * FROM users WHERE user_name='%s'", $input['username']);
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
$data = mysql_fetch_assoc($result);
mysql_close();
if ($data['user_password'] == $input['password']) {
$jsonresult["user_auth"] = 1;
$jsonresult["user_id"] = $data['user_id'];
$jsonresult["user_name"] = $data['user_name'];
$_SESSION["user_auth"] = 1;
$_SESSION["user_id"] = $data['user_id'];
$_SESSION["user_name"] = $data['user_name'];
}
}
}
echo json_encode($jsonresult);