Tes définitions de variables sont curieuses :
$_SESSION['membre'] = $resultat;
$_SESSION['pseudo'] = $resultat['pseudo'];
$_SESSION['password'] = $resultat['password'];
$_SESSION['id_region'] = $resultat['id_region'];
$_SESSION['type'] = 'client';
$_SESSION['statut'] = $resultat['statut'];
Tu définis $_SESSION['membre'] comme étant une variable array, puis les autres variables comme étant à une seule dimension, et ensuite tu utilises $_SESSION['membre']['id_region'] comme la deuxième dimension de ton array $_SESSION['membre'], ça ne te renverra rien.
Il faudrait définir la variable $_SESSION['membre'] comme ça :
$_SESSION['membre'] = array('pseudo' => $resultat['pseudo'], 'password' => $resultat['password'], ...........);
Et ensuite, tu accèdes à tes valeurs avec $_SESSION['membre']['pseudo'], $_SESSION['membre']['password'], etc.
Enfin, si tu utilises ces valeurs pour renvoyer le résultat d'un array, je te suggère de le coder plutôt comme ça :
// Si $_SESSION['membre']['id_region'] est une chaîne de caractère
$aRegion[strval($_SESSION['membre']['id_region'])]
// Si $_SESSION['membre']['id_region'] est un entier
$aRegion[intval($_SESSION['membre']['id_region'])]
J'ajoute que quand tu as une variable qui ne te renvoie pas ce qui est attendu, il est toujours utile de faire un petit print_r($nom_de_variable) pour voir ce qu'elle contient réellement.