Mensagem comum

PHP

07/06/2014

estou tentando apresentar uma mensagem de login incorreto, estou fazendo apenas com o echo, mas não está aparecendo.

o que se deve fazer?
Marcio Araujo

Marcio Araujo

Curtidas 0

Respostas

Andrew Angelim

Andrew Angelim

07/06/2014

Olá Marcio..
Poderia ser mais específico na pergunta?
Essa mensagem de erro deve aparecer quando o usuário informar os dados incorretos?

É isso?

vlw
GOSTEI 0
Andrew Angelim

Andrew Angelim

07/06/2014

Se for possível pode postar o código??
GOSTEI 0
Marcio Araujo

Marcio Araujo

07/06/2014

Andrew, valeu pelo interesse, eu acompanhei um artigo da devmedia, sobre como inserir uma tela de login em um pequeno projeto, até ai tudo bem, consegui montar.
ex: tenho um usuario cadastrado e me logo com ele sem problemas, mas quando coloco um usuario inexistente(de proposito) ele apenas fica na de login sem apresentar nada, nenhuma mensagem, eu queria apenas mostrar uma mensagem. "usuario/senha incorretos ou inexistente".
GOSTEI 0
Andrew Angelim

Andrew Angelim

07/06/2014

if (isset($_POST['acessar'])) {
    $usuarios = htmlentities($_POST['usuario'], ENT_QUOTES);
    $senhas = htmlentities($_POST['senha'], ENT_QUOTES);

    include_once("../conexao/conexao.php");
    $sql = "SELECT * FROM tabela WHERE usuario = '$usuarios' AND senha = '$senhas'";
    $result = mysql_query($sql) or die(mysql_error());

    if (mysql_num_rows($result) == 1) {
        session_start();
        $_SESSION['usuario'] = $usuarios;
        $_SESSION['senha'] = $senhas;
        header('Location: proxima.php');
    } else {

        echo "<script>alert('Dados incorretos. Tente novamente!')</script>";
    }
}



Acho que com esse código da pra você se baseia...
O usuário digita login e senha normalmente, ao clicar no botão de submit, nesse momento é feito um select no banco de dados para verificar se o usuário existe ou não..se existe
então a linha da função mysql_num_rows é verdade, ele executa a SESSION e passa para próxima pagina pelo header(Location: proxima.php), se não existir, ele da o alert na tela (Dados incorretos.Tente novamente), esse alerta fica a seu critério de como a escrita deve aparecer.
GOSTEI 0
Marcio Araujo

Marcio Araujo

07/06/2014

Obrigado.
estava usando esse codigo, fiz uma modificação chamando para outro arquivo php, mas acho que não é a forma correta de apresentar a mensagem:


if(mysql_num_rows ($result) > 0 )
	{ $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; 
	header('location:admin/cadastrar.php'); 
 } 
 else{
	unset ($_SESSION['login']); unset ($_SESSION['senha']); 	
	header('location:error.php'); 	
 } ?>

GOSTEI 0
Andrew Angelim

Andrew Angelim

07/06/2014

Não precisa você chamar outra página para exibir a mensagem de erro,
Basta usar o <script>alert('Mensagem')</script> que atende muito bem, pelo menos pra mim..


vlw
GOSTEI 0
Marcio Araujo

Marcio Araujo

07/06/2014

então faço assim?


if(mysql_num_rows ($result) > 0 )
    { $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; 
    header('location:admin/cadastrar.php'); 
 } 
 else{
    unset ($_SESSION['login']); unset ($_SESSION['senha']);     
    <script>alert('Mensagem')</script>  
 } ?>

GOSTEI 0
Andrew Angelim

Andrew Angelim

07/06/2014

eu nunca usei dessa forma, mas creio que funcione também..

Tenta ai, qualquer coisa me diz qual o resultado....


vlw
GOSTEI 0
Marcio Araujo

Marcio Araujo

07/06/2014

irei testar aqui, retornarei para avisar!!!
obrigado.
GOSTEI 0
Marcio Araujo

Marcio Araujo

07/06/2014

Andrew, fiz da seguinte forma


if(mysql_num_rows ($result) > 0 )
    { $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; 
    header('location:admin/cadastrar.php'); 
 } 
 else{
    unset ($_SESSION['login']); unset ($_SESSION['senha']);     
    echo "<script>alert('Usuario/Senha incorretos ou inexistente')</script>"; 
	header('location:index.php');
 } 
 ?>



o problema é que não está apresentando a mensagem, quando eu tiro o
header('location:index.php');

aparece a mensagem, mas o problema é que em seguida é transferido para uma outra pagina. como faço para
aparecer a mensagem e ficar no index.php?
GOSTEI 0
Andrew Angelim

Andrew Angelim

07/06/2014

Esse sistema de login e senha, o arquivo dele, encontra - se no mesmo local da index.php?
GOSTEI 0
Marcio Araujo

Marcio Araujo

07/06/2014

sim, no mesmo diretorio.
GOSTEI 0
Andrew Angelim

Andrew Angelim

07/06/2014

Tente deixar somente:

 echo "<script>alert('Usuario/Senha incorretos ou inexistente')</script>"; 


Tire o unset e o header.
GOSTEI 0
Marcio Araujo

Marcio Araujo

07/06/2014

irei tentar dessa forma, obrigado.
amanha irei avisar.
GOSTEI 0
Marcio Araujo

Marcio Araujo

07/06/2014

a principio, deu certo, porem, depois da mensagem(Ok), ele passa para a pagina que não é o index.
GOSTEI 0
Andrew Angelim

Andrew Angelim

07/06/2014

Marcio me parece que você não iniciou a função Session_start();
se for isso mesmo, inicie a sessão. Veja meu exemplo lá em cima.


Se continuar o erro, post seu código completo se puder..


Abraço
GOSTEI 0
Marcio Araujo

Marcio Araujo

07/06/2014

tem que colocar assim:


<?php 
session_start();
if((!isset ($_SESSION['login']) == true) and (!isset ($_SESSION['senha']) == true)) { 
		unset($_SESSION['login']);
		unset($_SESSION['senha']); 
		header('location:index.php');
	} $logado = $_SESSION['login'];
?>

GOSTEI 0
Andrew Angelim

Andrew Angelim

07/06/2014

Sim, é dessa forma mesmo...
GOSTEI 0
Marcio Araujo

Marcio Araujo

07/06/2014

pera aew, esse codigo ja está ok. quero dizer, ja estava. fiquei sem entender, desculpa.
GOSTEI 0
POSTAR