Aller au contenu

Créer un système de Connexion / Inscription en PHP


4Spartan8
 Share

Recommended Posts

Alors, voilà la page accueil.php :

<!-- ACCUEIL -->
<html lang="FR">
	<head>
		<meta charset="UTF-8"/>
		<title>Accueil</title>
	</head>
	
<body style="text-align:center;">

	<!-- FORMULAIRE HTML BASIQUE -->
	<form method="post" action="inscription.php">
		<p>Pseudo : <input type="text" name="login" placeholder="Identifiant"/></p>
		<p>Mot de passe : <input type="password" name="password" placeholder="Mot de passe"/></p>
		<input type="submit" name="submit" value="Connexion"/>
		
	</form>



</body>
</html>

Et voilà la page inscription.php :

<?php

/* CONNEXION A LA BASE DE DONNEE */
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '***');
	$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $e)
{
	die('Erreur : ' . $e->getMessage());
}


/* ON CREER NOS VARIABLES */
$login = htmlspecialchars($_POST['login']);
$password = htmlspecialchars($_POST['password']); //Variable qui ne nous servira qu'une seule fois
$password_hash = sha1($password); //On créer une nouvelle variable qui comprend le mot de passe entré mais hashé en SHA1

if(isset($_POST['submit'])){ //Si on a soumi le formulaire
	
	
	//Ici on va lister les erreurs dans un tableau, pour chaque nouvelle erreur on créer une case dans le tableau
	//On part de 0 donc -> $error[0] PUIS ENSUITE $error[1] etc ..
	
	if(empty($login)){
		$error[0] = 'Login vide'; //La première entrée du tableau sera = au message 'Login vide'
	}
	
	if(empty($password)){
		$error[1] = 'Password vide'; //Pareil que plus haut
	}
	
	
	if(count($error) == 0){ //Cette fonction compte le nombre d'entrée dans le tableau (attention $error[0] compte comme une entrée. Ici on dit que si le nombre d'entrée dans le tableau est égale à 0 alors on peut faire l'insertion car aucune erreur
		$req = $bdd->prepare('INSERT INTO members(login, password) VALUES(:login, :password)');
		$req->execute(array(
				'login' => $login,
				'password' => $password_hash));
		echo 'Inscription validée !'; //On affiche un message quand l'utilisateur est inscrit correctement
	}else{ //Par contre si le nombre d'entrée est supérieur à zéro alors on fait une boucle et on affiche les erreurs avec la variable $list
		foreach ($error as $list){
			echo $list . '<br/>';
		}
	}
	
}
?>

Le code de la page d'inscription est assez compliqué, si tu as des questions n'hésite pas, une fois que tu as essayé donne moi un retour ;)

Je n'ai pas inclue le code pour la connexion par contre ! :P 

Lien vers le commentaire
Partager sur d’autres sites

ok merci c'est rare de nos jours les gens aussi sympas ;) je te dirais des nouvelles une fois que se seras importer dans mon site j'ai 500 fichiers en cours donc faut patienter :/ tinquiète je vais essayer de me bébrouiller pour la connexion, 

EDIT

ok c'est cool merci maintenant je vais améliorer sa avec une confirmation du mot de passe, mais une question a quoi servent les placeholders ?

<p>Mot de passe : <input type="password" name="password" placeholder="Mot de passe"/></p>
Modifié par zougui
Lien vers le commentaire
Partager sur d’autres sites

il y a 47 minutes, zougui a dit :

ok merci c'est rare de nos jours les gens aussi sympas ;) je te dirais des nouvelles une fois que se seras importer dans mon site j'ai 500 fichiers en cours donc faut patienter :/ tinquiète je vais essayer de me bébrouiller pour la connexion, 

EDIT

ok c'est cool merci maintenant je vais améliorer sa avec une confirmation du mot de passe, mais une question a quoi servent les placeholders ?


<p>Mot de passe : <input type="password" name="password" placeholder="Mot de passe"/></p>

Pas de soucis, c'est normal ! ;)

Les placeholder servent à afficher un message dans le fond de ton input, regarde ton formulaire sur ta page HTML, tu devrais voir écris "Mot de passe". Bien sur ils ne sont pas indispensables, tu peux très bien les enlever ! :) 

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Petit probleme tout bete, je suis débutant et je ne sais pas du tout ou et dans quel circonstance placer ce morceaux de code

Merci d'avance

CREATE TABLE membre (
   id int(11) NOT NULL auto_increment,
   login varchar(8) NOT NULL,
   password varchar(8) NOT NULL,
   PRIMARY KEY (id),
   KEY ID_2 (id)
);
Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Bonjour! Quant à moi tout fonctionne, sauf la page de connexion, soit la page de connexion ne fonctionne pas (pour moi) soit le code sur les pages spécificiques pour rediriger les utilisateurs si ils ne sont pas connecté ne fonctionne pas, je sais pas quel est le problème .. Quelqu'un pourrait m'aider ?

Lien vers le commentaire
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Vous avez collé du contenu avec mise en forme.   Supprimer la mise en forme

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Chargement
 Share

×
×
  • Créer...