Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala pessoal, tudo bem ?
Eu to me batendo pra fazer funcionar o login do painel de controle que to fazendo, quando digito os dados e clico em entrar ele simplesmente recarrega a pagina e nao faz nada, vou postar o codigo e quem puder me ajudar eu agradeço.
Util/conn.php
<?php
$host = `127.0.0.1`;
$user = `root`;
$password = `fagner`;
$db = `jfweld`;
$conn = mysql_connect($host, $user, $password);
mysql_select_db($db, $conn);
?>
index.php
<?php
if(isset($_POST['user'])) {
require_once "Util/conn.php";
$user = $_POST["user"];
$password = $_POST["password"];
$sql = "SELECT * FROM users WHERE user = '".$user."' AND password = '".$password."'";
$result = mysql_query($sql, $conn);
if(mysql_num_rows($result) == 0) {
header("location: index.php");
$msg = "Erro - Usuario ou Senha inválido !";
} else {
session_start();
$_SESSION["login"] = mysql_fetch_assoc($result);
header("location: main.php");
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="Soldas Especiais e Manutenção Industrial" />
<meta name="keywords" content="Soldas Especiais Curitiba, Manutenção Industrial Curitiba" />
<meta name="author" content="Fagner Almeida" />
<meta name="contact" content="fagnerfxa@gmail.com" />
<title>JFWeld - Painel de Controle</title>
<link type="text/css" rel="stylesheet" href="css/estilo.css" />
</head>
<body>
<div id="mid">
<img src="img/logo.png" alt="logo" /><br /><br />
<h1 class="title">Painel de Controle</h1><br />
<p class="text">Digite seu login e senha para acessar o sistema.</p><br />
<?php
if(isset($msg)) {
echo `<p class="error">`.$msg.`</p>`;
}
?>
<form action="" method="post" name="frmLogin">
<center>
<table border="0">
<tr>
<td width="70"><label for="loginUser">Usuário:</label></td>
<td><input type="text" name="user" id="loginUser" /></td>
</tr>
<tr>
<td width="70"><label for="loginPassword">Senha:</label></td>
<td><input type="password" name="password" id="loginPassword" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><input type="submit" name="submit" id="loginButton" value="Entrar" /></td>
</tr>
</table>
</center>
</form>
</div>
</body>
</html>Olá! Provavelmente Foi erros Basicos.
tenta esse codigo
<?php
session_start();
if(isset($_POST['user'])) {
require_once "Util/conn.php";
$user = $_POST["user"];
$password = $_POST["password"];
$sql = "SELECT * FROM users WHERE user = '$user' AND password = '$password'";
$result = mysql_query($sql);
if(mysql_num_rows($result) =="") { // =="") = Zero 0 é um valor.
header("Location: index.php");
$msg = "Erro - Usuario ou Senha inválido !";
} else {
$_SESSION["login"] = mysql_fetch_assoc($result);
header("location: main.php");
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="Soldas Especiais e Manutenção Industrial" />
<meta name="keywords" content="Soldas Especiais Curitiba, Manutenção Industrial Curitiba" />
<meta name="author" content="Fagner Almeida" />
<meta name="contact" content="fagnerfxa@gmail.com" />
<title>JFWeld - Painel de Controle</title>
<link type="text/css" rel="stylesheet" href="css/estilo.css" />
</head>
<body>
<div id="mid">
<img src="img/logo.png" alt="logo" /><br /><br />
<h1 class="title">Painel de Controle</h1><br />
<p class="text">Digite seu login e senha para acessar o sistema.</p><br />
<?php
if(isset($msg)) {
echo `<p class="error">`.$msg.`</p>`;
}
?>
<form action="" method="post" name="frmLogin">
<center>
<table border="0">
<tr>
<td width="70"><label for="loginUser">Usuário:</label></td>
<td><input type="text" name="user" id="user" /></td>
</tr>
<tr>
<td width="70"><label for="loginPassword">Senha:</label></td>
<td><input type="password" name="password" id="password" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><input type="submit" name="submit" id="loginButton" value="Entrar" /></td>
</tr>
</table>
</center>
</form>
</div>
</body>
</html>
posta o retorno.
Eu acho, não tenho certeza, mas é porque sempre que você coloca um header no seu código, ele será executado entes de qualquer outro elemento.
Por exemplo, quero um alerta em JS:
echo "<script>window.alert('Alerta de teste');</script>";
Repare que mostrará o alerta normalmente.
Agora vamos fazer diferente. Botar o alerta e depois mandar redirecionar para o google.com:
echo "<script>window.alert('Alerta de teste');</script>";
header ("location: http://google.com");
Se quer redirecionar, use JS mesmo:
echo "<script>window.alert('Alerta de teste');</script>";
echo "<script>location.href='http://google.com';</script>";
Repare que mostrará o alerta e logo em seguida redirecionará.
Por isso que não foram criadas as $_SESSION's
>
Olá! Provavelmente Foi erros Basicos.
tenta esse codigo
<?php
session_start();
if(isset($_POST['user'])) {
require_once "Util/conn.php";
$user = $_POST["user"];
$password = $_POST["password"];
$sql = "SELECT * FROM users WHERE user = '$user' AND password = '$password'";
$result = mysql_query($sql);
if(mysql_num_rows($result) =="") { // =="") = Zero 0 é um valor.
header("Location: index.php");
$msg = "Erro - Usuario ou Senha inválido !";
} else {
$_SESSION["login"] = mysql_fetch_assoc($result);
header("location: main.php");
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="Soldas Especiais e Manutenção Industrial" />
<meta name="keywords" content="Soldas Especiais Curitiba, Manutenção Industrial Curitiba" />
<meta name="author" content="Fagner Almeida" />
<meta name="contact" content="fagnerfxa@gmail.com" />
<title>JFWeld - Painel de Controle</title>
<link type="text/css" rel="stylesheet" href="css/estilo.css" />
</head>
<body>
<div id="mid">
<img src="img/logo.png" alt="logo" /><br /><br />
<h1 class="title">Painel de Controle</h1><br />
<p class="text">Digite seu login e senha para acessar o sistema.</p><br />
<?php
if(isset($msg)) {
echo `<p class="error">`.$msg.`</p>`;
}
?>
<form action="" method="post" name="frmLogin">
<center>
<table border="0">
<tr>
<td width="70"><label for="loginUser">Usuário:</label></td>
<td><input type="text" name="user" id="user" /></td>
</tr>
<tr>
<td width="70"><label for="loginPassword">Senha:</label></td>
<td><input type="password" name="password" id="password" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><input type="submit" name="submit" id="loginButton" value="Entrar" /></td>
</tr>
</table>
</center>
</form>
</div>
</body>
</html>
posta o retorno.
O 0 está certo. O mysql_num_rows() é pra retornar a quantidade em formato de número e não uma string vazia.
Obrigado a todos pelas respostas, vamos por partes:
1) Um dos erros que identificamos foi eu usar header pro index.php em caso de falha, pq eu vou redirecionar pro index se eu j'a estou no index ? entao basta eu setar a $msg com a mensagem de erro.
2) Tanto eu digitando user/senha errado ou certo ele ta dando mensagem de erro, mas nao consigo identificar o erro na minha query, alguem ai sabe oque pode ser ?
PS: Dei um echo no $sql e colei/executei a resposta no phpmyadmin e ele trouxe 1 resultado, ou seja, o problema n~ao esta sendo na minha query.
Vixi, mais ninguem sabe ? eu to tentando aqui mas ja estou sem ideias doque fazer, eu sei que eh proibido da up, mas eu to precisando muito de ajuda e com essa minha resposta automaticamente o topico vai dar um up '-'
Tente fazer o $result somente assim:
$result = mysql_query($sql);
Já tentei mas não foi :(
Olha amigo, é como o felipe592 disse:
if(mysql_num_rows($result) =="") { // =="") = Zero 0 é um valor.
Tente mudar para o que está abaixo, testei aqui e funcionou:
if(mysql_num_rows($result) == '0') {
Aeeeeeeeeeeee, deu certo :D :D :D :D :D :D :D :D :D :D :D :D
Engraçado que quando fiz da primeira vez foi com mysql_numrows 0, mas tinha feito assim:
if(mysql_num_rows($result) == 0) {}
e o certo é como você disse, eu já não sabia oque fazer e no final foi uma coisa simples ><
muito obrigado, vlw, flw :lol:
Bem, esquisito, pois o mysql_num_rows() sempre funciona somente com inteiros.
Mas se deu, melhor. :grin:
if(mysql_num_rows($result) == 0) {
Faz assim vamo ver o que o resultado que o codigo te devolve.