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

Duvida - aparecer texto de login invalido


coverzaum

Pergunta

Galera é o seguinte, eu fiz uma tela de login em que para validar o usuario e senha fiz da seguinte maneira:

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

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$usuario = (isset($_POST['usuario'])) ? $_POST['usuario'] : '';
$senha = (isset($_POST['senha'])) ? $_POST['senha'] : '';

if (validaUsuario($usuario, $senha) == true) {

header("Location: index.htm");
} else {
expulsaVisitante();

}
}

?>
e esse método expulsaVisitante é:
function expulsaVisitante() {
           
                        global $_SG;
unset($_SESSION['usuarioID'], $_SESSION['usuarioNome'],
$_SESSION['usuarioLogin'], $_SESSION['usuarioSenha']);
header("Location: ".$_SG['paginaLogin']);

}

Porem na minha tela de login, eu fiz uma tabela e dentro de uma TD eu deixei visible: hidden, queria saber como fazer pra quando o login e senha forem inválido mostrar esse texto dentro da td na página de login,

desde já agradeço a quem puder ajudar.

Link para o comentário
Compartilhar em outros sites

23 respostass a esta questão

Posts Recomendados

  • 0

como a pagina da um refresh quando ele valida você pode fazer o seguinte...

no inicio da pagina coloque a funcao do seu expulsa visitante e nela coloque o return true ou false c for true faça uma variavel receber visible e caso for negativo hidden e no visible da td coloque a variavel.

Link para o comentário
Compartilhar em outros sites

  • 0
como a pagina da um refresh quando ele valida você pode fazer o seguinte...

no inicio da pagina coloque a funcao do seu expulsa visitante e nela coloque o return true ou false c for true faça uma variavel receber visible e caso for negativo hidden e no visible da td coloque a variavel.

No caso eu tiro a função expulsaVisitante() da seguranca.php ou mantenho nela mas tb no inicio da pagina login.php ?

Outra duvida, acho que não estou conseguindo enxergar mas como vou saber quando deu verdadeiro ou falso para poder atribuir true or false para a variavel ?

Editado por coverzaum
Link para o comentário
Compartilhar em outros sites

  • 0
Não, foi mal, acho que eu fiz confusão...

ali onde você faz o redirect antes coloque para a variavel receber o visible e no else antes de executar a função receber hidden e de echo la no style do TD...

Na pagina de validação eu atribuo uma variavel $login = visible, e no td eu coloco o id="login" seria isso ?

Editado por coverzaum
Link para o comentário
Compartilhar em outros sites

  • 0

bem eu não sei como você trabalho o seu CSS, mas poderia ser sim ...

vamos supor que no seu CSS você tenha

#visible {

aqui código para ficar visivel.

}
e
#hidden {

aqui código para ficar invisivel.

}
então seria desta forma que você falo... mas existe um outro modo que ficaria assim...
<td style="color: #F00; visible: <?php echo $login; ?>">
 texto
 </td>

usando o style para atribui o CSS direto na TAG.

Link para o comentário
Compartilhar em outros sites

  • 0

Essa ultima opção que pensei, mas assim essa é minha página de login:

<!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>:: TRADE NET::</title>
<style type="text/css">
body {
    background-color: #369;
}

</style>
<script type="text/javascript">
function ValidaForm()
{
    d = document.cadastro;
          if (d.usuario.value == ""){
                   alert("O campo " + d.usuario.name + " deve ser preenchido!");
                     d.usuario.focus();
                    return false;
          }
                    if (d.senha.value == ""){
                   alert("O campo " + d.senha.name + " deve ser preenchido!");
                     d.usuario.focus();
                    return false;
                    }
                    
                        
return true;
}


    
</script>

</head>

<body>


<p>&nbsp;</p>
<table width="1318" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="148" align="center">&nbsp;</td>
    <td width="1170" align="center"><font color="#333333" size="+6" ><b><img src="img/menu001.gif" width="667" height="176"  /></b></font></td>
  </tr>
