Page 1 sur 1

Problème de login

Posté : 17 févr. 2021, 23:46
par KNWEB
Bonjour,

J'ai un souci de login que je ne comprends pas.
il m'est impossible de me loguer dans ma base de données. le fichier register fonctionne
mais dès que je veux me loguer ça bloque.

Est-ce que quelqu'un peut m'aider svp?

voici mon code

config.php
<?php
// Informations d'identification
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'sosh24');
 
// Connexion à la base de données MySQL 
$conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
 
// Vérifier la connexion
if($conn === false){
    die("ERREUR : Impossible de se connecter base de données. " . mysqli_connect_error());
}
?>
register .php
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="CSS/style3.css" />
</head>
<body>
<?php
require('config.php');
if (isset($_REQUEST['username'], $_REQUEST['email'], $_REQUEST['password'])){
	// récupérer le nom d'utilisateur et supprimer les antislashes ajoutés par le formulaire
	$username = stripslashes($_REQUEST['username']);
	$username = mysqli_real_escape_string($conn, $username); 
	// récupérer l'email et supprimer les antislashes ajoutés par le formulaire
	$email = stripslashes($_REQUEST['email']);
	$email = mysqli_real_escape_string($conn, $email);
	// récupérer le mot de passe et supprimer les antislashes ajoutés par le formulaire
	$password = stripslashes($_REQUEST['password']);
	$password = mysqli_real_escape_string($conn, $password);
	
	$query = "INSERT into users (username, email, type, password)
				VALUES ('$username', '$email', 'user', '".hash('sha256',$password)."')";
	$res = mysqli_query($conn, $query);

    if($res){
       echo "<div class='sucess'>
             <h3>Vous êtes inscrit avec succès.</h3>
             <p>Cliquez ici pour vous <a href='login.php'>connecter</a></p>
			 </div>";
    }
}else{
?>
<form class="box" action="" method="post">
	<h1 class="box-logo box-title">SOS-H24.be</h1>
    <h1 class="box-title">S'inscrire</h1>
	<input type="text" class="box-input" name="username" placeholder="Nom d'utilisateur" required />
    <input type="text" class="box-input" name="email" placeholder="Email" required />
    <input type="password" class="box-input" name="password" placeholder="Mot de passe" required />
    <input type="submit" name="submit" value="S'inscrire" class="box-button" />
    <p class="box-register">Déjà inscrit? <a href="login.php">Connectez-vous ici</a></p>
</form>
<?php } ?>
    
 <img class="displayed" src="Images/Logo%20foot.png" alt="sos-h24" class="img-fluid">
      
</body>
</html>
login.php
<!DOCTYPE html>
<html>
<head>
	<link rel="stylesheet" href="CSS/style3.css" />
</head>
<body>
<?php
require('config.php');


if (isset($_POST['username'])){
	$username = stripslashes($_REQUEST['username']);
	$username = mysqli_real_escape_string($conn, $username);
	$_SESSION['username'] = $username;
	$password = hash('sha256',$_REQUEST['password']);
	$password = mysqli_real_escape_string($conn, $password);
    $query = "SELECT * FROM users WHERE username='$username' and password='$password'";
	$result = mysqli_query($conn,$query) or die(mysql_error());
	
	if (mysqli_num_rows($result) == 1) {
		$user = mysqli_fetch_assoc($result);
		// vérifier si l'utilisateur est un administrateur ou un utilisateur
		if ($user['type'] == 'admin') {
			header('location: admin/home.php');		  
		}else{
			header('location: index.php');
		}
	}else{
		$message = "Le nom d'utilisateur ou le mot de passe est incorrect.";
	}
}
?>
<form class="box" action="" method="post" name="login">
<h1 class="box-logo box-title">SOS-H24.be</h1>
<h1 class="box-title">Connexion</h1>
<input type="text" class="box-input" name="username" placeholder="Nom d'utilisateur">
<input type="password" class="box-input" name="password" placeholder="Mot de passe">
<input type="submit" value="Connexion " name="submit" class="box-button">
<p class="box-register">Vous êtes nouveau ici? <a href="register.php">S'inscrire</a></p>
<?php if (! empty($message)) { ?>
    <p class="errorMessage"><?php echo $message; ?></p>

</form>
    <?php } ?>


   
</body>
    
</html>
index.php
<?php
	// Initialiser la session
	session_start();
	// Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion
	if(!isset($_SESSION["username"])){
		header("Location: login.php");
		exit(); 
	}
?>
<!DOCTYPE html>
<html>
	<head>
	<link rel="stylesheet" href="style.css" />
	</head>
	<body>
		<div class="sucess">
		<h1>Bienvenue <?php echo $_SESSION['username']; ?>!</h1>
		<p>C'est votre espace utilisateur.</p>
		<a href="logout.php">Déconnexion</a>
		</div>
	</body>
</html>

D'avance je vous remercie tous

Re: Problème de login

Posté : 18 févr. 2021, 12:12
par two3d
Utilise la balise le code pour mettre en valeur ton code source stp.

Fais des var_dump() de tes variables pour voir où pourrait être le problème.

Re: Problème de login

Posté : 19 févr. 2021, 10:56
par Ryle
Salutations !

Quand tu dis que cela bloque, peux-tu être plus précis ? Y a-t-il un message d'erreur ? une page blanche ? ...

Petite remarque qui pourra peut être résoudre ton soucis : certains serveurs requièrent que "Location:" soit spécifié avec un "L" majuscule dans la fonction header().