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 :

identification de session infructueuse


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 66
    Points : 50
    Points
    50
    Par défaut identification de session infructueuse
    bonjour, j'essai de pondre un code pour une ouverture de session, sans la partie de connexion et vérification dans ma base tous va bien mais des-que je rajoute la partie base il n'y a plus d'ouverture de session un œil pourrais t'il me dire ce que j'ai omis merci .

    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
    <?php
    // on teste si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
     
    		$base = mysql_connect ('XXXXX', 'XXX', 'XXXX');
    		mysql_select_db ('XXXX', $base);
     
    		// on teste si une entrée de la base contient ce couple login / pass
    		$sql = 'SELECT count(*) FROM inscription WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    		$data = mysql_fetch_array($req);
     
    		mysql_free_result($req);
    		mysql_close();
     
    		// si on obtient une réponse, alors l'utilisateur est un membre
    		if ($data[0] == 1) {
    session_start();
     
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    		// si on vient du formulaire
    		$login = $_POST['login'];
    		$_SESSION['login'] = $login;
    	}
    	else {
    		$login = $_SESSION['login'];
    	  }
    	}
      }
    }
    if (isset($_SESSION['login'])) {
    		//on vérifi si la session est en cours.
    		$_SESSION['login'] == 'session_is_registered';
    	}
    	else {
    		header('location: test_index.php');
    	}
    ?>
    avec le code ci dessus lorsque je soumet mon formulaire il se passe un instant et je revient sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('location: test_index.php');
    alors que le login et le pass sont bon et bien présent dans ma base.

    merci par avance
    cedcyr

  2. #2
    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
    Il y a des choses inutiles dans ton 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
    <?php
    // on teste si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    	if  (!empty($_POST['login'])) && !empty($_POST['pass']))) {
     
    		$base = mysql_connect ('XXXXX', 'XXX', 'XXXX');
    		mysql_select_db ('XXXX', $base);
     
    		$sql = 'SELECT login FROM inscription WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5($_POST['pass']).'"';
    		$req = mysql_query($sql);
    		$data = mysql_fetch_assoc($req);
     
    		if ($data) {
                          session_start();
                          $_SESSION['login'] = $data['login'];
                          echo 'Authentification réussie';
    	       }
                   else {
                          echo 'Erreur d\'authentification';
                   }
    	}
      }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 66
    Points : 50
    Points
    50
    Par défaut je comprend bien.
    je vois la modif mais pour expliquez ma démarche, si j'ai mis
    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
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    		// si on vient du formulaire
    		$login = $_POST['login'];
    		$_SESSION['login'] = $login;
    	}
    	else {
    		$login = $_SESSION['login'];
    	  }
    	}
      }
    }
    if (isset($_SESSION['login'])) {
    		//on vérifi si la session est en cours.
    		$_SESSION['login'] == 'session_is_registered';
    	}
    	else {
    		header('location: test_index.php');
    	}
    ?>
    c'est que je me suis aperçu qu'une fois que l'on partait de la page test_index1 (page d'ouverture de session) vers les autres pages de session en cours et que si on faisais précédent avec les flèches du navigateur lorsque l'on revenait sur ma page test_index1 on obtenait une page erreur car on ne venais pas dans la page avec 'post' et que si l'on tapait l'url directement dans la barre d'adresse on arrivait sur ma page sans être identifié . d'ailleurs ce code sans la connexion a ma bd fonctionnait très bien c'est quand je l'ai modifier que cela a boguer.

    je vais donc partir de votre suggestion et tester.

    je vous tien au courant.

    cedcyr

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 66
    Points : 50
    Points
    50
    Par défaut essai infructueux !
    re bonjour, j'ai donc essayer avec le code suivant pour le moment
    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
    <?php
    // on test si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    	if  ((!empty($_POST['login'])) && (!empty($_POST['pass']))) {
    	//connexion a ma base
    		$base = mysql_connect ('xx', 'xx', ' xx');
    		mysql_select_db ('xx', $base);
    	//recuperation des données
    		$sql = 'SELECT login FROM inscription WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5($_POST['pass']).'"';
    		$req = mysql_query($sql);
    		$data = mysql_fetch_assoc($req);
                      mysql_close();
    	//début de la session
    		if ($data) {
                          session_start();
                          $_SESSION['login'] = $data['login'];
    	                 $login = $_SESSION['login'];
    	       }
                   else {
                          echo 'Erreur d\'authentification';
                   }
    	}
      }
    la session ne démarre pas , en effet je passe a la page suivante (test_index1) en haut a droite il dit bien bonjour et rien car $login na pas été pris en compte et il ne fait pas d'erreur. j'ai donc l'impression que $data n'existe pas et pourtant mes paramètres de bd sont bon sinon php afficherait une erreur !

    mais ou est donc caché l'erreur, pourtant le code de récupération de ma base est bon car dans un autre formulaire il fonctionne

    merci

    cedcyr

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    re bonjour @cedcyr,

    Si je comprend bien, a ta page "index" tu as un formulaire d connexion qui envoie vers la meme page "index" ?

    et si la connexion est ok tu fait une redirection de page "index" vers la page "index1" .
    et pour simplifier, les autres pages pointent vers "index" et pas "index1" !!

    Il me semble que ton problème vient de la (si j'ai bien suivit...)

    Ton formulaire dans "index" doit envoyer vers une page "login.php" qui va tester et ne rien afficher. Cette page "login" va juste ecrire dans session et rediriger vers "index(1)" ou autre si erreur.

    ps : avais fait une blagounette sur ton sujet hier ('effacée par un modo), dsl si j'ai choqué une personne
    $moi= ( !== ) ? : ;

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 66
    Points : 50
    Points
    50
    Par défaut voila mon plan actuel
    re papajoker, mon plan actuel est le suivant j'ai une page test_index qui possède des bouton qui même vers des pages or session (exemple test éclairage etc...) et un bouton connexion qui ouvre une lightbox formulaire pour la connexion. (ce formulaire est vérifier via jscript pour que les champs soit rempli avant post) puis je le post vers test_index1 qui ouvre la session avec le code ci-dessus (si ok test_index1 affiché sinon retour vers test_index) et lorsque je suis dans test_index1 (session ok) tous mes lien mènent vers des page session ou le non est afficher en haut a droite et si on clique sur déconnexion ou que l'on ferme le navigateur la session est détruite et donc retour a test_index.

    voila le plan et comme php et moi cela fait deux pour l'instant, car j'espère bien apprendre et surtout comprendre avec les tutos, des livres et tous ce que je peut lire ca et la c'est vrais que je pêche un peut.

    les codes précédent que tu a pu suivre dans un précédent post a fini par fonctionné mais il n'intégré pas la vérification dans la bd de mon site.

    donc mon dernier code posté donne pour résultat quelque soit le login et pass que tu rentre tu tombe sur test_index1 et $login n'est pas crée car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="sessions"><?php echo "bonjour " . $login;?></div>
    n'affiche que Bonjour , et si de la je part sur une autre page de la session cela me renvoi ver test _index du fait que en entête de chaque page j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    session_start();
    $login = $_SESSION['login'];
    if (isset($_SESSION['login'])) {
    		//on vérifi si la session est en cours.
    		$_SESSION['login'] == 'session_is_registered';
    	}
    	else {
    		header('location: test_index.php');
    }
     
    ?>
    ce qui me laisse pensé que ma session dans test_index1 na pas été crée.

    je suit preneur de toutes les remarques et suggestion pour résoudre ce detail.

    merci cedcyr

    ps quand a la blague dsl je ne l'ai pas vue et note que tu peut j'ai de l'humour !

  7. #7
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    donc c'est bien ca :
    Ton formulaire dans "index" doit envoyer vers une page "login.php" qui
    va tester et ne rien afficher.
    Cette page "login" va juste ecrire dans session et rediriger vers "index_11" si ok ou "index" si erreur.
    ca évite comme toi d'avoir une page qui fait 2 choses (donc tres complexe)

    ---------------------
    pour les tests autres pages faire un fichier checklogin.php et l'inclure des le début dans toutes tes pages qui nécessitent une connexion.
    "incluse checklogin.php"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php // checklogin.php
    session_start();
    $login = false; // suis pas connecté par defaut
    if (isset($_SESSION['login'])) {
    		//on vérifie si la session est en cours.
    		//$_SESSION['login'] == 'session_is_registered'; pourqoui réécrire ??
    tu faisais une comparaison pas une assignation !?! pour rien faire ensuite ?
                    $login = $_SESSION['login'];
    }
    else { // erreur
    	header("Location: test_index.php?err=Vous n'avez pas accès a cette page"); // renvoi vers page formulaire login
    }
    puisque ton test est isset($_SESSION['login'])
    il faut pour ce déconnecter : unset( $_SESSION['login'] );

    ?>
    $moi= ( !== ) ? : ;

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 66
    Points : 50
    Points
    50
    Par défaut on y est preque !
    en effet j'ai donc suivi ton conseil j'ai crée une page session.php ou il n'y a que mon code pour la création de session. il donne donc ceci :
    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
    <?php
    session_start();
    	//connexion a ma base
    		$base = mysql_connect ('localhost', 'attelage_chr', 'cedcyr1084');
    		mysql_select_db ('attelage_accesattelage', $base);
     
    // on test si le visiteur a soumis le formulaire de connexion
    	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
     
    		// on teste si une entrée de la base contient ce couple login / pass
    		$sql = 'SELECT count(*) FROM inscription WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    		$data = mysql_fetch_array($req);
     
    		mysql_close();
    		if ($data) {
    // Nous avons bien le bon utilisateur
    // Nous créons la variable de session
    $_SESSION['login']= $data['login'];
    $login = $_SESSION['login'];
    header('location:test_index1.php');
    } else
    {
    // Nous n'avons pas les bonnes informations
    // On renvoi vers la page d'authentification
    header('location:test_index.php');
    }
    } else
    {
    // Formulaire incomplet
    // On renvoit vers la page précédente
    header('location:test_index.php');
    }
     
    ?>
    mon problème est donc toujours le même, que tu tape un pass/login présent ou non dans ma bd la session démarre comme vrai donc dans mon idée $data est toujours marqué comme vrai qu'est-ce-que j'ai oublié ?

    cedcyr

  9. #9
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    Il faut peut-etre se déconnecter au départ !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session_start();
    unset( $_SESSION['login'] );
    puis que si erreur tu ne fais que un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('location:test_index.php');
    Bien sur, normalement session[login] n'existe pas !! sinon on ne devrait meme pas voir le formulaire pour arriver jusqu'a cette page !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    la session démarre comme vrai
    parce que tu ne t'ais pas déconnecté !! unset()

    edit : utiliser l'extension php mysql, tu n'as pas peur,
    elle est obsolète, ce qui veut dire que dans la prochaine version elle sera sans doute enlevée !! ton site ne fonctionnera + dans 1 an ou 2 avec php 5.6(7) !
    http://php.net/manual/fr/function.mysql-connect.php
    $moi= ( !== ) ? : ;

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 66
    Points : 50
    Points
    50
    Par défaut
    re j'ai donc mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset( $_SESSION['login'] );
    et je n'est plus d'identification du tous.

    quand tu me dit
    Bien sur, normalement session[login] n'existe pas !! sinon on ne devrait meme pas voir le formulaire pour arriver jusqu'a cette page !!!!
    excuse mais je ne vois pourquoi car dans ma page test_index pour faire apparaitre le formulaire il suffi de cliquez sur connexion, et ce n'est que quand tu le poste que session démarre.

    j'ai essayé de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		if ($data) {
    // Nous avons bien le bon utilisateur
    // Nous créons la variable de session
    $_SESSION['login']= $data['login'];
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		if ($data) {
    // Nous avons bien le bon utilisateur
    // Nous créons la variable de session
    $_SESSION['login']= $_POST['login'];
    la tous passe, et c'est normal car il y a toujours un post qui vient du formulaire ! comment faire pour vérifié que $data (les données venant de ma base) existe bien parce-que pour le moment data est égal a rien a mon avis et c'est pour cela qu'il exécute else et rien d'autre.

    merci
    cedcyr

  11. #11
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    edit : utiliser l'extension php mysql, tu n'as pas peur,
    elle est obsolète, ce qui veut dire que dans la prochaine version elle sera sans doute enlevée !! ton site ne fonctionnera + dans 1 an ou 2 avec php 5.6(7) !
    http://php.net/manual/fr/function.mysql-connect.php
    tu ne sais pas te servir de mysql ? moi je ne l'utilise + depuis de nombreuses années

    c'est pas un "truc" du genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($data && ($data[0]>0)) // avec count()
    $moi= ( !== ) ? : ;

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 66
    Points : 50
    Points
    50
    Par défaut d'autre yeux me seront utile
    bonsoir, après plein de tentatives infructueuses j'ai repris mon code qui ne marche pas mieux car maintenant il reste sur une page blanche !

    comme me la suggérer papajocker j'ai écris mon code dans une page a part.

    mon plan donne ceci je par d'une page test_index ou se trouve mon formulaire qui post vers une page session ou se trouve mon code d'ouverture, qui si c'est ok renvoie vers une page test_index1 (page de membre) ou si ce n'est pas bon renvoie vers test_index (page de départ).

    pour le moment quand je post mon formulaire il part bien vers ma page session et hop la je reste sur une page blanche (session.php). si vous pouvez y jeter un œil merci d'avance.

    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
    <?php
    session_start();
    unset( $_SESSION['login'] );
    // on teste si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
     
    		$sql = 'SELECT count(*) FROM inscription WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
    		$base = mysql_connect ('localhost', 'attelage_chr', 'cedcyr1084');
    		mysql_select_db ('attelage_accesattelage', $base);
    		$resultat = mysql_query($sql);
    		$data = mysql_fetch_array($resultat);
    		$login = $data['login'];
    		}
    		// si on obtient une réponse, alors l'utilisateur est un membre
    		if ($_POST['login'] = $login) {
     
    			$login = $_SESSION['login'];
    			header('location:test_index1.php');
    		exit;
    		}
     
     
    	else {
    		header('location:test_index.php');
    	}
    }
     
     
    ?>
    qu'est ce qui ne plait pas a php dans ce code je ne vois pas ?

    au plaisir de vous lire

    cedcyr

  13. #13
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    tout est cassé la

    - les if { } mal imbriqués
    - $login = $_SESSION['login']; a la place de $_SESSION['login']=$login !!! grave
    - mon if ($data && ($data[0]>0)) plus haut pas fait

    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
    <?php
    session_start();
    unset( $_SESSION['login'] );
     
    if ((!empty($_POST['login']) && (!empty($_POST['pass'])) {
     
    	$sql = 'SELECT count(*) FROM inscription WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
    	$base = mysql_connect ('localhost', 'attelage_chr', 'cedcyr1084');
    	mysql_select_db ('attelage_accesattelage', $base);
    	$resultat = mysql_query($sql);
    	$data = mysql_fetch_array($resultat);
     
            if (($data) && ($data[0]>0)) { // si count>0
            	$_SESSION['login']=$_POST['login']; // on sauvegarde la session !
            	header('Location: test_index1.php');
            	exit;
            }
    } 
    header('Location: test_index.php');
    $moi= ( !== ) ? : ;

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 66
    Points : 50
    Points
    50
    Par défaut merci la c'est bon
    papajocker, merci beaucoup ca roule, mais je doit dire que quand je vois ta modif il y a déjà un truc que je n'aurai jamais oser écrire
    }
    header('Location: test_index.php');
    je pensai qu'il fallait toujours finir un code par } quand au reste c'est vrais qu'a force de chercher, de reprendre les cours des tutos, et de mes bouquins on a tendance a mélangé un peut.

    une petite question quand même pour complété ma quête de savoir, le résultat de ma requête SQL ne donne que 1 ou 0 et non un contenu ? et donc si par exemple je voulais récupérer le nom du membre dans ma base pour venir l'afficher dans ma session a la place de login il faut que je fasse une seconde requête c'est ca ? bien entendu ne me donne pas de code juste si mon raisonnement est bon après j'essaierai pour voir.

    merci beaucoup pour tous .

    cedcyr

  15. #15
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    si tu désires des info,
    ne fait pas une nouvelle requete

    remplace celle existante ( select count() ) par un
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select nom,prenom,login from where login= and pass =
    remplace if (($data) && ($data[0]>0)) { // si count>0 par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ($data['login']==$_POST["login"]) 
    $_SESSION['login']=$data['nom'];
    Bonne continuation
    $moi= ( !== ) ? : ;

  16. #16
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 66
    Points : 50
    Points
    50
    Par défaut merci
    merci et oui je continue a bientôt pour de nouvelle aventures


    cedcyr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Identification par session : erreur
    Par arnaudperfect dans le forum Langage
    Réponses: 2
    Dernier message: 16/03/2007, 11h40
  2. identification entrainant creation session
    Par killerhertz dans le forum ASP
    Réponses: 3
    Dernier message: 07/07/2006, 10h59
  3. Identification Access entrainant créeation de session
    Par killerhertz dans le forum ASP
    Réponses: 12
    Dernier message: 30/05/2006, 20h56
  4. Réponses: 13
    Dernier message: 25/05/2006, 04h13
  5. Probleme d'identification avec sessions PHP
    Par bontbont dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2005, 19h15

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