ava.rj 0 Denunciar post Postado Março 5, 2005 Olá galera !! Tô ficando doido !!! Não sei porque o valor da variável nome não aparece !!! Script: <? session_start("login"); if(!(session_is_registered("nome"))){ header("Location: index.htm"); } echo $nome; echo " 1111111111"; ?> "echo $nome;" não aparece "echo " 111111111";" aparece O q tá errado? A autenticação tá funcionando, porque se eu entrar direto nessa página sem estar logado, ele redireciona para a index. HELP PLEASE !! Valeu. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 5, 2005 manual do php Cuidado Se você quer que seu script funcione independentemente do uso de register_globals, você precisa usar a matriz $_SESSION já que $_SESSION é automaticamente registrada. Se o seu script usa session_register(), ele não irá funcionar em ambientes onde a diretiva de configuração register_globals esteja desabilitada. Cuidado Isto registra uma variável global. Se você quiser registrar uma variável dntro de uma função, você deve certificar-se de faze-la global, usando global ou usando a matriz $GLOBALS[], ou usando a matriz especial para seções($_SESSION) como mostrado abaixo. Cuidado Se você esta usando $_SESSION (ou $HTTP_SESSION_VARS), não use session_register(), session_is_registered() e session_unregister(). por questoes de segurança o register_globals esta desativado por padrao entao nao ira funcionar session_register(), session_is_registered() e session_unregister() e essas variaveis estao obsoletas Compartilhar este post Link para o post Compartilhar em outros sites
ava.rj 0 Denunciar post Postado Março 6, 2005 Mas como registrar uma variável numa SESSÂO e recuperar o valor dela depois? Eu só sei fazer assim ... http://forum.imasters.com.br/public/style_emoticons/default/upset.gif []s Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 6, 2005 session_start(); //criando a sessao $_SESSION["nome"] = "Fabyo" //para pegar o valor da sessao: echo $_SESSION["nome"]; Compartilhar este post Link para o post Compartilhar em outros sites
ava.rj 0 Denunciar post Postado Março 6, 2005 Valeu pela ajuda ... alterei o código, só que agora ele não reconhece o login. login.php // recupera variáveis do formulário $login = ($_POST["login"]); $senha = ($_POST["senha"]); include "conecta.php"; // verifica no banco $stgsql="SELECT nome FROM adm WHERE login='$login' AND senha='$senha'"; $res=mysql_query($stgsql,$conec); if(mysql_num_rows($res)>0){ // REGISTRA A VARIÁVEL NA SESSÃO $_SESSION["nome"] = $nome; // direciona para a página logado $link="logado.php"; header("Location:$link"); } else { header("Location:erro.php"); } logado.php session_start(); if(!($_SESSION["nome"])){ header("Location: index.htm"); } echo $_SESSION["nome"]; Está redirecionando direto para a index.htm Abraços .... :( Compartilhar este post Link para o post Compartilhar em outros sites
JasonX 0 Denunciar post Postado Março 6, 2005 // verifica no banco $stgsql="SELECT nome FROM adm WHERE login='$login' AND senha='$senha'"; $res=mysql_query($stgsql,$conec); if(mysql_num_rows($res)>0){ // REGISTRA A VARIÁVEL NA SESSÃO $_SESSION["nome"] = $nome; // direciona para a página logado $link="logado.php"; header("Location:$link"); } else { header("Location:erro.php"); } Caro amigo em vez de colocar a var $nome coloque $login tente seu codigo assim... // verifica no banco $stgsql="SELECT nome FROM adm WHERE login='$login' AND senha='$senha'"; $res=mysql_query($stgsql,$conec); if(mysql_num_rows($res)>0){ // REGISTRA A VARIÁVEL NA SESSÃO $_SESSION["nome"] = $login; // direciona para a página logado $link="logado.php"; header("Location:$link"); } else { header("Location:erro.php"); } tente assim caso nao registre a sessao coloque para imprimir a Sessao PHP [/tr][tr]echo $_SESSION["nome"];[/tr] ou edite no bloco de notas o arquivo que grava a sessao... pra ver se esta sendo armazenada. Compartilhar este post Link para o post Compartilhar em outros sites
ava.rj 0 Denunciar post Postado Março 6, 2005 Só que se você olhar o SELECT, verá que é o nome que eu trago do banco. O login e a senha servem apenas como condição.[]s Compartilhar este post Link para o post Compartilhar em outros sites
JasonX 0 Denunciar post Postado Março 6, 2005 Era so pra fazer um teste... mais dexa queto.... ve la se ta registrando... Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 6, 2005 você ta dando um select pra pegar o nome no banco mas você ainda nao pegou você só testou se o login tava certo agora precisa pegar o $nome Compartilhar este post Link para o post Compartilhar em outros sites
ava.rj 0 Denunciar post Postado Março 6, 2005 você ta dando um select pra pegar o nome no banco mas você ainda nao pegou você sótestou se o login tava certo agora precisa pegar o $nome Não entendi ...???Como pego o $nome? http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 6, 2005 $res=mysql_query("SELECT nome FROM adm WHERE login = '$login' and senha = '$senha'"); $nome = mysql_result($res, 0, "nome"); if(mysql_num_rows($res)>0){ // REGISTRA A VARIÁVEL NA SESSÃO $_SESSION["nome"] = $nome; tenta ai Compartilhar este post Link para o post Compartilhar em outros sites
ava.rj 0 Denunciar post Postado Março 6, 2005 Continua indo para a index como se não tivesse registrado o login logado.php session_start();if(!($_SESSION["nome"])){ header("Location: index.htm");}echo $_SESSION["nome"];Está redirecionando direto para a index.htm já tô ficando doido ... unf ! Antes ele só não imprimia o valor da variável, mas reconhecia o login, mas agora não reconhece mais. []s Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 6, 2005 você precisa testar antes se o valor do nome esta vindo e use isset() pra testar se existe a sessao Compartilhar este post Link para o post Compartilhar em outros sites