</table>
<p>&nbsp;</p>
<form method="post" action="valida.php" name="cadastro" onsubmit="return ValidaForm()">
<table width="273" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
  
    <td colspan="2" bgcolor="#000033"><font color="#FFFFFF" ><b>Para logar, informe login e senha abaixo:</b></font></td>
    </tr>
    
  <tr>
    <td width="59"><label>Usuário</label></td>
    <td width="214"><input type="text" name="usuario" maxlength="50" /></td>
  </tr>
  <tr>
    <td><label>Senha</label></td>
    <td><input type="password" name="senha" maxlength="50" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Entrar" name="Enviar" onclick="return validaLogin();"/></td>
  </tr>
  <tr>
   <td colspan="2" bgcolor="#000033" align="center" ><font color="#FFFF00" style="visibility:hidden" id="login" ><b> Login inválido!</b></font></td>
    </tr>

</table>
</form>

</body>
</html>
Ai tenho a página de segurança que é:
<?php
include("login.php");
$_SG['conectaServidor'] = true;    
$_SG['abreSessao'] = true;         

$_SG['caseSensitive'] = false;  
$_SG['validaSempre'] = true; 

$_SG['servidor'] = 'mysql-g13a.mysqldbserver.com';    // Servidor MySQL
$_SG['usuario'] = 'asdasd';          // Usuário MySQL
$_SG['senha'] = 'Pasdasdasdas';                // Senha MySQL
$_SG['banco'] = 'newtr3';  

$_SG['paginaLogin'] = 'login.php'; 
$_SG['tabela'] = 'usuarios'; 


if ($_SG['conectaServidor'] == true) {
$_SG['link'] = mysql_connect($_SG['servidor'], $_SG['usuario'], $_SG['senha']) or die(mysql_error());
mysql_select_db($_SG['banco'], $_SG['link']) or die(mysql_error());
}



if ($_SG['abreSessao'] == true) {
session_start();
}

function validaUsuario($usuario, $senha) {
global $_SG;

$cS = ($_SG['caseSensitive']) ? 'BINARY' : '';

$nusuario = addslashes($usuario);
$nsenha = addslashes($senha);

$sql = "SELECT `id`, `nome` FROM `".$_SG['tabela']."` WHERE ".$cS." 
`usuario` = '".$nusuario."' AND ".$cS." `senha` = '".$nsenha."' LIMIT 1";
$query = mysql_query($sql);
$resultado = mysql_fetch_assoc($query);

if (empty($resultado)) {
return false;
} else {
$_SESSION['usuarioID'] = $resultado['id'];
$_SESSION['usuarioNome'] = $resultado['nome']; 

if ($_SG['validaSempre'] == true) {
$_SESSION['usuarioLogin'] = $usuario;
$_SESSION['usuarioSenha'] = $senha;
}
    
return true;
}
}
function protegePagina() {
global $_SG;
if (!isset($_SESSION['usuarioID']) OR !isset($_SESSION['usuarioNome'])) {
    expulsaVisitante();
} else if (!isset($_SESSION['usuarioID']) OR 
!isset($_SESSION['usuarioNome'])) {
    if ($_SG['validaSempre'] == true) {
if (!validaUsuario($_SESSION['usuarioLogin'], $_SESSION['usuarioSenha'])) {
expulsaVisitante();
}
    }
}
}
function expulsaVisitante() {
        
            global $_SG;
unset($_SESSION['usuarioID'], $_SESSION['usuarioNome'],
$_SESSION['usuarioLogin'], $_SESSION['usuarioSenha']);
header("Location: ".$_SG['paginaLogin']);

}

?>
e a valida.php que é:
<?php
include("seguranca.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$usuario = (isset($_POST['usuario'])) ? $_POST['usuario'] : '';
$senha = (isset($_POST['senha'])) ? $_POST['senha'] : '';

if (validaUsuario($usuario, $senha) == true) {

header("Location: index.htm");
} else {

expulsaVisitante();

}
}

?>

Como você viu estou atribuindo o style="visibility:hidden" por padrão para o texto não vir aparecendo, ai minha duvida é eu tenho que passar o id da td da minha pagina de login para a pagina valida.php que é onde faz as condiçoes e validação, se eu colocar do jeito que você falou não tem jeito pois a validação é feita na pagina valida.php

Link para o comentário
Compartilhar em outros sites

  • 0

coloca na session como você faz com o usuario exemplo

