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

Langage PHP Discussion :

Code de vérification de connexion


Sujet :

Langage PHP

  1. #21
    Invité
    Invité(e)
    Par défaut
    sauf que tu ne comprends pas ce que tu fais...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    password_verify($pass, $pass_crypte)
    Tu compares... le MEME mot de passe... en clair / crypté !

  2. #22
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    <?php
    // Voir l'exemple fourni sur la page de la fonction password_hash()
    // pour savoir d'où cela provient.
    $hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

    if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Le mot de passe est valide !';
    } else {
    echo 'Le mot de passe est invalide.';
    }
    ?>

    $options = [
    'cost' => 12,
    ];
    echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options)."\n";
    ?>
    ben justement c'est ce qui est indiquer sur le tuto ....

  3. #23
    Invité
    Invité(e)
    Par défaut
    Il faut l'utiliser pour COMPARER AVEC les mots de pass ENREGISTRES dans le fichier !
    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
    $pass_crypte = password_hash( $pass_entré_dans_le_formulaire_de_connexion );
     
    // 1/ on parcourt le fichier ligne par ligne
    foreach(ligne_dans_le_fichier)
    {
      // 2/ on cherche si le login matche une ligne
      if( $login_de_la_ligne_du_fichier == $login_entré_dans_le_formulaire_de_connexion )
      {
       echo 'On a un gagnant !';
          // 3/ sur cette ligne, le mot de passe (hashé)
        if ( password_verify($pass_hashé_de_cette_ligne_du_fichier, $pass_crypte) )
        {
            echo 'OK ! Sesame ouvre-toi !';
        }
      }
    }

  4. #24
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    et cela fonctionne meme si le hashage ne donne pas la meme série de caractère ? car quand on regarde le résultats du var-dum que j'ai tester,


    le mots de passe crypter de l inscription
    $2y$12$4YN.gMXeyjZTQ4DQBkOwLu7HPUmngHi5Ejql3JBQ/S6msAzco/Woy

    ne ressemble pas au mots de passe crypter de la tentative de connexion
    "$2y$12$YPTg03nhNPJqvDz/qX0jFeLBMMCVsrLg17mkzIBOSL/fOQj3z2eVG"
    donc

    if( $login_de_la_ligne_du_fichier == $login_entré_dans_le_formulaire_de_connexion )
    {
    ne fonctionnera pas si ?

  5. #25
    Invité
    Invité(e)
    Par défaut
    Voilà maintenant que tu confonds "login" et "pass"...


    Vas dormir...

  6. #26
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    lol oui je croit qu'il faut que je pose un peu le pc quelque temps la ^^" trop bouffer de html, php, css, js ^^"
    j'ai vu la bêtise que j ai dit :p le if de comparaison est pour le login :p ^^" mea-culpa

    ca donnerais donc cela ?
    par contre je ne suis pas sur de la phrase avec foreach
    et également (je l'est laisser) mais comment je peut récupérer

    else
    {
    // Le visiteur n'a pas été reconnu comme étant membre de notre site. On utilise alors un petit javascript lui signalant ce fait
    echo '<body onLoad="alert(\'Membre non reconnu...\')">';
    // puis on le redirige vers la page d'accueil
    echo '<meta http-equiv="refresh" content="0;URL=../acceuil.php">';
    }
    qui était en réponse a mon if login != pseudo


    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
     
    <?php
    $options = [
        'cost' => 12,
    ];
    // on teste si nos variables sont définies
            if (isset($_POST['login'] ,$_POST['pass'])) 
                    {
                            $login= $_POST['login'];
                $pass=$_POST['pass'];
     // on crypte le mot de passe
                $pass_crypte = password_hash($pass, PASSWORD_BCRYPT, $options);
     
     
                                            // Récupération des informations du fichier blocnote (fichier txt).
                                            $data = array();                        // Tableau qui contiendra les données de façon structurée.
                                            $fileHandle = fopen("../../../txt/Fichier_user.txt", "r+");   // Ouverture du fichier "blocnote.txt"
                                            if ($fileHandle) 
                                                    {
                                                            while (($buffer = fgets($fileHandle, 4096)) !== false) 
                                                                    {    
     
                                                                            // Lecture des lignes du fichier, une par une.
                                                                            list($nom,  $prenom, $adresse, $bday, $mail, $mot_de_passe_crypte,  $liste, $sexe) = explode('|', $buffer);    
                                                                            // Séparation des données de la ligne en cours en fonction du caractère "|".
                                                                            $data = array('nom'=>$nom, 'prenom' => $prenom,'bday' => $bday, 'mail' => $mail,'mot_de_passe_crypte' => $mot_de_passe_crypte,                     'liste' =>$liste, 'sexe' =>$sexe); 
                                                                            // Ajout d'un tableau dans notre tableau de données contenant le joueur et les prenom.
                                                                                                                     // On définit un login et un mot de passe de base pour tester notre exemple. Cependant, vous pouvez très bien interroger votre base de données afin de savoir si le visiteur qui se connecte est bien membre de votre site
                                                             $data['nom'];
                                                             $data['mot_de_passe_crypte'];
                                                             // on vérifie les informations du formulaire, à savoir si le pseudo saisi est bien un pseudo autorisé, de même pour le mot de passe
                                                             foreach($data['nom'] as $login) ) 
                                                                    {
                                                                            if( $login_de_la_ligne_du_fichier == $login_entré_dans_le_formulaire_de_connexion )
    																				{  // dans ce cas, tout est ok, on peut démarrer notre session
     
    																					// on la démarre :)
    																						session_start ();
    																						// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pass) (notez bien que l'on utilise pas le $   pour enregistrer ces variables)
    																						$_SESSION['login'] = $_POST['login'];
    																						$_SESSION['pass_crypte'] = $pass_crypte;
     
    																						// on redirige notre visiteur vers une page de notre section membre
    																						header ('location: page_membre.php');
    																						exit();
    																				}                                                                
    																			else 
    																					{
    																							echo 'Le mot de passe est invalide.';
    																					}
                                                                    }
                                                             else 
                                                                    {
                                                                            // Le visiteur n'a pas été reconnu comme étant membre de notre site. On utilise alors un petit javascript lui signalant ce fait
                                                                            echo '<body onLoad="alert(\'Membre non reconnu...\')">';
                                                                            // puis on le redirige vers la page d'accueil
                                                                             echo '<meta http-equiv="refresh" content="0;URL=../acceuil.php">';
                                                                    }
     
     
                                                                    }
                                                                    fclose($fileHandle);                    
                                                                    // fermeture du fichier
                                                                    } 
     
     
                    }
            else 
                    {
                            echo 'Les variables du formulaire ne sont pas déclarées.';
                    }
     
    ?>

  7. #27
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    bon ... vu que pour mon exam, le hash du mdp n'est pas forcement demandé.
    j'ai décidé de le supprimé.

    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
      <?php
    // on teste si nos variables sont définies
    if (isset($_POST['login'] ,$_POST['pass'])) 
    	{
    		$login= $_POST['login'];
    		$pass_crypte = $_POST['pass'];
    		// Récupération des informations du fichier blocnote (fichier txt).
    		$data = array();                        
    		// Tableau qui contiendra les données de façon structurée.
    		$fileHandle = fopen("../../../txt/Fichier_user.txt", "r+");
    		// Ouverture du fichier "blocnote.txt"
    		if ($fileHandle) 
    			{	
    				while (($buffer = fgets($fileHandle, 4096)) !== false) 
    				{    
    		// Lecture des lignes du fichier, une par une.
    					list(
    							$prenom,
    							$nom, 
    							$adresse, 
    							$bday, 
    							$mail, 
    							$mot_de_passe_crypte,  
    							$liste, 
    							$sexe) = explode('|', $buffer);    
    		// Séparation des données de la ligne en cours en fonction du caractère "|".
    					$data = array(
    									'prenom' => $prenom,
    									'nom'=>$nom,
    									'bday' => $bday, 
    									'mail' => $mail,
    									'mot_de_passe_crypte' => $mot_de_passe_crypte,
    									'liste' =>$liste, 
    									'sexe' =>$sexe); 
    		// Ajout d'un tableau dans notre tableau de données contenant le joueur et les prenom.
    		// On définit un login et un mot de passe de base pour tester notre comparaison.
    					$data['nom'];
    					$data['mot_de_passe_crypte'];
    		 // on vérifie les informations du formulaire, à savoir si le pseudo saisi est bien un pseudo autorisé, de même pour le mot de passe
     
    							if ( $data['mot_de_passe_crypte'] == $pass_crypte && $data['nom'] == $login) 
    								{
    		// dans ce cas, tout est ok, on peut démarrer notre session
    		// on la démarre :)
    									session_start ();
    		// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pass) (notez bien que l'on utilise pas le $   pour enregistrer ces variables)
    									$_SESSION['login'] = $_POST['login'];
    									$_SESSION['pass_crypte'] = $pass_crypte;
    		// on redirige notre visiteur vers une page de notre section membre
    									header ('location:../../site_connection_user/acceuil_membre.php');
    									exit();
    								}
    							else 
    								{
    // Le visiteur n'a pas été reconnu comme étant membre de notre site. On utilise alors un petit javascript lui signalant ce fait
    									echo '<body onLoad="alert(\'Membre non reconnu...\')">';
    // puis on le redirige vers la page d'accueil
    									echo '<meta http-equiv="refresh" content="0;URL=../acceuil.php">';
    								}					                              
    				}
    			fclose($fileHandle);                    
    // fermeture du fichier
    		} 
    	}                                                                                                
    else 
    	{
    		echo '<body onLoad="alert(\'Les variables du formulaire ne sont pas déclarées.\')">';
    // puis on le redirige vers la page d'accueil
    		echo '<meta http-equiv="refresh" content="0;URL=../acceuil.php">';
    	}                                                                           
    ?>
    Le soucis est que mon code fonctionne si le membre est pas reconnu comme etant membre, mais si je met des valeurs corect je me retrouve avec :


    Nom : message.jpg
Affichages : 117
Taille : 24,1 Ko

  8. #28
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    on peut voir quelques lignes du fichier "Fichier_user.txt" ?


    Important : peux-tu aussi AMELIORER l'INDENTATION de ton code ???
    On y verrait mieux...

  9. #29
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    mp|lol|mp|2016-04-06|lol@lol.fr|marre|chomeur|homme
    doe|john|rue du codage|2016-04-12|adresse@hotmail.fr|motdepasse|chomeur|homme
    doe|janne|rue de developpez|2016-04-12|mail@developpez.net|code|chomeur|homme

  10. #30
    Invité
    Invité(e)
    Par défaut
    Ce n'est pas très sérieux...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($nom,  $prenom, ....
    Or, dans ton fichier, tu écris :
    prenom|nom|...

    Il faudrait savoir...

    Pourquoi n'écris-tu pas quelques lignes SIGNIFICATIVES (même avec de faux noms..., mais que ça fasse "vrai") ?

  11. #31
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    reregarde j'ai modifier l indentation.
    et oui j'ai modifier nom et prénom sur le poste qui sont pas bon vis a vis du code qui lui est dans le bon sens
    j'ai aussi modifier le message avec le fichier txt pour que tu est plus de ligne

    bon si je met les info de la 1er ligne j ai tjr la meme erreur
    si je met celle d une autre ligne ca me dit nn reconnu

  12. #32
    Invité
    Invité(e)
    Par défaut
    Bon.

    Je t'ai réécrit tout le script.

    1/ J'ai modifié le fichier text :
    • J'ai ajouté le champ "pseudo" sur chaque ligne
    • + mis le mot de passe juste après

    Chaque ligne est de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pseudo|mdp|nom|prénom|adresse|.......
    Ex. Fichier_user.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    jreaux62|123654|Reaux|Jerome|rue du codage|1967-03-15|jreaux62@dvp.com|devweb|homme
    aline59|frtg854f6|Durine|Anne-lise|avenue grnade|1986-04-12|mail@aline.net|secretaire|femme
    jambon|hsdh341dhf|Bon|Jean|rue de chez lui|2016-04-12|mail@cochon.net|charcutier|homme
    quidam|sdf865|Doe|John|nullepart|2016-04-12|mail@noone.net|sdf|homme
    Code complet :

    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    <?php if(session_id()=='') { session_start(); } // TOUJOURS EN HAUT DE FICHIER
    header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
    // ---------------------------------------
    // TRAITEMENT du formulaire de connexion
    if (isset($_POST['login'], $_POST['pass'])) 
    {
     
    	if ( !empty($_POST['login']) && !empty($_POST['pass'])) 
    	{
    		// ------------------------------
    		// au cas où, on efface les données user stockées
    		unset($_SESSION['user']);
    		$msg_erreur	= '';
    		// ---------------
    		$login = $_POST['login'];
    		$pass_crypte = $_POST['pass'];
    		// ------------------------------
    		$data = array(); // Tableau qui contiendra les données de façon structurée.
    		// ------------------------------
    		// Récupération des informations du fichier.
    		$fileHandle = fopen("../../../txt/Fichier_user.txt", "r+");
    		if ($fileHandle) 
    		{	
    			$index = 0;
    			// Lecture des lignes du fichier, une par une.
    			while (($buffer = fgets($fileHandle, 4096)) !== false) 
    			{    
    				// ---------------
    				// Séparation des données de la ligne en cours en fonction du caractère "|".
    				list(
    					$pseudo, 
    					$mot_de_passe_crypte,  
    					$nom, 
    					$prenom,
    					$adresse, 
    					$bday, 
    					$mail,
    					$liste, 
    					$sexe)
    					= explode('|', $buffer);    
    				// ---------------
    				// tableau de données contenant les infos de la ligne en cours
    				$data[$index] = array(
    					'pseudo' => $pseudo,
    					'mot_de_passe_crypte' => $mot_de_passe_crypte,
    					'nom' => $nom,
    					'prenom' => $prenom,
    					'bday' => $bday, 
    					'mail' => $mail,
    					'liste' =>$liste, 
    					'sexe' =>$sexe
    					); 
    				// ---------------
    				// on vérifie les informations du formulaire, à savoir si le pseudo saisi est bien un pseudo autorisé, de même pour le mot de passe
    				if ( $data[$index]['pseudo'] == $login && $data[$index]['mot_de_passe_crypte'] == $pass_crypte ) 
    				{
    					// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pass)
    					$_SESSION['user']['login'] = $data[$index]['pseudo'];
    			//		$_SESSION['user']['pass_crypte'] = $pass_crypte;	// NON !!!!! on n'enregistre JAMAIS les mots de passe dans des SESSION (ni ailleurs!!)
    					$_SESSION['user']['mail'] = $data[$index]['mail'];
    					$_SESSION['user']['bday'] = $data[$index]['bday'];
    					$_SESSION['user']['sexe'] = $data[$index]['sexe'];
     
    					var_dump($_SESSION['user']); // TEST
     
    					// on redirige notre visiteur vers une page de notre section membre
    					echo 'OK !! on redirige notre visiteur vers une page de notre section membre'; // TEST
    				//	header ('location:../../site_connection_user/acceuil_membre.php');
    					exit();
    				}
    				// ---------------
    				$index++; // on incrémente l'index
    			}
    			fclose($fileHandle); // fermeture du fichier
    		}
    		// ------------------------------
    		if ( empty($_SESSION['user']) )
    		{
    			// Le visiteur n'a pas été reconnu comme étant membre de notre site. On utilise alors un petit javascript lui signalant ce fait
    			$msg_erreur	= 'Erreur : Membre non reconnu... Paramètres incorrects.';
    			// puis on RE-AFFICHE LE FORMULAIRE
    		}
    		// ------------------------------
    	} else {
    			$msg_erreur	= 'Erreur : Indiquer votre login et votre mot de passe.';
    	}
    }                                                                           
    // ---------------------------------------
    ?>
    <!DOCTYPE HTML>
    <html lang="fr">
    <head>
    </head>
    <body>
     
    <?php
    // ---------------------------------------
    // FORMULAIRE de CONNEXION
    // ---------------------------------------
    if ( !empty($msg_erreur) ){
    	echo '	<p style="color:red;">'.$msg_erreur.'</p>';
    }
    ?>
    <form method="post" action="">
    	<h4> CONNEXION</h4>
    	<p>
    		<label>Login : <label><input type="text" name="login" />
    	</p>
    	<p>
    		<label>Mot de passe : <label><input type="pass" name="pass" />
    	</p>
    	<p>
    		<input type="submit" name="Connexion" />
    	</p>
    </form>
     
    </body>
    </html>
    Tu remarqueras l'INDENTATION, propre et lisible...

    N.B. Je n'ai pas traité le cas "mot de passe hashé", un peu plus complexe.

  13. #33
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    vais aller tester

    Parse error: syntax error, unexpected '$_SESSION' (T_VARIABLE) in C:\xampp\htdocs\projet-web-dynamique\PHP\elements_inchangeables\connexion\connexion.php on line 66
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    <?php
    function erreur($err='')
    {
       $mess=($err!='')? $err:'Une erreur inconnue s\'est produite';
       exit('<p>'.$mess.'</p>
       <p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p></div></body></html>');
    }
    ?>
     
    <?php if(session_id()=='') { session_start(); } // TOUJOURS EN HAUT DE FICHIER
    header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
    // ---------------------------------------
    // TRAITEMENT du formulaire de connexion
    if (isset($_POST['login'], $_POST['pass'])) 
    {
     
    	if ( !empty($_POST['login']) && !empty($_POST['pass'])) 
    	{
    		// ------------------------------
    		// au cas où, on efface les données user stockées
    		unset($_SESSION['user']);
    		$msg_erreur	= '';
    		// ---------------
    		$login = $_POST['login'];
    		$pass_crypte = $_POST['pass'];
    		// ------------------------------
    		$data = array(); // Tableau qui contiendra les données de façon structurée.
    		// Récupération des informations du fichier blocnote (fichier txt).
    		$fileHandle = fopen("../../../txt/Fichier_user.txt", "r+");
    		// ------------------------------
    		if ($fileHandle) 
    		{	
    			$index = 0;
    			// Lecture des lignes du fichier, une par une.
    			while (($buffer = fgets($fileHandle, 4096)) !== false) 
    			{    
    				// ---------------
    				// Séparation des données de la ligne en cours en fonction du caractère "|".
    				list( 
    					$nom,
    					$mot_de_passe_crypte,  
    					$prenom,
    					$adresse, 
    					$bday, 
    					$mail,
    					$liste, 
    					$sexe)
    					= explode('|', $buffer);    
    				// ---------------
    				// tableau de données contenant les infos de la ligne en cours
    				$data[$index] = array(
    					'nom' => $nom,				
    					'mot_de_passe_crypte' => $mot_de_passe_crypte,
    					'prenom' => $prenom,
    					'bday' => $bday, 
    					'mail' => $mail,
    					'liste' =>$liste, 
    					'sexe' =>$sexe
    					); 
    				// ---------------
    				// on vérifie les informations du formulaire, à savoir si le pseudo saisi est bien un pseudo autorisé, de même pour le mot de passe
    				if ( $data[$index]['nom'] == $login && $data[$index]['mot_de_passe_crypte'] == $pass_crypte ) 
    				{
    					// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pass)
    					$_SESSION['user']['login'] = $data[$index]['nom'];
    					$_SESSION['user']['mail'] = $data[$index]['mail'];
    					$_SESSION['user']['bday'] = $data[$index]['bday'];
    					$_SESSION['user']['sexe'] = $data[$index]['sexe'];
     
    					var_dump($_SESSION['user']); // TEST
     
    					// on redirige notre visiteur vers une page de notre section membre
    					header ('location:../../site_connection_user/acceuil_membre.php');
    					exit();
    				}
    				// ---------------
    				$index++; // on incrémente l'index
    			}
    			fclose($fileHandle); // fermeture du fichier
    		}
    		// ------------------------------
    		if ( empty($_SESSION['user']) )
    		{
    			// Le visiteur n'a pas été reconnu comme étant membre de notre site. On utilise alors un petit javascript lui signalant ce fait
    			$msg_erreur	= 'Erreur : Membre non reconnu... Paramètres incorrects.';
    			// puis on RE-AFFICHE LE FORMULAIRE
    		}
    		// ------------------------------
    	} else {
    			$msg_erreur	= 'Erreur : Indiquer votre login et votre mot de passe.';
    	}
    }                                                                           
    // ---------------------------------------
    ?>
     
     
    <!-- Déclaration du type de document -->
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<title>Connexion</title>
    		<meta charset="utf-8">
    		<link rel="stylesheet" type="text/css" href="../../../CSS/style_base.css" />
    		<script type="text/javascript" src="../../../JS/connexion.js"></script>
    	</head>
    	<body>
    		<div id="fond">
    			<div id="contenu">
     
    	<!-- debut du contenu de la partie sombre -->
    				<TABLE>
    					<tbody>
     
    <?php
    // ---------------------------------------
    // FORMULAIRE de CONNEXION
    // ---------------------------------------
    if ( !empty($msg_erreur) ){
    	echo '	<p style="color:red;">'.$msg_erreur.'</p>';
    }
    ?>					
     
    <form method="post" action="">
    	<h4> CONNEXION</h4>
    	<p>
    		<label>Login : <label><input type="text" name="login" />
    	</p>
    	<p>
    		<label>Mot de passe : <label><input type="pass" name="pass" />
    	</p>
    	<p>
    		<input type="submit" name="Connexion" />
    	</p>
    </form>
    					</tbody>
    				</table>
     
    <!-- fin du contenu de la partie sombre -->
     
    			</div>
    		</div>
    	</body>
    </html>
    <!-- debut du footer -->
     
    <?php
    include('footer.php');
    ?>
     
    <!-- fin du footer -->
    je peut meme pas entrer une valeur ca m affiche ca des que je lance la page
    par contre j ai pas garder ton "pseudo" car cela m'oblige a modifier mon formulaire, puis le php qui intègre les info du formulaire

  14. #34
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    .... il manquer un ';' mdr

    par contre je comprend toujours pas , ca me redirige vers acceuil_membre
    mais au lieu de m afficher la page
    j'ai :

    Les variables ne sont pas déclarées.
    ..... c est bon ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	session_start ();
     
    	// On récupère nos variables de session
    	if (isset($_SESSION['login']) && isset($_SESSION['pass']))
    		{
    c'est que je ne récupère plus le mdp donc ca ne fonctionner pas mdr

  15. #35
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le mot de passe n'a rien à faire en session.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #36
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    Je dois par la suite crée une page de profil, pour que les membres puissent voir et modifier leurs informations.
    donc je voulais avoir également le mot de passe en plus des autres informations.
    j'avais donc penser a faire quelque chose de ce style pour les pages accessible au membres:

    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
    <?php
    	// On démarre la session (ceci est indispensable dans toutes les pages de notre section membre)
    	session_start ();
     
    	// On récupère nos variables de session
    	if (isset($_SESSION['login']) && 
                isset($_SESSION['pass']) &&
                isset($_SESSION['mail']) &&
                isset($_SESSION['liste']) &&
                isset($_SESSION['sexe']) &&
                isset($_SESSION['adresse']) &&
                isset($_SESSION['bday']) &&
                isset($_SESSION['prenom']))
    		{
    			include('menu.php');
    			?>
     
    			<!DOCTYPE html>
    			<html>
    				<head>
    					<meta charset="utf-8">
    					<link rel="stylesheet" type="text/css" href="../../CSS/style_base.css" />
     
    				</head>
    				<body>
    					<div id="fond">
     
    						<div id="contenu">
     
    			<!-- debut du contenu de la partie sombre -->
    							<div class="barre_du_centre">
    								<table> 
    									<tbody>						
    										<center>
     
    										</center>
    									</tbody>  
    								</table>
    							</div>
    			<!-- fin du contenu de la partie sombre -->
    						</div>
    					</div>
     
    				</body>
     
    			</html>
    			<!-- debut du footer -->
     
    			<?php
    			include('footer.php');
     
     
    			// fin du footer //
    		}
    	else
    		{
    			echo 'Les variables ne sont pas déclarées.';
    		}
    ?>
    mais j'ai cette fichu erreur de 'variables ne sont pas declarees '
    et meme si je met que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_SESSION['login']))
    je l'est également =.="
    quelqu'un aurait il une corde a me prêter ?

  17. #37
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    jamais tu ne relis le code ?
    Ca peut aider pour le COMPRENDRE...

    Les SESSION s'appellent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_SESSION['user']['login']
    $_SESSION['user']['email']
    ...
    Et la SEULE chose à faire pour vérifier que le user est bien connecté, c'est :

    1/ créer un fichier "protect-membre.php" :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php if(session_id()=='') { session_start(); } // TOUJOURS EN HAUT DE SCRIPT
    header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
    // --------------------------------------
    // protection page membre
    // --------------------------------------
    // si session vide = PAS connecté
    if( empty($_SESSION['user']['login']) )
       // on redirige
      header('location:../index.php'); // OU redirection vers le formualire de CONNEXION !
      exit;
    }
    // --------------------------------------
    // sinon : membre CONNECTE : on peut continuer...
    // --------------------------------------
    2/ mettre en début de chaque page membre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    // protection page membre
    require(__DIR__.'/protect-membre.php');
     
    // suite ................
    REMARQUE : session_start(); ne doit être déclaré QU'UNE FOIS.
    Donc : puisqu'il est DEJA dans "protect-membre.php", => inutile de le RE-déclarer dans les autres fichiers DANS LESQUELS il est INCLUS.
    Dernière modification par Invité ; 13/04/2016 à 15h24.

  18. #38
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    si j'ai essayer avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php if(session_id()=='') { session_start(); } // TOUJOURS EN HAUT DE FICHIER
    mais je ne savais pas trop comment tourner la suite du code et cela ne donner rien donc je penser pas que c’était cela qui permettrais de faire fonctionner les sessions.
    et comme je l'est écrit, je m’était inspiré de l'exemple du lien que j'ai fourni dans mon message précédent .
    cela donnerais donc

    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
    <?php 
    // protection page membre
    require(__DIR__.'/protect-membre.php');
     
    // suite ................
     
    			include('menu.php');
    			?>
     
    			<!DOCTYPE html>
    			<html>
    				<head>
    					<title>Acceuil</title>
    					<meta charset="utf-8">
    					<link rel="stylesheet" type="text/css" href="../../CSS/style_base.css" />
     
    				</head>
    				<body>
    					<div id="fond">
     
    						<div id="contenu">
     
    			<!-- debut du contenu de la partie sombre -->
    							<div class="barre_du_centre">
    								<table> 
    									<tbody>						
    										<center>
    											<div ">
    												<a href="http://www.jeuxonline.info/jeu/Revival">Les jeux par types de consoles</a><br>
    												<img src="http://www.zimagez.com/miniature/wquizz-consoles-jeux-video.jpg" alt="Visionner l'image" /></a>
    											</div>
    											<br><br>
    											<div>
    												<a href="http://www.jeuxonline.info/jeu/Sparta_War_of_Empires">les jeux par categorie</a><br>
    												<img src="http://www.zimagez.com/miniature/differentes-personnages-univers-nintendo.jpg" alt="Visionner l'image" /></a>
    											</div>
    										</center>
    									</tbody>  
    								</table>
    							</div>
    			<!-- fin du contenu de la partie sombre -->
    						</div>
    					</div>
     
    				</body>
     
    			</html>
    			<!-- debut du footer -->
     
    			<?php
    			include('footer.php');
     
     
    			// fin du footer //
    		}
     
    ?>
    egalement si par exemple je suis sur ma session,
    je vais sur ma page profil, ai-je le droit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    							echo 'Pseudo : ',$_SESSION['user']['nom'],'<br />
    								 Age : ',$_SESSION['user']['bday'],'<br />
    								 Sexe : ',$_SESSION['user']['sexe'],'<br />
    								Ville : ',$_SESSION['user']['adresse'],'<br />
    								 profession : ',$_SESSION['user']['age'],'<br />
    								mail : ',$_SESSION['user']['mail'],'<br />
    								 prenom : ',$_SESSION['user']['adresse'],'<br />';
    pour afficher les informations de mon profil ?

  19. #39
    Invité
    Invité(e)
    Par défaut
    Oui.

  20. #40
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Points : 90
    Points
    90
    Par défaut
    ok ^^
    je sens qu'a force :p je mettrais une dédicace sur mon dossier qui accompagnera mon code en citant le forum ptdr.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Juste une petite question..
    Par fatmart dans le forum ASP
    Réponses: 1
    Dernier message: 23/04/2008, 17h57
  2. [OpenOffice] [VBA] vba ==> open office : juste une petite ligne à traduire
    Par ickyknox dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 29/03/2008, 01h18
  3. Réponses: 1
    Dernier message: 27/09/2007, 15h24
  4. menu dynamique vertical (juste une petite question)
    Par cynthiavn dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2007, 14h39
  5. juste une petite idiotie!
    Par Nemerle dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 29/10/2006, 00h18

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