Ir para conteúdo
Fórum Script Brasil
  • 0

Sessões


LuanMesquita

Pergunta

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

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Invés de colocar o else você poderia colocar exit; fazendo com que não exiba o resto do codigo.

Ficando assim:

<?php

session_start();

if(!session_is_registered('usuario')){
      echo "<script language='javascript'> alert('Efetue seu login!!!');location.href='login.php';</script>";
      exit;
}

        <!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.

Coloquei pra exibir o alert e logo apos redirecionar.

Editado por david.lyonnais
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...