Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
A ação do botão entrar esta sendo executada quando a pagina esta sendo aberta e não quando aperto o botão.
<?php
require_once "config.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html, charset=utf-8">
<title>VIDEO - CADASTRO COM PHP</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="cadastro">
<form method="post" action="?go=logar">
<table id="login_table">
<tr>
<td>Usuário:</td>
<td><input type="text" name="usuario" id="usuario" class="txt" maxlength="15" /></td>
</tr>
<tr>
<td>Senha:</td>
<td><input type="password" name="senha" id="senha" class="txt" maxlength="15" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Entrar" class="btn" id="btnEntrar">
<a href="cadastro.php"><input type="button" value="Cadastre-se" class="btn" id="btnCad"></a></td>
</tr>
</table>
</form>
</div>
</body>
</html>
<?php
if(@$_GET['go'] == 'logar'){
$user = $_POST['usuario'];
$pwd = $_POST['senha'];
if(empty($user)){
echo "<script>alert('Preencha todos os campos para logar-se.'); history.back();</script>";
}elseif(empty($pwd)){
echo "<script>alert('Preencha todos os campos para logar-se.'); history.back();</script>";
}else{
$query1 = mysql_num_rows(mysql_query("SELECT * FROM USUARIO WHERE USUARIO = '$user' AND SENHA = '$pwd'"));
if($query1 == 1){
echo "<script>alert('Usuário logado com sucesso.');</script>";
echo "<meta http-equiv='refresh' content='0, url=./_painel/'>";
}else{
echo "<script>alert('Usuário e senha não correspondem.'); history.back();</script>";
}
}
}
?>Executa a ação go?logar, e abre as três mensagens da ação: "Preencha todos os campos para logar-se.", "Usuário logado com sucesso" e "Usuário e senha não correspondem.".
Quando o script é executado pela 1ª vez a $_GET['go'] não existe então ele entra no condicional if fazendo as validações e dando o alert na tela.
faltou uma verificação isset($_GET['go']) antes de if(@$_GET['go'] == 'logar')Queria saber se as linhas fica assim:
<?php
isset($_GET['go']);
if(@$_GET['go'] == 'logar'){
$user = $_POST['usuario'];
$pwd = $_POST['senha'];if(isset($_GET['go']) && ($_GET['go'] == 'logar')){
}2 sugestões:
1. seu botão "Entrar" está sem nome; você pode usa-lo para submeter o form:
<td colspan="2"><input type="submit" value="Entrar" class="btn" name="btnEntrar">
if(isset($_POST['btnEntrar'])){
$user = $_POST['usuario'];
$pwd = $_POST['senha'];
etc.
2. para verificar se algum campo ficou em branco, use o operador || ("ou"):
if(empty($user) || empty($pwd)){
assim poderá descartar essas duas linhas:
}elseif(empty($pwd)){
echo "<script>alert('Preencha todos os campos para logar-se.'); history.back();</script>";>
2 sugestões:
1. seu botão "Entrar" está sem nome; você pode usa-lo para submeter o form:
<td colspan="2"><input type="submit" value="Entrar" class="btn" name="btnEntrar">
if(isset($_POST['btnEntrar'])){
$user = $_POST['usuario'];
$pwd = $_POST['senha'];
etc.
2. para verificar se algum campo ficou em branco, use o operador || ("ou"):
if(empty($user) || empty($pwd)){
assim poderá descartar essas duas linhas:
Fernando seu primeiro método não resolveu, e o segundo sim mas só resolve o problema dos campos vazios, ainda passa os erros do login com sucesso e da senha ou usuário incorretos.
Não vejo aí o motivo pra isso. Qual o comportamento da página após carregamento ?