Jump to content
inousi

Login incorreto

Recommended Posts

 

 

Quando faço login, não reconhece user/email já registrado anteriormente no bd.

Scripts para registro e login de usuário:

- registro usuário.php

- server.php

- login.php

O de registro de usuário está ok. Faz o registro no bd (mysql).

O de login resulta na mensagem: "Wrong username/password". (linha 79 do server.php) - apesar de ter sido confirmado o registro e conferida sua gravação no bd (users.php)

 

script server.php

<?php
session_start();

// initializing variables
$user_name = "";
$user_email = "";
$errors = array(); 

// connect to the database
$db_sys = mysqli_connect('localhost', 'root', '', 'sys');

// REGISTER USER
if (isset($_POST['user_reg'])) {
  // receive all input values from the form
  $user_name = mysqli_real_escape_string($db_sys, $_POST['user_name']);
  $user_email = mysqli_real_escape_string($db_sys, $_POST['user_email']);
  $user_pass1 = mysqli_real_escape_string($db_sys, $_POST['user_pass1']);
  $user_pass2 = mysqli_real_escape_string($db_sys, $_POST['user_pass2']);

  // form validation: ensure that the form is correctly filled ...
  // by adding (array_push()) corresponding error unto $errors array
  if (empty($user_name)) { array_push($errors, "Username is required"); }
  if (empty($user_email)) { array_push($errors, "Email is required"); }
  if (empty($user_pass1)) { array_push($errors, "Password is required"); }
  if ($user_pass1 != $user_pass2) {
	array_push($errors, "The two passwords do not match");
  }

  // check the database a user does not already exist with the same username and/or email
  $user_check_query = "SELECT * FROM users WHERE user_name='$user_name' OR user_email='$user_email' LIMIT 1";
  $result = mysqli_query($db_sysgo, $user_check_query);
  $user = mysqli_fetch_assoc($result);
  
  if ($user) { 
	// if user exists
    if ($user['user_name'] === $user_name) {
      array_push($errors, "Username already exists");
    }

    if ($user['user_email'] === $user_email) {
      array_push($errors, "email already exists");
    }
  }

  // Register user if there are no errors
  if (count($errors) == 0) {
	//encrypt the password
  	$user_pass = md5($user_pass1);
	
  	$query = "INSERT INTO users (user_name, user_email, user_pass) 
  			  VALUES('$user_name', '$user_email', '$user_pass')";
  	mysqli_query($db_sys, $query);
  	$_SESSION['user_name'] = $user_name;
  	$_SESSION['success'] = "You are now logged in";
  	header('location: index.php');
  }
}

// LOGIN USER
if (isset($_POST['login'])) {
  $user_name = mysqli_real_escape_string($db_sys, $_POST['user_name']);
  $user_pass = mysqli_real_escape_string($db_sys, $_POST['user_pass']);

  if (empty($user_name)) {
    array_push($errors, "Username is required");
  }
  if (empty($user_pass)) {
    array_push($errors, "Password is required");
  }

  if (count($errors) == 0) {
    $user_pass = md5($user_pass);
    $query = "SELECT * FROM users WHERE user_name='$user_name' AND user_pass='$user_pass'";
    $results = mysqli_query($db_sys, $query);
    if (mysqli_num_rows($results) == 1) {
      $_SESSION['user_name'] = $user_name;
      $_SESSION['success'] = "You are now logged in";
      header('location: index.php');
    }else {

//AQUI ESTÁ O ERRO QUE MOSTRA  
		array_push($errors, "Wrong username/password");
    }
  }
}

?>

<?php  if (count($errors) > 0) : ?>
  <div class="error">
    <?php foreach ($errors as $error) : ?>
      <p><?php echo $error ?></p>
    <?php endforeach ?>
  </div>
<?php endif ?>

 

login.php

<?php include('server.php') ?>
<!DOCTYPE html>
<html>
<head>
  <title>Login</title>
  <link rel="stylesheet" type="text/css" href="user_style.css">
