Ir para conteúdo

POWERED BY:

Arquivado

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

LuanMesquita

[Resolvido] Sessões

Recommended Posts

Olá pessoal feliz 2011 para todos.

 

Vamos lá, estou querendo fazer uma coisa não é bem Sessões, más envolve

sessões porisso que coloquei como título. Meu projeto é o seguinte, fazer

uma site que faça cadastramento de usuário e inseri-lo no Banco de Dados,

com o intuito de apenas os usuários cadastrados acessarem páginas privadas,

até aqui tudo bem, já dominei toda está parte.

 

Depois de cadastrado, ele abrirá uma página para fazer o loggin.

Este é um exemplo simples. OBS: O Código de cadastramento não colocarei por acha

desnecessário.

 

<form method="post" action="login2.php">

   <p align="center"> Login: <input type="text" name="login" size="20" /> </p>
   <p align="center"> Senha: <input type="text" name="senha" size="20" /> </p>
   <p align="center"> <input type="submit" value="Entrar" /> </p>

</form> 

 

Depois de informa seu loggin e sua senha ele irá para seu action que é este.

 

<?php
session_start();

$login = $_POST['login'];
$senha2 = $_POST['senha'];

include("mysqlconfig.inc"); // Este arquivo é o que faz a conexão com SGBD mysql.

$query = "select login, senha from usuario where login='$login' and senha='$senha2'; ";
$res = mysql_query($query);

$num_linha = mysql_num_rows($res);

if($num_linha > 0){
$_SESSION['usuario'] = $login;
echo "<a href='http://localhost/layout.php'> :: ENTRAR NO SITE ::";

}else{
echo "usuário não existe <br>";
echo "<a href='cadastro_de_usuario.php'> :: CADASTRAR :: </a>";

}

?>

 

Como vocês podem ver, crei uma variável de sessão e atribui a variável $login e

dei o nome de 'usuario' para a variável de sessão. Então caso o comando select do mysql

achar a linha com o login e senha informado ele criará a variável de sessão que citei

e irá mostrar um link ":: ENTRAR NO SITE ::" e esse link irá para página privada que

falei no começo que só cadastrados poderá ter acesso. Más para me certifica que

o usuário se loggin certinho e não apenas pegou o link da página privada e colou no

navegador crei um código para verificar se realmente a variável de sessão existe e inserir

no começo da página privada.

 

 

<?php

session_start();

if(!session_is_registered('usuario')){

  echo "Efetue o login no site: <br>";
  echo "<a href='login.php'> :: Logar :: </a>";
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PRIVADA</title>
</head>

<body>

<center> <img src="1.jpg" /> </center>

</body>
</html>

 

 

Aqui está meu problema, mesmo eu fazendo aquele teste no começo o contéudo da página irá

aparecer normalmente, não dizendo que o teste não funcionou, pois ele funciona normalmente

ele pede para o usuario efetuar o loggin e dá o o link para ele se logar.

 

Tentei fazer isso:

 

<?php

session_start();

if(!session_is_registered('usuario')){

  echo "Efetue o login no site: <br>";
  echo "<a href='login.php'> :: Logar :: </a>";
}else{

echo   "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> <br>
       <html xmlns='http://www.w3.org/1999/xhtml'>  <br> 
       <head> <br>
       <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> <br> 
       <title>PRIVADA</title> <br>
       </head> <br> ... ";   // AQUI FICA TODO O RESTO DA PÁGINA.

   }

?>

 

Desse jeito dá certo, más acha que fica muito amador e queria uma forma mais sufisticada de dizer:

"Olha página efetue este teste e se a variável de sessão chamada usuário foi criada mostre o contéudo

da página caso ao contrário não mostre o contéudo da página.". Queria saber se tem como colocar javascript

dentro do php, porque acho que consigo fazer alguma coisa com javascript que me ajude.

Já tentei isso más não deu certo.

 

Exemplo:

 

<?php

session_start();

if(!session_is_registered('usuario')){

  echo "Efetue o login no site: <br>";
  echo "<a href='login.php'> :: Logar :: </a>"; 

         ?>

         <script language="javascript">

         window alert("Efetue seu login");

         </script>

         <?php
}

?>

 

 

Obrigado pela atenção, e souberem de alguma coisa

por favor me ajude.

 

Abraço a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que acontece nesse primeiro script aqui é q ele executa o php e continua a ler o html pois não existe nenhum comando que pare a execução.

 

Um solução possível é adicionar o comando `exit` para encerrar a leitura do arquivo.

 

ex:

<?php

session_start();

if(!session_is_registered('usuario')){

         echo "Efetue o login no site: <br>";
         echo "<a href='login.php'> :: Logar :: </a>";
         exit;
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente como o nosso amigo Kanzen disse, basta você encerrar a leitura do arquivo.

Agora sobre colocar o javascript no site via php, basta você utilizar o comando

 

print '<script>código</script>';

 

Espero ter ajudado, e feliz 2011. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

KKKKKKKKKKKKKKKKKKKKK Só exit?? Putzzz rsrs, não sei se vocês conhecem a síntaxe de java más é

tipo um System.exit(0);

 

Verdade, é só usar echo "<script language='javascript'> window.alert('FÁCIL'); </script>"; rrsrs

 

Pessoalll Veleu mesmo, Obrigado.

 

Feliz 2011 para vocês.

 

KKKKKKKKKKKKKKKKKKKKK Só exit?? Putzzz rsrs, não sei se vocês conhecem a síntaxe de java más é

tipo um System.exit(0);

 

Verdade, é só usar echo "<script language='javascript'> window.alert('FÁCIL'); </script>"; rrsrs

 

Pessoalll Veleu mesmo, Obrigado.

 

Feliz 2011 para vocês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.