• 0
Sign in to follow this  
coverzaum

Duvida - aparecer texto de login invalido

Question

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.

Share this post


Link to post
Share on other sites

23 answers to this question

Recommended Posts

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

Share this post


Link to post
Share on other 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 ?

Edited by coverzaum

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other 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 ?

Edited by coverzaum

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other 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 ?

Edited by coverzaum

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Edited by JaguA

Share this post


Link to post
Share on other sites
  • 0

O meu código php mandei as 3 telas no tópico la em cima, falei pra dar uma olhada pra ver como não funciona a sessão, se você colocar www.newtradebrazil.com.br/tradenet/index.php ele entra sem validar nada, e aparece lá Olá do lado da imagem.

Share this post


Link to post
Share on other sites
  • 0

Valeu cara, a sessão deu certo, o nome aparece, só falta mesmo o texto de login inválido kkkkkkkkkkk

ele começa mostrando, tem que começar oculto e somente aparecer caso a pessoa erre o login

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this