Formulaire de connexion

sandrouna - 22 janv. 2013 à 12:44
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 - 23 janv. 2013 à 08:32
Bonjour,
je debute en php/myql . je souhaiterai creer une page d'authentification qui contient 4 champs:
un login
un mot de passe initialement vide
un nouveau mot de passe
confirmation du nouveau mot de passe

Je souhaiterais que quand l'utilisateur se connecte pour la première fois il soit obligé de creer un nouveau mot de passe et de le confirmer pour pouvoir se connecter
merci pour votre aide

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
22 janv. 2013 à 13:32
Bonjour,

Nous ne sommes pas sur ce forum pour faire vos devoirs ou autres PFE/excercices, pour plus d'explication, lisez ce sujet et celui-ci aussi.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
mon probleme c'est que quand je crée mon mot de passe, il est inseré dans la BD sauf que je n'arrive pas à me connecter avec.
voila une partie de mon code

<?php

session_start();

require '../config/connect.php';



$error = FALSE;
$registerOK = FALSE;

// On regarde si l'utilisateur est bien passé par le module d'inscription


// On regarde si tout les champs sont remplis, sinon, on affiche un message à l'utilisateur.
if($_POST["CODE_RESSOURCE"] == NULL OR $_POST["password"] == NULL ){


$error = TRUE;


$errorMSG = "Tout les champs doivent être remplis !";

}


elseif($_POST["password"] == $_POST["pass2"]){

// On regarde si le mot de passe et le nom de compte n'est pas le même
if($_POST["CODE_RESSOURCE"] != $_POST["password"]){

// Si c'est bon on regarde dans la base de donnée si le nom de compte est déjà utilisé :
$sql "SELECT CODE_RESSOURCE FROM cra_tb_ressources WHERE CODE_RESSOURCE '".$_POST["CODE_RESSOURCE"]."' ";
$sql = mysql_query($sql);
// On compte combien de valeur à pour nom de compte celui tapé par l'utilisateur.
$sql = mysql_num_rows($sql);

// Si $sql est égal à 0 (c'est-à-dire qu'il n'y a pas de nom de compte avec la valeur tapé par l'utilisateur
if($sql == 0){

// Si tout va bien on regarde si le mot de passe n'exède pas 60 caractères.
if(strlen($_POST["password"] < 60)){

// Si tout va bien on regarde si le nom de compte n'exède pas 60 caractères.
if(strlen($_POST["CODE_RESSOURCE"] < 60)){

// Si le nom de compte et le mot de passe sont différent :
if($_POST["CODE_RESSOURCE"] != $_POST["password"]){

// Si tout ce passe correctement, on peut maintenant l'inscrire dans la base de données :
$sql = "INSERT INTO cra_tb_ressources(CODE_RESSOURCE,password) VALUES ('".$_POST["CODE_RESSOURCE"]."','".$_POST["password"]."')";
$sql = mysql_query($sql);

// Si la requête s'est bien effectué :
if($sql){

// On met la variable $registerOK à TRUE pour que l'inscription soit finalisé
$registerOK = TRUE;
// On l'affiche un message pour le dire que l'inscription c'est bien déroulé :
$registerMSG = "Inscription réussie ! Vous êtes maintenant membre du site.";

// On le met des variables de session pour stocker le nom de compte et le mot de passe :
$_SESSION["CODE_RESSOURCE"] = $_POST["CODE_RESSOURCE"];
$_SESSION["password"] = $_POST["password"];

// Comme un utilisateur est différent, on crée des variables de sessions pour "varier" l'utilisateur comme ceci :
// echo $_SESSION["CODE_RESSOURCE"]; (bien entendu avec les balises PHP, sinons cela ne marchera pas.

}

// Sinon on l'affiche un message d'erreur (généralement pour vous quand vous testez vos scripts PHP)
else{

$error = TRUE;

$errorMSG = "Erreur dans la requête SQL
".$sql."
";

}

}

// Sinon on fais savoir à l'utilisateur qu'il a mis un nom de compte trop long.
else{

$error = TRUE;

$errorMSG = "Votre nom compte ne doit pas dépasser 60 caractères !";

$CODE_RESSOURCE = NULL;

$password = $_POST["password"];

}

}

}

// Si le mot de passe dépasse 60 caractères on le fait savoir
else{

$error = TRUE;

$errorMSG = "Votre mot de passe ne doit pas dépasser 60 caractères !";

$CODE_RESSOURCE = $_POST["CODE_RESSOURCE"];

$password = NULL;

}

}

// Sinon on affiche un message d'erreur lui disant que ce nom de compte est déjà utilisé.
else{

$error = TRUE;

$errorMSG = "Le nom de compte ".$_POST["CODE_RESSOURCE"]." est déjà utilisé !";

$CODE_RESSOURCE = NULL;

$password = $_POST["password"];

}
}

// Sinon on fais savoir à l'utilisateur qu'il doit changer le mot de passe ou le nom de compte
else{

$error = TRUE;

$errorMSG = "Le nom de compte et le mot de passe doivent êtres différents !";

}

}

// Sinon si les deux mots de passes sont différents :
elseif($_POST["password"] != $_POST["pass2"]){

$error = TRUE;

$errorMSG = "Les deux mots de passes sont différents !";

$CODE_RESSOURCE = $_POST["CODE_RESSOURCE"];

$password = NULL;

}

// Sinon si le nom de compte et le mot de passe ont la même valeur :
elseif($_POST["CODE_RESSOURCE"] == $_POST["password"]){

$error = TRUE;

$errorMSG = "Le nom de compte et le mot de passe doivent être différents !";


}

// On affiche les erreurs :
if($error == TRUE){ echo "".$errorMSG."

"; }

// Si l'inscription s'est bien déroulée on affiche le succès :
if($registerOK == TRUE){ echo " ".$registerMSG."

";}
?>

<html>

<head>

<title>Création d'un formulaire d'inscription en HTML</title>

</head>



<form action ="" method="post">

<label for="CODE_RESSOURCE">Nom de compte :</label>,
,

----

<label for="mdp">Mot de passe :</label>,
,

----

<label for="password">Mot de passe :</label>,
,

----

<label for="pass2">Confirmez le mot de passe :</label>,





</form>



</html>
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
22 janv. 2013 à 18:39
Bonjour,

Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
23 janv. 2013 à 08:32
C'est très simple, à mon avis.
Tu as un doublon, les input de type password ont le même name :).
Il est fort possible qu'à l'insert, la valeur du deuxième input est enregistré (donc vide).

Tu dois donc vérifier si le champ dans la db est vide et supprimer le deuxième input inutile à l'inscription.

stéph
0
Rejoignez-nous