<?php
include("seguranca.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$usuario = (isset($_POST['usuario'])) ? $_POST['usuario'] : '';
$senha = (isset($_POST['senha'])) ? $_POST['senha'] : '';

if (validaUsuario($usuario, $senha) == true) {
$_SESSION['visivel'] = 'visible'; 
header("Location: index.htm");
} else {
$_SESSION['visivel'] = 'hidden'; 
expulsaVisitante();

}
}

?>

Bem explicando bem basicamente...

como esse arquivo é o que valida então ele vai ser executado de imediato com a pagina sendo assim se ele estiver logado a session vai receber visible assim liberando o conteudo... se não recebe hidden...

Link para o comentário
Compartilhar em outros sites

  • 0
coloca na session como você faz com o usuario exemplo

<?php
include("seguranca.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$usuario = (isset($_POST['usuario'])) ? $_POST['usuario'] : '';
$senha = (isset($_POST['senha'])) ? $_POST['senha'] : '';

if (validaUsuario($usuario, $senha) == true) {
$_SESSION['visivel'] = 'visible'; 
header("Location: index.htm");
} else {
$_SESSION['visivel'] = 'hidden'; 
expulsaVisitante();

}
}

?>

Bem explicando bem basicamente...

como esse arquivo é o que valida então ele vai ser executado de imediato com a pagina sendo assim se ele estiver logado a session vai receber visible assim liberando o conteudo... se não recebe hidden...

na página de login, na TD então no caso eu faria <font color="#FFFF00" style="visibility:<?php echo $_SESSION['visivel']; ?>"><b> Login inválido!</b></font> ? ou seja, se a sessão tiver falsa, ele aparece o texto, porém to pegando da pagina valida.php é desse jeito mesmo ?

Editado por coverzaum
Link para o comentário
Compartilhar em outros sites

  • 0

antes de chega nessa pagina ele tem que passa pelo Valida, porque o Valida que vai atribuir se ele pode ver ou não...

se o Valida tiver false ele não vai ver

se tiver True ele vai ver...

PS:

Isso esconde do usuario final .. MAS se você for em Exibir -> Código Fonte... vai pode ver mesmo assim... pois esta escondido em resultado final como é HTML ele ta lendo normalmente sendo assim aparece no código fonte.

Link para o comentário
Compartilhar em outros sites

  • 0

Foi o que fiz, mas continua da mesma maneira, eu não to sabendo pegar a sessão, ex:

Logo quando eu logo que ele vai pro index da página eu quero que mostre o nome do usuário logado, então coloquei o código <?php echo "Olá, " . $_SESSION['usuarioNome'] ?> porém ele só aparece Olá. ele não consegue pegar a sessão.

Link para o comentário
Compartilhar em outros sites

  • 0

abra o teu arquivo index.php

na 1ª LINHA

na primeira junto com a tag do <?php

coloque assim

<?php session_start(); ?>

lembre-se sempre que for mecher com session é preciso da start nelas...

no caso la no teu autenticar do usuario é preciso fazer o start também.

Editado por JaguA
Link para o comentário
Compartilhar em outros sites

  • 0

aaaaa, mas não vai funcionar você tem que inverte aquele comando que eu passei... eu coloquei para mostrar so quando ele acerta o login... uhsahusahusauhsa

inverte la o visible para o else e o hidden para o if.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu percebi isso, e já tinha invertido tá assim no meu código

<?php
include("seguranca.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$usuario = (isset($_POST['usuario'])) ? $_POST['usuario'] : '';
$senha = (isset($_POST['senha'])) ? $_POST['senha'] : '';

if (validaUsuario($usuario, $senha) == true) {
$_SESSION['visivel'] = 'hidden'; 
header("Location: index.php");
} else {
$_SESSION['visivel'] = 'visible'; 
expulsaVisitante();

}
}

?>

e quando eu entro na página ele já vem aparecendo

Link para o comentário
Compartilhar em outros sites

  • 0

Deu certo, o problema é que não abria a sessão, ai não achava o valor da variável, agora da certo, mas agora ficou o problema da segurança.

Se eu coloco

<?php include "seguranca.php";

protegePagina();

?>

Ele fica só na tela de login, pedindo usuario e senha toda hora, não sei o porque disso, se eu tiro funciona mas fica sem a segurança, se eu digitar /index.php ele entra sem precisar colocar login e senha

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...