Fórum Perciso de ajuda urgente, Problema com tela de login #485759
16/07/2014
0
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-->
Adenes Junior
Curtir tópico
+ 0Post mais votado
17/07/2014
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/
David Sylvestre
Gostei + 1
Mais Posts
17/07/2014
Adenes Junior
<?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;
}
?>
Gostei + 0
17/07/2014
David Sylvestre
<?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.
Gostei + 1
17/07/2014
Adenes Junior
Gostei + 0
17/07/2014
David Sylvestre
Faz parte da vida de desenvolvedor rsrsrs
Gostei + 1
23/07/2014
William
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)