Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 485769
            [titulo] => Perciso de ajuda urgente, Problema com tela de login
            [dataCadastro] => DateTime Object
                (
                    [date] => 2014-07-17 09:09:41
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 281152
            [status] => A
            [isExample] => 
            [NomeUsuario] => David A. Sylvestre
            [Apelido] => 
            [Foto] => 
            [Conteudo] => Posta o Valida Login, mas tenta postar ele formatado e dentro da tag code, facilita a leitura.
Mas já adianto que o que provavelmente está ocorrendo é que não está sendo tratado se a variável existe.
Aqui tem um exemplo muito bom[1]

[1][url:descricao=http://blog.thiagobelem.net/criando-um-sistema-de-login-com-php-e-mysql/]http://blog.thiagobelem.net/criando-um-sistema-de-login-com-php-e-mysql/[/url] ) )

Perciso de ajuda urgente, Problema com tela de login

PHP
Adenesjr
   - 16 jul 2014

Criei um forme de login como index.php, só que quando acesso sem informar nenhum dado (submit) o php é executado e dar uma mensagem de error:
Notice: Undefined index: usuario in C:\wamp\www\digidocs\src\lib\valida_login.php on line 11
Notice: Undefined index: senha in C:\wamp\www\digidocs\src\lib\valida_login.php on line 12
Warning: Invalid argument supplied for foreach() in C:\wamp\www\digidocs\src\lib\usuario.class.php on line 209
Essa mensagem de erro ocorre ao acessa index.php, ou seja ele ler o arquivo valida_login.php antes de informar qualquer dado no form e clicar em button. Como faço para que ele só execute a verificação só quando eu clicar no button?
index.php:
<?php
require_once 'src/lib/valida_login.php';
?>
<div id="corpo">
<div class="titulo_login">
Login de acesso ao sistema
</div>
<div id="logo_login">
<div id="mensagem_login">
<p>Para acessar o sistema use seu email e senha de acesso ao sistema.</p>
<center><img src="public/img/cadeado.png" alt="logo cadeado" width="60%"></center>
</div>
<div id="tela_login">
<form action="" method="POST">
<label for="email">Email:</label><br>
<input type="text" id="usuario" name="email">
<div>
<div class="senha"><label for="senha">Senha:</label></div>
<div><p><a href="#">Esqueceu sua senha?</a></p></div>
</div>
<input type="password" id="senha" name="senha">
<div id="lower">
<input type="checkbox"><label class="check" for="checkbox">Mantenha-me logado</label>
<input type="submit" value="Entrar">
</div><!--/ lower-->
</form>
</div>
</div>
</div><!--/ corpo-->

Post mais votado

David Sylvestre
   - 17 jul 2014

Posta o Valida Login, mas tenta postar ele formatado e dentro da tag code, facilita a leitura.
Mas já adianto que o que provavelmente está ocorrendo é que não está sendo tratado se a variável existe.
Aqui tem um exemplo muito bom[1]

[1]http://blog.thiagobelem.net/criando-um-sistema-de-login-com-php-e-mysql/

1
|
0

Adenesjr
   - 17 jul 2014

Veja aí David, ele está lendo $usuario = $_POST['usuario']; e $usuario = $_POST['senha']; antes de dar o post

#Código

<?php
	// Inclui o arquivo com a classe de login
	require_once("usuario.class.php");
	
	// Instancia a classe
	$userClass = new Usuario();

	// Pega os dados vindos do formulário
	$usuario = $_POST['usuario'];
	$senha   = $_POST['senha'];

	// Se o campo "lembrar" não existir, o script funcionará normalmente
	$lembrar = (isset($_POST['lembrar']) AND !empty($_POST['lembrar']));
	 
	// Tenta logar o usuário com os dados
	if ( $userClass->logaUsuario( $usuario, $senha, $lembrar ) ) {		    	
    	        // Usuário logado com sucesso, redireciona ele para a página restrita
          	header("Location: logado.php");
         	exit;
	} else {
    	       // Não foi possível logar o usuário, exibe a mensagem de erro
    	      echo "<strong>Erro: </strong>" . $userClass->erro;
    }
?>

0
|
0

David Sylvestre
   - 17 jul 2014

#Código

<?php
    // Inclui o arquivo com a classe de login
    require_once("usuario.class.php");
     
    // verifica se veio de um POST
    if ($_SERVER['REQUEST_METHOD'] == 'POST'){
        // Instancia a classe
        $userClass = new Usuario();
     
        // Pega os dados vindos do formulário
        // verifica se as variaveis existem
        $usuario = isset($_POST['usuario'])) ? $_POST['usuario'] : '';//$_POST['usuario'];
        $senha   = isset($_POST['senha'])) ? $_POST['senha'] : '';//$_POST['senha'];
     
        // Se o campo "lembrar" não existir, o script funcionará normalmente
        $lembrar = (isset($_POST['lembrar']) AND !empty($_POST['lembrar']));
          
        // Tenta logar o usuário com os dados
        if ( $userClass->logaUsuario( $usuario, $senha, $lembrar ) ) {               
                    // Usuário logado com sucesso, redireciona ele para a página restrita
                header("Location: logado.php");
                exit;
        } else {
                   // Não foi possível logar o usuário, exibe a mensagem de erro
                  echo "<strong>Erro: </strong>" . $userClass->erro;
        }
    }
?>


Ai nesse script tem um tratamento para ver se o formulário veio de um método POST, senão toca o barco sem realizar as rotinas de login.

1
|
0

Adenesjr
   - 17 jul 2014

Muito obrigado, passei a noite quebrando a cabeça.

0
|
0

David Sylvestre
   - 17 jul 2014


Citação:
Muito obrigado, passei a noite quebrando a cabeça.

Faz parte da vida de desenvolvedor rsrsrs

1
|
0

William (devwilliam)
   - 23 jul 2014

Finalizando tópico!

1
|
0