</head>
<body>
  <div class="header">
  	<h2>Login</h2>
  </div>
	 
  <form method="post" action="login.php">
  	<?php include('errors.php'); ?>
  	<div class="input-group">
  		<label>Username</label>
  		<input type="text" name="user_name" >
  	</div>
  	<div class="input-group">
  		<label>Password</label>
  		<input type="password" name="user_pass">
  	</div>
  	<div class="input-group">
  		<button type="submit" class="btn" name="login">Login</button>
  	</div>
  	<p>
  		Not yet a member? <a href="reg_user.php">Sign up</a>
  	</p>
  </form>
</body>
</html>

 

Share this post


Link to post
Share on other sites
$query = "SELECT * FROM users WHERE user_name='$user_name' AND user_pass='$user_pass'"; 

$results = mysqli_query($db_sys, $query);

faz um debug nesta variavel $results
 

print_r($results);
exit();

e poste aqui o que retorna!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By violin101
      Olá amigos do grupo
       
      saudações...
       
      Gostaria de tirar uma dúvida com os amigos.
       
      Estou escrevendo uma rotina usando PHP + Codeigniter e fiquei com uma dúvida.
       
      Como consigo ou devo fazer para realizar Pontuações para cada produto, ou seja, dar nota de 0 à 5 ?
       
      Gostaria de utilizar checkbox.
       
      Grato,
       
      Cesar
    • By Diego-SLP
      Boa tarde,
       
      Tenho um while retornando alguns dados do meu banco e gostaria que nessa tabela a ultima linha fosse a soma da coluna, como posso fazer isso ?
       
      Obrigado
    • By Camilavip
      Oi, faço uma consulta no banco de dados para trazer os valores como: Nome, email, telefone, cidade... e se o usuário está ativo ou não
      No campo ativo ele grava 0 se não tiver ativo e 1 se tiver ativo, mas queria que ele trouxesse se for 0 a palavra Não e se for 1 a palavra Sim
      Faço a consulta como abaixo.
      <?php $sql = "SELECT * FROM clientes"; $result = $sqli->query($sql); if ($result->num_rows) { while ($dados = $result->fetch_assoc()) { $id_cliente = $dados['id_cliente']; $cliente = $dados['cliente']; $email = $dados['email']; $ativo = $dados['ativo']; ?> E em seguida apenas chamo os dados.
      <?= $cliente; ?> <?= $email; ?> <?= $ativo; ?> Que me traz os resultados
      Ricardo
      xxxx@xxxx.com
      0 ou 1 de acordo se ele está ativo ou não. Mas aqui eu queria que ele trouxesse de acordo Não ou Sim e não 0 ou 1
    • By Marcos PP
      Tenho uma tabela onde pego todos pedidos realizados no dia, porem mostro todos em uma tabela, ate ai tudo bem, mas o cliente precisa que seja agrupado por quem pediu, vou dar um exemplo,

      Na minha tabela tenho 

      ID_PEDIDO  |  ID_USER_PEDIDO |  PEDIDO
      1                   |   20                           |   524
      5                   |   52                           |   258
      2                   |   35                           |   525
      6                   |   52                           |   253
      3                   |   20                           |   658
      4                   |   20                           |   358

      No resultado me aparece conforme consulta e me mostra todos os pedidos em ordem de pedido
      SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC
       
      Se eu colocar um GROUP BY ID_USER_PEDIDO vai agrupar os pedidos de acordo com o usuário e mo mostrar apenas 1


      Eu preciso que seja mostrado todos eles porem agrupados na mesma linha da tabela
       
      <table id="datatable1" class="table display responsive "> <thead> <tr> <th class="">ID</th> <th class="">ID do usuario</th> <th class="">Pedido</th> </tr> </thead> <tbody> <?php $sql = "SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC"; $result = $conn->query($sql); while($row = $result->fetch_assoc()) { ?> <tr> <td><?php echo $row["ID_PEDIDO"];?></td> <td><?php echo $row["ID_USER_PEDIDO"];?></td> <td><?php echo $row["PEDIDO"];?></td> </tr> <?php } ?> </tbody> </table> E que seja exibido conforme esta imagem
       

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.