Ir ao conteúdo
  • Cadastre-se

Pegar session sem adicionar a proteção...


Vivinho

Posts recomendados

Olá, pessoal!

Tenho um script de senha em php que funciona com session... então, queria colocar o dados/resultados do session em uma página onde não há necessidade de protegê-la. Ex.: Na página painel.php coloque um include [include "restrito.php";] e, ao liberar a página, é gravado na página, onde estiver o código [ echo $login_usuario ] nome do user. Tentei colocar somente [ echo $login_usuario ] em outra página que não puxa o include para protegê-la... somente aparece o nome do user se eu proteger a página...

Alguem teria uma ideia de como faço para colocar o nome do user (após logar) em uma página não protegida?

Desde já agradeço a atenção e ajuda de todos.

Ate+

Link para o comentário
Compartilhar em outros sites

  • Moderador

você pode fazer isso com o cookie. você nao precisa criar a sessao se nao quiser.

com o cookie você pode apenas armazenar o id do usuario depois de logado, puxar o nome dele do banco e dar um explode pra cortar um pedaço só para apresentar o primeiro nome..

eu tenho um exemplo aqui assim q eu achar eu posto.

mas lembrando q é bom o uso de sessions pra paginas restritas.. e ate mesmo pra paginas nao restritas...

Link para o comentário
Compartilhar em outros sites

  • Moderador
Olá, Dif!

Obrigado pela resposta. Sou iniciante em php; poderia dar mais detalhes? Pois nas páginas págiinas restritas eu consigo, mas nas páginas onde não há proteção não consigo puxar o user somente para exibição.

Ate+

pera, então você quer apresentar o nome da pessoa sem utlizar um login e senha de um banco de dados é isso?

se for isso a melhor maneira é javascript. usando um prompt peguntando o nome da pessoa quando entrar no site..

Link para o comentário
Compartilhar em outros sites

  • Moderador

amigo, se há sistema de login usando o banco de dados..,creio que ele terá uma id. correto?

então logo que você "loga" sem ser na pagina principal... bastaria você fazer uma query na tabela do usuario onde tem o id dele.. e resgatar o nome.

vou postar um exemplo que eu usei para apenas "identificaçao" do usuario logado na pagina sem ser em pagina restrita:

formulario de login:



<form method="post" action="[COLOR="Red"]identifica_cli2.php[/COLOR]">
<label for ="login">Login: </label>
<input type="text" size="30" name="login" maxlength=60 id="login"/>
</p>
<label for ="senha">Senha: </label>
<input type="password" size="30" name="senha" maxlength=60 id="senha"/>
<br/>
<input type="image" src="img/bt_entrar.gif" value="Entrar"/>
</form>


agora a identificaçao da pessoa pegando apenas o primeiro nome:

identifica_cli2.php


<?php
include("conecta.php");

$login = $_POST["login"];
$senha = $_POST["senha"];

$sql = "select * from clientes where login ='$login' and [COLOR="Red"]des_decrypt(senha)[/COLOR] = '$senha' ";

$dados = mysql_query($sql);

mysql_close($conecta);

if (mysql_num_rows($dados) == 1){
$linha = mysql_fetch_array($dados);
[COLOR="Red"]$idcliente[/COLOR] = $linha["codigo"]; //pega resgata o id do cliente
[COLOR="Red"]$cliente[/COLOR] = $linha["nome"];
[COLOR="Red"]$prinome[/COLOR] = explode(" ", $cliente);
[COLOR="Red"]setcookie[/COLOR]("nome_cli", $prinome[0], time() +3000);
[COLOR="Red"]setcookie[/COLOR]("id_cli", $idcliente, time() +3000); //atribui o id_cli ao codigo do cliente na tabela clientes
header("Location: index.php");
}
else{
header("Location: erro.php");
?>

user.php


<div class="user">
<?php
if (isset($_COOKIE["nome_cli"])) {
[COLOR="Red"] $nome_cli = $_COOKIE["nome_cli"];[/COLOR]
echo "Bem-Vindo <a href='perfil_cliente.php'> [COLOR="Red"]$nome_cli[/COLOR]. </a>";
echo "Se não for você ";
echo "<a href='identifica_cli.php'>Clique aqui</a>";
}
else {
echo "Olá Visitante. Identifique-se ";
echo "<a href='identifica_cli.php'>Clicando aqui</a>";
}
?>
</div>

EXPLICAÇAO do identifica_cli2.php:

repare que eu destaquei algumas partes em vermelho..

primeiro recebo nas variaveis o valor do campo login e senha.

depois criei uma variavel $sql atribuida a uma consulta no banco na tabela clientes onde o campo login seja igual ao login digitado e a senha contida no campo da tabela seja igual a senha digitada.

perceba que eu usei um "des_decrypt(senha) " isso porque a senha no meu banco esta criptografada para segurança...ela descriptografa a senha.

depois atribuo a uma variavel a funçao mysql_query() tendo como parametro a variavel da consulta.

depois disso... no bloco de IF-Else

comparei com 1 a funçao mysql_num_rows() tendo como parametro a variavel que tem armazenado a funçao da consulta.

então ali diz... se for igual a 1 é porque existe o login se for 0 nao existe.

ali dentro tem uma variavel $linha que contem o array de dados consultados

então.. atribui a $idcliente, a variavel $linha que contem a ID da pessoa

a variavel $cliente atribuida a variavel $linha que contem o nome da pessoa

a variavel $prinome atribuida a funçao explode(), tendo como parametro o separador, e a variavel $cliente.

e o mais importante no meu caso... criei um cookie com tempo a cada 3000 milisegundos se expirar.. tendo que logar novamente caso nao haja alguma açao.

o primeiro setcookie, mostra no nome da pessoa. perceba que ali tem: $prinome[0] ou seja, esta pegando o primeiro índice do array, o primeiro nome apenas.

o segundo setcookie tem como paramentro o id_cli atribuido a ID do cliente contido na tabela cliente.

por fim.. a funçao header() contendo o parametro: "Location: index.php" faz com que se o usuario obteve sucesso ao logar, ele será redirecionado a pagina index.php caso contrario será redirecionado a uma pagina de erro informando que o login ou a senha esta incorreto.

EXPLICAÇÂO do user.php:

aqui você pode dar um include("user.php"); por exemplo num determinado lugar do seu site..

serve pra fazer a identificaçao do usuario no site.

Por padrão eu determinei que vem escrito na pagina se nao logar:

Olá Visitante. Identifique-se Clicando aqui.

quando clicar em " clicando aqui" entra o formulario que eu postei mais acima o primeiro codigo.

depois de logado irá a parecer:

Bem-vindo Fulano, se nao for você clique aqui

ja identificando o nome da pessoa.

para isso perceba que foi usada a funçao isset(), tendo como parametro a variavel $_COOKIE["nome_cli"] no bloco do if-else

e dentro a variavel $nome_cli atribuida a variavel do cookie.

então resumindo o que ta ali..:

se tiver logado e a variavel do cookie tiver preenchida, ele apresenta o nome da pessoa senao ele mostra a mensagem padrão de visitante.

bom.. tentei ser o mais claro possivel na explicaçao do codigo.

abraço

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...