2014-05-05 8 views
0

J'essaie d'obtenir le nom d'utilisateur de l'utilisateur connecté de la session. Je peux alerter roomnumber et id de l'utilisateur, mais pas le nom d'utilisateur.PHP get session nom d'utilisateur

code

pour le stockage:

session_start(); 
$con = DbConnect(); 
if (isset($_POST)) { 
$username = $_POST['username']; 
$pwd = $_POST['password'];       
$sql = 'select id, username, password, roomNr from room where username = "' .$username. '"'; 
$result = mysqli_query($con, $sql); 
$count = mysqli_num_rows($result); 
$userData = mysqli_fetch_array($result, MYSQLI_ASSOC); 

if ($count == 1) { 
    session_regenerate_id(); 
    $_SESSION["sess_id"] = $userData['id']; 
    $_SESSION["sess_username"] = $userData['username']; 
    $_SESSION["sess_room"] = $userData['roomNr']; 
    session_write_close(); 
    header("location: ../main_page.php"); 
} else { 
    header('index.php'); 
} 

Code pour la récupération:

echo $_SESSION['sess_username']; 

NOTE: Ceci est juste un test rapide pour voir si je peux obtenir le problème spesific travail. Je ne vais pas utiliser le code ci-dessus dans le produit final.

Solution: Le problème n'était pas lié au php, mais à la façon dont j'ai utilisé la variable dans le script.

La solution de travail:

var user = '<?php echo $_SESSION['sess_username']; ?>'; 
+3

Assurez-vous que vous avez 'session_start();' au début de vos deux pages et vérifier si ' $ userData ['nom d'utilisateur'] 'contient une valeur. –

+0

Où obtenez-vous la variable '$ username'? C'est probablement la chose la plus importante et elle n'est pas représentée ici. –

+0

@ICanHasCheezburger J'ai session_start(); à la fois. Et comme indiqué, je peux alerter à la fois ID et la salle de la même manière. –

Répondre

0

Ce que ma suggestion est, associez vos données d'utilisateur à un tableau de session et récupérer. ce ne serait pas perdre vos données

 session_start(); 
    session_regenerate_id(); 
    $_SESSION["user_data"] = $userData; 
    session_write_close(); 

et assurez-vous que vous incluez session_start() dans tous vos fichiers include.

+0

Ne pas quitter j'ai bien compris. Comment puis-je obtenir la valeur spécifique du nom d'utilisateur de cette façon? –

+0

après avoir assigné l'impression des données et voir '$ _SESSION [" user_data "]' – TED

+0

Ceci est imprimé: testfunction Array() [code natif]} –

0

essayer d'alerter avec javascript

echo "<script type='text/javascript'>alert('{$_SESSION['sess_id']} - {$_SESSION['sess_room']}');</script>"; 

ou seulement pour montrer avec php

echo "{$_SESSION['sess_id']} - {$_SESSION['sess_room']}"; 
+0

J'ai, et ça marche, c'est juste le sess_username qui ne fonctionne pas: –

+0

@ Simen_257 S'il vous plaît, si cela a fonctionné pour vous le marquer comme la bonne réponse. –

+0

Eh bien, ça n'a pas marché. Comme je l'ai dit, le problème est que je ne peux pas obtenir le ['sess_username'], le ['sess_id'] et ['sess_room'] n'est pas le problème –