Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Entao.. tenho nada de conhecimento praticamente em PHP mas estou tentando me virar ai e montar um simples sistema de login e cadastro, Simples mas que estou com dificuldades hahaha...
D
na tela de login recebo o seguinte erro:
Notice: Undefined index: email in C:\Program Files (x86)\VertrigoServ\www\logar.php on line 26
Notice: Undefined index: senha in C:\Program Files (x86)\VertrigoServ\www\logar.php on line 27
Ok.
Mas eu ja me deparei com este erro antes, na pagina de cadastro, resolvi da seguinte maneira, inserindo :
if(isset($_POST['enviar'])) {
Assim resolveu o problema... mas na tela de login, ja tentei colocar isso em todo canto do codigo e NADA! Ou resolve removendo a mensagem de erro mas nao efetua mais o login, e vice versa,
Codigo logar.php :
<?php
if (!isset($_SESSION)) {
session_start();
}
if($_SESSION){
echo "logado";
}
else{
$emailnome = $_POST['email'];
$senha = $_POST['senha'];
$pdo = new PDO("mysql:host=localhost;dbname=leosistema","root","vertrigo");
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
$sql = $pdo->prepare("SELECT * FROM usuarios WHERE email='$emailnome' or nome='$emailnome' AND senha='$senha'");
$sql->execute();
$num = $sql->rowCount();
if($num >0) {
$result = $sql->fetch(PDO::FETCH_OBJ);
echo "Login Efetuado";
echo "<script>document.getElementById(\"idmensagem\").style.display = \"block\"</script>";
$sql->execute();
$_SESSION['email'] = $result->email;
$_SESSION['senha'] = $result->senha;
$_SESSION['nome'] = $result->nome;
$_SESSION['nivel'] = $result->nivel;
$_SESSION['ID'] = $result->ID;
header('Refresh: 2; /painel.php' );
} else {
echo"<h1>DADOS INCORRETOS, TENTE NOVAMENTE<h1>";
echo "<script>document.getElementById(\"idmensagem\").style.display = \"block\"</script>";
echo "<script>document.getElementById(\"idmensagem\").style.background = \"#B53A3C\"</script>";
}
}
?>
Nao sei o que está faltando, ou o que estou errando... :pVi em varios lugares para usar o isset e que resolvia o problema, como eu disse, estava com o mesmo problema na pagina de cadastro e SIM, resolvi com o isset, mas na pagian de login eu tento colocar o isset, ele retira o erro mas nao efetua mais o login, ou vice versa como eu disse :/
O isset verifica se a variável existe
Se ele retornar false, significa que ela não existe. No caso do login, ou o usuári não digitou o login ou você usou o "name" errado no input
Eita, resolvi!!!
Obrigado!! eu tinha esqueci de atualizar o formualrio do login com um name, tinha feito somente no de cadastro, falta de atenção mesmo :p
O motivo do erro e a solução estão descritos aqui:
http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/#undef_index
É só usar isset