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

Duvida


richenrique

Pergunta

Tenho uma página que é uma tabela e uma célula desta tabela tem um include:

include("login.php");

A página login.php tem o script de autenticação de usuário e senha com seção. Assim eu gostaria que quando o usuário for logar no sistema, a célula da tabela que contém o include exibisse uma mensagem de boas vindas. Como eu posso fazer isso? Minha dúvida é o que colocar no

<form name="form1" method="post" action="<?php $PHP_SELF ?>?action=logar">

A página login.php é assim:

<?php

session_start();

include("conecta.php");

if($_GET['action']==logar")

{

$senha = $_POST['senha];

$nome_usuario = $_POST['nome_usuario'];

$sql = mysql_query("SELECT * FROM usuarios WHERE nome_usuario=$nome_usuario' AND senha='$senha' ") or print(mysql_error());

$linhas = mysql_num_rows($sql);

if($linhas==1)

{

  $nome_usuario = mysql_result($sql, 0, "nome_usuario");

                                $senha = mysql_result($sql, 0, "senha");

  $nome = mysql_result($sql, 0, "nome");

 

  // registra a sessao

  $_SESSION['nome_usuario] = $nome_usuario;

  $_SESSION['senha'] = $senha;

  $_SESSION['nome'] = $nome;

 

  $nome_ = $_SESSION["nome"];

  echo "Bem vindo $nome !";

}

else

{

  echo "Nome do usuário ou senha inválidos";

}

}

?>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

<form name="form1" method="post" action="<?php $PHP_SELF ?>?action=logar">

  <table width="50%" border="0" align="center" cellpadding="0" cellspacing="0">

    <tr>

      <td><div align="center">Nome do usu&aacute;rio:</div></td>

      <td><div align="center">

          <input name="nome_usuario" type="text" id="nome_usuario">

        </div></td>

    </tr>

    <tr>

      <td><div align="center">Senha:</div></td>

      <td><div align="center">

          <input name="senha" type="password" id="senha">

        </div></td>

    </tr>

    <tr>

      <td>&nbsp;</td>

      <td><input type="submit" name="Submit" value="entrar"></td>

    </tr>

  </table>

</form>

<p>&nbsp;</p>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Você quer que se o cara estiver logado sempre exibir no arquivo login.php uma mensagem, tipo "Olá ".$_SESSION['nome_usuario']." !" ?

Pense comigo...

O que você poderia usar para verificar se o cara tá logado?

. A própria sessão

. Condicional (if)

concorda?

Certo, então depois daquele session_start() lá em cima, coloque:

if(isset($_SESSION['nome_usuario] , $_SESSION['nome'] , $_SESSION['senha'])){

print "Olá, ".$_SESSION['nome_usuario']." !";

exit;

}

Vê se isso te ajuda em algo...

até... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Mas se eu der o exit não vai exibir o restante da página

uh é mesmo...

tente fazer assim então

no começo da página após session_start();

<?

if(!isset($_SESSION['nome_usuario'] , $_SESSION['nome'] , $_SESSION['senha'])){

// tudo que estiver abaixo no login.php aqui dentro

}else{

print "Olá, ".$_SESSION['nome_usuario]." !";

// aqui acaba o arquivo login.php

};

?>

veja se assim funciona..

e foi malz pela mancadinha...

até... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui resolver uma parte do problema.

TESTE.PHP

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

<table width="100%" border="1" cellspacing="0" cellpadding="0">

  <tr>

    <td width="50%"> <p align="center">Teste</p></td>

    <td width="50%"> <div align="center">Teste</div></td>

  </tr>

  <tr>

    <td> <div align="center">

        <?php include("login.php"); ?>

      </div></td>

    <td><div align="center">Teste</div></td>

  </tr>

  <tr>

    <td><div align="center">Teste</div></td>

    <td><div align="center">Teste</div></td>

  </tr>

</table>

</body>

</html>

LOGIN.PHP

<?php

session_start();

?>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

<?

if(isset($_GET['flag'])!=1)

{ ?>

<form name=form1" method="post" action="teste.php?action=logar&flag=1">

  <table width="50%" border="0" align="center" cellpadding="0" cellspacing="0">

    <tr>

      <td><div align="center">Nome do usu&aacute;rio:</div></td>

      <td><div align="center">

          <input name="nome_usuario" type="text" id="nome_usuario">

        </div></td>

    </tr>

    <tr>

      <td><div align="center">Senha:</div></td>

      <td><div align="center">

          <input name="senha" type="password" id="senha">

        </div></td>

    </tr>

    <tr>

      <td>&nbsp;</td>

      <td><input type="submit" name="Submit" value="entrar"></td>

    </tr>

  </table>

</form>

<p>&nbsp;</p>

</body>

</html>

<?

}

?>

<?php

include("conecta.php");

if(isset($_GET['action])=="logar")

{

$senha = $_POST['senha'];

$nome_usuario = $_POST['nome_usuario'];

$sql = mysql_query("SELECT * FROM usuarios WHERE nome_usuario=$nome_usuario' AND senha='$senha' ") or print(mysql_error());

$linhas = mysql_num_rows($sql);

if($linhas==1)

{

  $nome_usuario = mysql_result($sql, 0, "nome_usuario");

        $senha = mysql_result($sql, 0, "senha");

  $nome = mysql_result($sql, 0, "nome");

 

  // registra a sessao

  $_SESSION['nome_usuario] = $nome_usuario;

  $_SESSION['senha'] = $senha;

  $_SESSION['nome'] = $nome;

 

  $nome_ = $_SESSION["nome"];

  echo "Bem vindo $nome !";

}

else

{

  echo "Nome do usuário ou senha inválidos";

}

}

?>

Assim, quando ele logar no sistema não vai aparecer os textfields novamente. Agora eu preciso que quando cai no else (Nome do usuário ou senha inválidos) os textfields aparecem. Já tentei usar uma flag mas não estou conseguindo passar essa variável para o GET. alguém ajuda?

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,3k
    • Posts
      652,6k
×
×
  • Criar Novo...