IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Formulaire d'identification


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut Formulaire d'identification
    Bonjour,

    Je suis débutante en PHP.
    Je souhaiterais créer un formulaire de login / MDP avec login et MDP en dur pour commencer (dans un 2ème temps lié à une BDD avec table utilisateurs).

    Je ne comprends pas une chose :
    Si on rentre le bon login/MDP, une autre page Page1 devrait s'ouvrir, or ce n'est pas le cas, il me rouvre la page de login. Et sur cette 2ème page de login, si je rerentre mes bons identifiants, il m'ouvre la Page1 en question.
    J'ai compris que c'est la valeur sur action du form qui n'est pas la bonne lors de la 1ère ouverture de la page de login mais comment faire pour qu'elle soit ok sans recharger 2 fois ?

    D'avance merci de vos lumières

  2. #2
    Membre expérimenté

    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 130
    Par défaut
    Salut,

    montre nous ton code !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 84
    Par défaut
    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    <?php 
    	// gestion des sessions
    	include ('application/ini.php'); 	
     
    	// LIB - fonction d'authentification
    	include ('application/lib/user.php'); 
     
    	// DEBUG de la session 
    	echo "<pre>";print_r($_SESSION);echo "</pre>";
    ?>
     
     
    <?php 
    	// menu commun
    	include ('application/menu.php'); 
     
    	// Initialisation des variables du formulaire
    	$login = '';
    	$pass ='' ;
    	$action ='' ;
     
    	// DEBUG
    	echo '<pre>';print_r($_POST) ; echo '</pre>';	
     
    	// formulaire envoyé
    	if (!empty($_POST)){ 
    		echo "formulaire envoyé !!! <br />";
    		//////////////////////////////////   
    	   if ( isset ($_POST['login'])
    			AND !empty($_POST['login']) ){ 
     
    			// supprimé tous les tags HTML et PHP             
    			$login = strip_tags($_POST['login']) ; 
    	   } 
    	   else  { 
    			// Erreur	 Paramétre inexistant ou vide  
    	   } 
    		//////////////////////////////////
    		if ( isset ($_POST["motdepasse"])
    			AND !empty($_POST["motdepasse"]) ){ 
     
    			// supprimé tous les tags HTML et PHP             
    			$motDePasse = strip_tags($_POST["motdepasse"]) ; 
    	   } 
    	   else  { 
    			// Erreur	 Paramétre inexistant ou vide  
    	   } 
    		//////////////////////////////////
    		if( !empty($login) 
    			AND !empty($motDePasse)){
    			echo "<hr /> Login : $login <br />
    				Passe : $motDePasse <hr />";
    			////////////////////////////////////////////
    			if(verifUser($login, $motDePasse)){
    				echo 'vous êtes authentifié';
    				// ajout d'une variable de session 
    				// qui valide l'authentification
    				// lors de la consultation des autres pages
    				$_SESSION['user']='ok';
    				$action = "page1.php";
    			}
    			else {
    				echo 'login inexistant ou mauvais ';	
    				$action = "#";
    			}			
    			////////////////////////////////////////////////
    		}
    		else {
    			echo "erreur : login ou mot de passe vide";		
    			$action = "#";
    		}
    		//////////////////////////////////
       } 
     
    ?>
    <h1> Login </h1>
     
    	<form action="<?php echo $action; ?>" method="post">	
    		Login : <br /> 
    		<input name="login" 
    			 value="<?php echo $login; ?>" 
    			 size="30" maxlength="30" />  
     
    		<br /> Mot de Passe<br />
    		<input 	name="motdepasse"  
    				type="password"
    				value=""
    				size="30" maxlength="40" />
     
    		<br /> <input type="submit" value="Envoyer" />
    	</form>

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    Citation Envoyé par maeva38 Voir le message
    Je ne comprends pas une chose :
    Si on rentre le bon login/MDP, une autre page Page1 devrait s'ouvrir, or ce n'est pas le cas, il me rouvre la page de login. Et sur cette 2ème page de login, si je rerentre mes bons identifiants, il m'ouvre la Page1 en question.
    J'ai compris que c'est la valeur sur action du form qui n'est pas la bonne lors de la 1ère ouverture de la page de login mais comment faire pour qu'elle soit ok sans recharger 2 fois ?
    php agit côté serveur, donc tu définie du code à afficher.
    Dans ton mode de fonctionnement, tu génère un formulaire avec action=# car login, mdp etc ... sont vide de là tu envoi ton formulaire tu fait ta vérification et tu remplace le action=# par action=page1.php donc ton formulaire sera orienté vers ta page1.php même si les login et mdp ne sont pas bon.

    plutôt qu'un action=page1.php tu devrais faire une redirection.

    header('Location: page1.php');
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Par défaut
    En fait le comportement de ton code est normal. Le fichier qui se trouve ds Action est appelé quand tu soumets le formulaire, donc la première fois, quand tu introduis user et password, le formulaire appelle sa propre page -->ensuite, verification user/pwd ok ,et donc action contient le nouveau fichier(page1.php) et la page est réaffichée.Ce n'est que lorsque tu soumets le formulaire la 2e fois, que celui-ci va te rediriger sur page1.php, quelque soit l'user et le mot de passe entré.
    Vil Coyote a raison, tu devrais plutôt faire une redirection ds ton code de validation

    Alpha.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Par défaut
    Si je puis me permettre une remarque, personnellement quand je gère les mots de passe je ne les stock pas directement car en cas de diffusion du mot de passe toute la sécurité est compromise. J'utilise donc l'algorithme md5 pour sortir un code de contrôle.

    http://php.net/manual/fr/function.md5.php

    Donc à l'inscription, on fait le md5 du mot de passe et on stock le md5, puis quand l'utilisateur s'identifie, la page calcule le md5 du mot de passe saisi et le compare à celui en mémoire. Si le mot de passe est différent le md5 l'est forcément. En revanche il faut aussi à ce moment là créer un système de récupération de mot de passe en cas de perte. Pour cela j'ai mis en place une page qui génère un code à 4 chiffres aléatoires, envoie ce code par mail à l'utilisateur (donc il faut stocker une adresse mail avec les coordonnées) et calcul le md5 de ce code pour le stocker à la place du md5 du mot de passe perdu.

Discussions similaires

  1. formulaire d'identification en vb
    Par maynousha dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 17/03/2008, 13h18
  2. Créer un formulaire d'identification
    Par Carnage76 dans le forum VBA Access
    Réponses: 6
    Dernier message: 25/05/2007, 13h21
  3. Pb formulaire d'identification (sécurité)
    Par kollyv dans le forum Langage
    Réponses: 6
    Dernier message: 03/10/2006, 15h27
  4. [MySQL] Formulaire d'identification ok en local mais pas sur le serveur
    Par hoangeric dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 24/04/2006, 20h49
  5. [SSL] Formulaire d'identification sécurisé
    Par akecoocoo dans le forum Sécurité
    Réponses: 1
    Dernier message: 05/01/2006, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo