Perciso de ajuda urgente, Problema com tela de login
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
Post 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
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; } ?>
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.
17/07/2014
David Sylvestre
Faz parte da vida de desenvolvedor rsrsrs
Clique aqui para fazer login e interagir na Comunidade :)