Skip to content

Commit

Permalink
Formulaire inscription et connexion mais bug
Browse files Browse the repository at this point in the history
  • Loading branch information
ISaejinI committed Apr 25, 2024
1 parent 24af4a0 commit 01074a3
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 4 deletions.
17 changes: 17 additions & 0 deletions models/config.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

$host="localhost";

$db="astra";

$user="root";
$passwd="";

try {
$dbAstra = new PDO("mysql:host=$host;dbname=$db", $user, $passwd, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$dbAstra->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
echo "Erreur : ".$e->getMessage()."<br>";
}

?>
80 changes: 80 additions & 0 deletions models/users.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<?php
require "./config.php";

if (isset($_POST["logmail"]) && isset($_POST["logpwd"])) {
login($_POST["logmail"], $_POST["logpwd"]);
}
elseif (isset($_POST["username"]) && isset($_POST["email"]) && isset($_POST["pwd"])) {
register($_POST["username"], $_POST["email"], $_POST["pwd"]);
}
else {
$_SESSION['error'] = "Tous les champs ne sont pas remplis";
}

function login($mail, $pwd)
{
global $dbAstra;
$req = 'SELECT * FROM users WHERE email=?';

$users = $dbAstra->prepare($req);
$users->execute(array($mail));
$line = $users->fetch();


//D'abord vérifier si ça retourne une ligne
//Si retourne une ligne ->
//Je vérifie si mail & password ok
//Si ok -> connexion
//Si pas ok -> dire que c'est NUL
//Si retourne pas ligne -> dire que pas de compte à cette adresse

if ($line === false) {
//Un compte existe avec ce mail
if ($line['password'] == sha1($pwd)) {
//Le couple mdp et mail est OK
$_SESSION['id'] = $line['id'];
header("Location: ../views/index.php");
} else {
$_SESSION['error'] = "Mot de passe incorrect";
header("Location: ../views/login.php");
}
} else {
$_SESSION['error'] = "Aucun compte existant à cette adresse";
header("Location: ../views/login.php");
}

};

function register($username, $email, $passwd) {
global $dbAstra;

//Je vérifie qu'il n'y a pas de compte déjà créé avec le mail
//Si non -> créer compte
//Si oui -> dire que déjà un compte existe

$req = 'SELECT * FROM users WHERE email=?';
$users = $dbAstra->prepare($req);
$users->execute(array($email));
$line = $users->fetch();

if ($line === false) {
//pas de compte existant -> créer le compte

$req = 'INSERT INTO users (username, email, password) VALUES (?,?,PASSWORD(?))';
$user = $dbAstra->prepare($req);
$user->execute(array($username, $email, $passwd));

$_SESSION['error'] = "Compte créé";
$_SESSION['id'] = $dbAstra -> lastInsertId();

header("Location: ../views/index.php");


} else {
$_SESSION['error'] = "Un compte existe déjà pour cette adresse mail";
header("Location: ../views/register.php");
}
}


?>
11 changes: 8 additions & 3 deletions views/login.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,23 @@
<section>
<div class="log">
<p>Connexion</p>
<form action="" method="post">
<?php
if (isset($_SESSION['error'])) {
echo '<span class="error">' . $_SESSION["error"] . '</span>';
}
?>
<form action="../models/users.php" method="post">
<div class="log-inp">
<span>
<i class='bx bxs-envelope'></i>
</span>
<input type="email" name="email" id="email" required placeholder="Adresse mail">
<input type="email" name="logmail" id="logmail" required placeholder="Adresse mail">
</div>
<div class="log-inp">
<span>
<i class='bx bxs-key'></i>
</span>
<input type="password" name="pwd" id="pwd" required placeholder="Mot de passe">
<input type="password" name="logpwd" id="logpwd" required placeholder="Mot de passe">
</div>
<br>

Expand Down
8 changes: 7 additions & 1 deletion views/register.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,13 @@
<section>
<div class="log">
<p>Inscription</p>
<form action="" method="post">
<?php
if (isset($_SESSION['error'])) {
echo '<span class="error">' . $_SESSION["error"] . '</span>';
}
?>

<form action="../models/users.php" method="post">
<div class="log-inp">
<span>
<i class='bx bxs-user'></i>
Expand Down

0 comments on commit 01074a3

Please sign in to comment.