Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala pessoal, blza ?
Seguinte, no meu código quando o usuário consegue efetuar login, antres de dar o header para a página inicial do sistema eu dou um session_start() e crio a $_SESSION['login'] associando a ela um array associativo contendo informações da busca na tabela de usuários, bom, acho melhor se eu mostrar o código:
<?php
.
.
.
$registros = $conexao->Executa("SELECT * FROM usuarios WHERE usuarios_usuario = $usuario and usuarios_senha = $senha");
if(mysql_num_rows($registros) == 0) {
$msg = "Usuário ou Senha incorretos, por favor tente novamente.";
header('Location: ../index.php'); session_start();
$_SESSION['login'] = mysql_fetch_assoc($registros);
header('Location: ../home.php');
}
?>
No caso a sessao login conterá todas as informações do resultado daquela busca ?
Caso sim, ai chega minha dúvida real, como faço por exemplo pra mostrar o valor do campo nome ? Pq minha tabela usuarios tem os campos(usuarios_id, usuarios_nome, usuarios_email, usuarios_usuario e usuarios_senha), então creio que como minha sessao login contém um array associativo com o resultado ele estaria representado +- assim:
$_SESSION['login'] {
[usuarios_id] -> "id do resultado",
[usuarios_nome] -> "nome do resultado",
[usuarios_email] -> "email do resultado",
[usuarios_usuario ] -> "usuario do resultado",
[usuarios_senha] -> "senha do resultado"
}
Conseguiram entender ? estou certo nisso ? e como faria por exemplo para mostrar no caso o valor do indice usuarios_nome ?
muito mais fácil organizar a sua session não acha?
foreach($registros as $r => $registro){
$_SESSION['logado'][$r] = $registro;
}
algo assim e esta resolvido.
>
Então , acredito que você vai ter que especificar a posição em que o dado está no seu array .
Da um
print_r $array
e ve as posições . Então , quando quiser mostrar faça assim :
echo $array[1] ;
Acredito que seja assim , pois estou sem como testar aqui ! Valeu amigo
Então, isso eu to ligado, mas nesse caso o array está dentro do $_SESSION['login'], nesse caso acho que seria diferente, mas vlw pela ajuda :)
echo $_SESSION['login']['id_user'];
echo $_SESSION['login'][0];>
muito mais fácil organizar a sua session não acha?
foreach($registros as $r => $registro){
$_SESSION['logado'][$r] = $registro;
}
algo assim e esta resolvido.
Não entendi direito ainda :S
No meu caso são 5 campos, no caso do array associativo 5 posições, o nome estaria na segunda posição, como printaria o valor do segundo indice(nome) ?
>
echo $_SESSION['login']['id_user'];
echo $_SESSION['login'][0];
Hmmm, entendi, então teria um conjunto de colchetes adicional, mas oque seria esse [0] ? seria no caso de um array de indices ?
o exemplo que dei é ilustrativo.
imagina que você recupera da DB
nome - josé
idade - 15
email - jose@jose.com
login - jose87
senha - jose7867865
e então isso esta em um array a partir do momento que você percorrer o array você consegue a chave da mesma, então no meu exemplo r era a chave do seu array no caso nome, idade etc..
então ele vai criar as sessions com os nome respectivos ao campos na DB que estariam em um array.
quer acessar o nome
$_SESSION['logado']['nome'];
$_SESSION['logado']['email'];
sem muito segredo.
>
o exemplo que dei é ilustrativo.
imagina que você recupera da DB
nome - josé
idade - 15
email - jose@jose.com
login - jose87
senha - jose7867865
e então isso esta em um array a partir do momento que você percorrer o array você consegue a chave da mesma, então no meu exemplo r era a chave do seu array no caso nome, idade etc..
então ele vai criar as sessions com os nome respectivos ao campos na DB que estariam em um array.
quer acessar o nome
$_SESSION['logado']['nome'];
$_SESSION['logado']['email'];
sem muito segredo.
Hmm, legal, tinhaa testado aqui e deu certo, vlw ^^
Então , acredito que você vai ter que especificar a posição em que o dado está no seu array .
Da um
print_r $array
e ve as posições . Então , quando quiser mostrar faça assim :
echo $array[1] ;
Acredito que seja assim , pois estou sem como testar aqui ! Valeu amigo