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 :

connexion/deconnexion site web - variable SESSION


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut connexion/deconnexion site web - variable SESSION
    Bonjour !

    J'ai fait un site en PHP (je debute), base de données établie, et j'aimerais que l'utilisateur puisse se logguer quand il veut.

    SI la session existe, alors il va sur la page d'accueil et un message en haut apparait du style "Merci Mr XXX de vous être enregistré" ou "bonjour Mr XXXX" (sur toutes les pages du site) avec à côté un onglet déconnexion pour se deconnecter (comme la plupart des sites où on peut se logguer)

    SINON on affiche "connexion" qui pointe vers login_connexion.php, donc apers il se log, et une fois logué ça le renvoi sur la page d'accueil dans le cas du dessus où la session existe.

    Je pense qu'il faut passer par un if(isset($_session)) mais je ne sais pas comment tourner le session, ça n'a pa l'air d'être simple à utiliser. Je n'ai jamais utilisé la variable session vraiment, et donc là je bloque.

    Quelqu'un peut-il me donner un coup de main svp ?
    Merci

  2. #2
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Salut,

    C'est un beau sujet qui mérite une belle (heu... bonne) lecture :
    http://php.developpez.com/cours/sessions/

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    je ne sais pas si c'est important, mais je suis en PHP 5.2
    Merci.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    merci gats pour ta réponse, mais j'ai déjà été visité ce site, le fait d'ouvrir et détruire une session, ça c'est OK.
    Ce qu'il y a dedans ne peut plus vraiment m'aider là.

    Je n'arrive pas à récupérer la varible $_SESSION['login'] ou même $_POST['login'], je teste avec de simples echo mais la variable est vide.

    Arf :'(

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Tu as bien mis quelque chose dans la session à un moment ou à un autre ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Faire un appel a session_start() ne remplis aucune variable de session, mais ça te permet d'en créer.

    Fais par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    session_start();
     
    if(isset($_SESSION['login']))
    {
    	echo 'Bonjour '.$_SESSION['login'].' !';
    }
    else
    {
    	$_SESSION['login'] = 'Jean-Pierre';
    }
    Teste le code une première fois puis recharge la page

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    Bonjour !

    tout d'abord merci de vos posts !
    J'arrive sur mon site et je dois avoir quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     if(isset($_SESSION['login']))
        {
    $connect=ODBC_connect("TESTPHP5","sa","sasa");
    $mysql = "SELECT TOP 1 LOGIN FROM utilisateur WHERE login LIKE '".$_POST['login']."'  ";
    $res=odbc_exec($connect, $mysql) or die($sql."<br />".odbc_error());
    $login= odbc_result($res,"LOGIN");
    echo 'Bonjouuur '.$_SESSION['login'].' !';
    echo "<a href='<?php session_destroy();?>'><font color=red>déconnexion</font></a>" ;
    }
        else
            {
                echo "<a href=login.php><font color=red>connexion</font></a>" ;
            }

    1) mon evenement de deconnexion de marche pas car evidemment session_destroy(); nemarche pas en lien, ou en tout cas pas come je l'ai écrit, et je ne sais pas comment affecter session_destroy() à mon lien.

    2) ça ne marche pas si je ne met pas session_start() en tout premier lieu, et mon but et justement que la session commence quand il s'est enregistré.

    Enfin déjà pour commencer j'ai une session ouverte mais je n'arrive pas a la detruire arf

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Pour la déconnexion, le plus plus simple est de faire une page deco.php qui contient uniquement la destruction de la session et éventuellement une redirection vers la page d'accueil.

    Pour la connexion, il nous faudrait ton script login.php, parce que c'est probablement là que ça coince...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    Bonjour Célira !
    Ok je te donne le code de mon fichier login.php :

    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
    <?php
     
    $_SESSION['langage'] = 'PHP 5'; 
     
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])){
    	$connect=ODBC_connect("TESTPHP5","sa","sasa");
    	//mysql_connect("localhost","sa","sasa");
    	//mysql_select_db("testphp5");
     
     
     
     
     
     
     
    	$mysql = "SELECT TOP 1 LOGIN, VALIDE FROM utilisateur WHERE login LIKE '".$_POST['login']."' AND password LIKE '".$_POST['password']."' ";
    	$req = ODBC_exec($connect, $mysql) or die($mysql."<br />".odbc_error());
    	// $req=mysql_query($mysql) or die($mysql."<br />".mysql_error());
     
    	//list($ok, $valide)=mysql_fetch_row($req);
     
    	// list($ok, $valide)=
            $ok=odbc_fetch_row($req);
    	if($ok){
    	$valide=odbc_result($req,"VALIDE");
            }
     
    	///  j'ai initialiser la variable $erreur à vide au cas où il garderait en mémoire un précédent test
     
    	$erreur="";
    	if(!$ok){
     
    		/// j'ajoute la requete envoyé en cas d'erreur afin d'affiner le debogage: à enlever pour la production
    		 $erreur="<center><font face=arial color=red style=font-size:0.6em><b>Mauvais login ou mot de passe<b /></font></center>";
    		///$erreur="<center><font color=red  style=font-size:0.7em>Mauvais login ou mot de passe <br />ERR : ".$ok."<br />".$mysql."</font></center>";
    	}elseif(!$valide){
    		/// idem qu'au dessus
    		 $erreur="<center><font face=arial color=red style=font-size:0.6em><b>Votre compte n'est pas encore validé.<b /><br /> Veuillez suivre les instructions sur l'E-mail que vous aviez reçu lors de votre inscription.</font></center>";
    		///$erreur="<center><font color=red style=font-size:0.7em>Votre compte n'est pas encore validé, veuillez suivre les instructions sur l'E-mail que vous aviez reçu lors de votre inscription.<br /> ERR : ".$valide."<br />".$mysql."</font></center>";
    	}else{
    		session_start();
    		$_SESSION['login'] = $_POST['login']; 
    		header("location: index3.php");
    	}
     
    	odbc_close($connect);
    	//mysql_close();
    }else{ 
    }
    ?>
     
    <html>
    <head>
    <title>Connexion &agrave; votre espace perso</title>
    <script>
    	function controlvide(){
    		var test="" + document.getElementById('login').value;
    		if(test.length == 0){
    			alert("Veuillez entrer votre Login");
    			return false;
    		}
     
    		var test="" + document.getElementById('password').value;
    		if(test.length == 0){
    			alert("Veuillez entrer votre mot de passe");
    			return false;
    		}
    	}
    </script>
    </head>
    <body bgcolor="#ffffff">
    <TABLE WIDTH="1000" BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="CENTER"><TR BACKGROUND="../www.carri.com.lite_TEST2/images/menu/trait.gif"> 
    <TD WIDTH="419" HEIGHT="83" BACKGROUND="images/menu/trait.jpg" ALIGN="LEFT"><DIV ALIGN="LEFT"><IMG SRC="images/menu/carri_systems.gif" WIDTH="220" HEIGHT="83"></DIV></TD><TD VALIGN="BOTTOM" BACKGROUND="images/menu/trait.JPG" WIDTH="208"><DIV ALIGN="CENTER"><FONT COLOR="#FFFFFF" SIZE="3" FACE="Verdana, Arial, Helvetica, sans-serif"></FONT></DIV><TD WIDTH="632" HEIGHT="83" BACKGROUND="images/menu/trait.jpg" ALIGN="RIGHT"><DIV ALIGN="RIGHT"><IMG SRC="images/menu/systemes_infos_hp.gif" WIDTH="321" HEIGHT="83"></DIV></TD></TR></TABLE><FORM METHOD="post" ACTION="login.php" ONSUBMIT="return controlvide();"> 
    <P ALIGN="CENTER"><FONT SIZE="3" FACE="Arial, Helvetica, sans-serif"><B><BR>Connectez-vous</B></FONT></P><?php echo $erreur; ?> 
    <TABLE BORDER="0" WIDTH="585" ALIGN="center"> <TR> <TD WIDTH="211"> <FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"><B>Votre 
    login</B></FONT></TD><TD WIDTH="364"> <FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"><INPUT TYPE="text" NAME="login"  value="<?php echo $_POST['login']?>"> 
    </FONT></TD></TR> <TR> <TD WIDTH="211"><FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"><B>Votre 
    mot de passe</B></FONT></TD><TD WIDTH="364"> <FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"><INPUT TYPE="password" NAME="password" value="<?php echo $_POST['password']?>" ></FONT></TD></TR><TR> 
    <TD VALIGN="BOTTOM" WIDTH="211"> <DIV ALIGN="CENTER"><FONT SIZE="1" FACE="Arial, Helvetica, sans-serif">Vous 
    n'&ecirc;tes pas encore inscrit ?<BR><A HREF="inscription.php">Cliquez ici</A> 
    pour vous inscrire.</FONT></DIV></TD><TD WIDTH="364"><BR><TABLE WIDTH="346" BORDER="0" CELLSPACING="0" CELLPADDING="0" HEIGHT="20"><TR><TD WIDTH="24%" HEIGHT="7"><DIV ALIGN="LEFT"><FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"> 
    <INPUT TYPE="button" ONCLICK="if ( confirm('Êtes-vous sûr(e) de vouloir annuler ? Vous serez redirigé vers la page principale.') ) location.href='../../index.php';"  NAME="submit2" VALUE="Annuler" /> 
    &nbsp;</FONT></DIV></TD><TD WIDTH="20%" HEIGHT="7"><DIV ALIGN="LEFT"><FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"> 
    &nbsp;<INPUT TYPE="submit" NAME="connexion" VALUE=" OK "></FONT></DIV></TD><TD WIDTH="56%" HEIGHT="7"><DIV ALIGN="CENTER"></DIV></TD></TR></TABLE></TD></TR> 
    </TABLE></FORM>
     
    </body>
    </html>
    Et pour la déconnexion j'ai fait ceci (deconnexion.php):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?
    session_start(); 
    session_destroy(); 
    header("location: index3.php");
    ?>
    Et les premieres lignes de mon code de ma page index3.php (car le reste n'est que du contenu et donc pas important pour ce sujet)

    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
    session_start();
        if(isset($_SESSION['login']))
        {
     
    $connect=ODBC_connect("TESTPHP5","sa","sasa");
    $mysql = "SELECT TOP 1 LOGIN FROM utilisateur WHERE login LIKE '".$_POST['login']."'  ";
    $res=odbc_exec($connect, $mysql) or die($sql."<br />".odbc_error());
    $login= odbc_result($res,"LOGIN");
    echo 'Bonjouuur '.$_SESSION['login'].' !';
    echo "<a href=deconnexion.php><font color=red>déconnexion</font></a>" ;
    }
        else
            {
                echo "<a href=login.php><font color=red>connexion</font></a>" ;
            }
    Merci beaucoup.
    Ju'

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    Pour la page de login.php j'ai mis plusieurs semaines à la faire, c'est pourquoi il y a plein de commentaires, en general ces commentaires sont en mysql j'ai dû les refaire pour les adapter avec une interface ODBC.
    Voilà, c'etait juste à titre d'info.

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Donc si je comprends bien, test sessions sont bien crées sans erreur, mais lorsque tu essayes de récupérer $_SESSION['login'], tu n'obtiens que du vide...

    Bon déjà, est-ce que ta page de login fonctionne lorsque tu entres le login et le nom de passe dans ton formulaire ? Pour tester tu désactiver la redirection, mettre un var_dump de la session là elle devrait se trouver et vérifier que tu as bien quelque chose dedans.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    else{
    		session_start();
    		$_SESSION['login'] = $_POST['login']; 
    echo '<pre>'; var_dump($_SESSION); echo '</pre>';
    //		header("location: index3.php");
    	}
    Si c'est ok, essaye de placer le var_dump de la session au début de ta page index3.php (après le session_start évidement)

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    Oui il m'affiche mon login et ce que j'ai dans le panier

    array(3) {
    ["langage"]=>
    string(5) "PHP 5"
    ["login"]=>
    string(3) "123"
    ["panier"]=>
    array(2) {
    ["codeProduit"]=>
    array(1) {
    [0]=>
    string(6) "121618"
    }
    ["qteProduit"]=>
    array(1) {
    [0]=>
    int(1)
    }
    }
    }

  13. #13
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par ju0123456789 Voir le message
    Oui il m'affiche mon login et ce que j'ai dans le panier
    Dans la page de connexion ou dans celle d'index ?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    pardon, dans ma page de connexion
    Et dans ma page de login il me met ceci :
    Code x : 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
    array(3) {
      ["langage"]=>
      string(5) "PHP 5"
      ["login"]=>
      string(3) "123"
      ["panier"]=>
      array(2) {
        ["codeProduit"]=>
        array(1) {
          [0]=>
          string(6) "121618"
        }
        ["qteProduit"]=>
        array(1) {
          [0]=>
          int(1)
        }
      }
    }

    je crois bien que c'est la mme chose.
    Egt là j'ai modifié mon panier en rajoutant 1 article, et en modifiant la quantité du 1er article à 2 au lieu de 1, et ça fonctionne niquel
    Code x : 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
    array(3) {
      ["langage"]=>
      string(5) "PHP 5"
      ["login"]=>
      string(3) "123"
      ["panier"]=>
      array(2) {
        ["codeProduit"]=>
        array(2) {
          [0]=>
          string(6) "121618"
          [1]=>
          string(7) "122616A"
        }
        ["qteProduit"]=>
        array(2) {
          [0]=>
          float(2)
          [1]=>
          float(1)
        }
      }
    }

  15. #15
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par ju0123456789 Voir le message
    Egt là j'ai modifié mon panier en rajoutant 1 article, et en modifiant la quantité du 1er article à 2 au lieu de 1, et ça fonctionne niquel
    Il te reste encore un problème ?

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    OUi toujours le meme : (ça ne récupere pas ou il y apeut etre un probleme dasn mon code mais je ne vois vraiment pas ce que c'est)

    Citation Envoyé par ju0123456789 Voir le message
    Bonjour Célira !
    Ok je te donne le code de mon fichier login.php :

    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
    <?php
     
    $_SESSION['langage'] = 'PHP 5'; 
     
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])){
    	$connect=ODBC_connect("TESTPHP5","sa","sasa");
    	//mysql_connect("localhost","sa","sasa");
    	//mysql_select_db("testphp5");
     
     
     
     
     
     
     
    	$mysql = "SELECT TOP 1 LOGIN, VALIDE FROM utilisateur WHERE login LIKE '".$_POST['login']."' AND password LIKE '".$_POST['password']."' ";
    	$req = ODBC_exec($connect, $mysql) or die($mysql."<br />".odbc_error());
    	// $req=mysql_query($mysql) or die($mysql."<br />".mysql_error());
     
    	//list($ok, $valide)=mysql_fetch_row($req);
     
    	// list($ok, $valide)=
            $ok=odbc_fetch_row($req);
    	if($ok){
    	$valide=odbc_result($req,"VALIDE");
            }
     
    	///  j'ai initialiser la variable $erreur à vide au cas où il garderait en mémoire un précédent test
     
    	$erreur="";
    	if(!$ok){
     
    		/// j'ajoute la requete envoyé en cas d'erreur afin d'affiner le debogage: à enlever pour la production
    		 $erreur="<center><font face=arial color=red style=font-size:0.6em><b>Mauvais login ou mot de passe<b /></font></center>";
    		///$erreur="<center><font color=red  style=font-size:0.7em>Mauvais login ou mot de passe <br />ERR : ".$ok."<br />".$mysql."</font></center>";
    	}elseif(!$valide){
    		/// idem qu'au dessus
    		 $erreur="<center><font face=arial color=red style=font-size:0.6em><b>Votre compte n'est pas encore validé.<b /><br /> Veuillez suivre les instructions sur l'E-mail que vous aviez reçu lors de votre inscription.</font></center>";
    		///$erreur="<center><font color=red style=font-size:0.7em>Votre compte n'est pas encore validé, veuillez suivre les instructions sur l'E-mail que vous aviez reçu lors de votre inscription.<br /> ERR : ".$valide."<br />".$mysql."</font></center>";
    	}else{
    		session_start();
    		$_SESSION['login'] = $_POST['login']; 
    		header("location: index3.php");
    	}
     
    	odbc_close($connect);
    	//mysql_close();
    }else{ 
    }
    ?>
     
    <html>
    <head>
    <title>Connexion &agrave; votre espace perso</title>
    <script>
    	function controlvide(){
    		var test="" + document.getElementById('login').value;
    		if(test.length == 0){
    			alert("Veuillez entrer votre Login");
    			return false;
    		}
     
    		var test="" + document.getElementById('password').value;
    		if(test.length == 0){
    			alert("Veuillez entrer votre mot de passe");
    			return false;
    		}
    	}
    </script>
    </head>
    <body bgcolor="#ffffff">
    <TABLE WIDTH="1000" BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="CENTER"><TR BACKGROUND="../www.carri.com.lite_TEST2/images/menu/trait.gif"> 
    <TD WIDTH="419" HEIGHT="83" BACKGROUND="images/menu/trait.jpg" ALIGN="LEFT"><DIV ALIGN="LEFT"><IMG SRC="images/menu/carri_systems.gif" WIDTH="220" HEIGHT="83"></DIV></TD><TD VALIGN="BOTTOM" BACKGROUND="images/menu/trait.JPG" WIDTH="208"><DIV ALIGN="CENTER"><FONT COLOR="#FFFFFF" SIZE="3" FACE="Verdana, Arial, Helvetica, sans-serif"></FONT></DIV><TD WIDTH="632" HEIGHT="83" BACKGROUND="images/menu/trait.jpg" ALIGN="RIGHT"><DIV ALIGN="RIGHT"><IMG SRC="images/menu/systemes_infos_hp.gif" WIDTH="321" HEIGHT="83"></DIV></TD></TR></TABLE><FORM METHOD="post" ACTION="login.php" ONSUBMIT="return controlvide();"> 
    <P ALIGN="CENTER"><FONT SIZE="3" FACE="Arial, Helvetica, sans-serif"><B><BR>Connectez-vous</B></FONT></P><?php echo $erreur; ?> 
    <TABLE BORDER="0" WIDTH="585" ALIGN="center"> <TR> <TD WIDTH="211"> <FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"><B>Votre 
    login</B></FONT></TD><TD WIDTH="364"> <FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"><INPUT TYPE="text" NAME="login"  value="<?php echo $_POST['login']?>"> 
    </FONT></TD></TR> <TR> <TD WIDTH="211"><FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"><B>Votre 
    mot de passe</B></FONT></TD><TD WIDTH="364"> <FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"><INPUT TYPE="password" NAME="password" value="<?php echo $_POST['password']?>" ></FONT></TD></TR><TR> 
    <TD VALIGN="BOTTOM" WIDTH="211"> <DIV ALIGN="CENTER"><FONT SIZE="1" FACE="Arial, Helvetica, sans-serif">Vous 
    n'&ecirc;tes pas encore inscrit ?<BR><A HREF="inscription.php">Cliquez ici</A> 
    pour vous inscrire.</FONT></DIV></TD><TD WIDTH="364"><BR><TABLE WIDTH="346" BORDER="0" CELLSPACING="0" CELLPADDING="0" HEIGHT="20"><TR><TD WIDTH="24%" HEIGHT="7"><DIV ALIGN="LEFT"><FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"> 
    <INPUT TYPE="button" ONCLICK="if ( confirm('Êtes-vous sûr(e) de vouloir annuler ? Vous serez redirigé vers la page principale.') ) location.href='../../index.php';"  NAME="submit2" VALUE="Annuler" /> 
    &nbsp;</FONT></DIV></TD><TD WIDTH="20%" HEIGHT="7"><DIV ALIGN="LEFT"><FONT SIZE="2" FACE="Arial, Helvetica, sans-serif"> 
    &nbsp;<INPUT TYPE="submit" NAME="connexion" VALUE=" OK "></FONT></DIV></TD><TD WIDTH="56%" HEIGHT="7"><DIV ALIGN="CENTER"></DIV></TD></TR></TABLE></TD></TR> 
    </TABLE></FORM>
     
    </body>
    </html>
    Et pour la déconnexion j'ai fait ceci (deconnexion.php):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?
    session_start(); 
    session_destroy(); 
    header("location: index3.php");
    ?>
    Et les premieres lignes de mon code de ma page index3.php (car le reste n'est que du contenu et donc pas important pour ce sujet)

    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
    session_start();
        if(isset($_SESSION['login']))
        {
     
    $connect=ODBC_connect("TESTPHP5","sa","sasa");
    $mysql = "SELECT TOP 1 LOGIN FROM utilisateur WHERE login LIKE '".$_POST['login']."'  ";
    $res=odbc_exec($connect, $mysql) or die($sql."<br />".odbc_error());
    $login= odbc_result($res,"LOGIN");
    echo 'Bonjouuur '.$_SESSION['login'].' !';
    echo "<a href=deconnexion.php><font color=red>déconnexion</font></a>" ;
    }
        else
            {
                echo "<a href=login.php><font color=red>connexion</font></a>" ;
            }
    Merci beaucoup.
    Ju'

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    et quand je rentre dans mon ficheir index3.php en tout debut de code
    ça me met ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in C:\Programmes\wampserver2.0c\www\index3.php on line 2
    Je voulais vider ma session pour tester session à vide.. mais déjà, ça, ça ne marche pas !
    Quand quand je clique sur deconnexion, il m'envoi bien vers la page deconnexion.php mais ne me redirige pas vers index3.php. Donc déjà si rien que ça ne marche pas, pour tester c'est la m.... .

  18. #18
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Euh... je viens de remarquer un truc : dans index.php tu utilises $POST['login']
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mysql = "SELECT TOP 1 LOGIN FROM utilisateur WHERE login LIKE '".$_POST['login']."'  ";
    ça ne devrait pas plutot être $_SESSION['login'] ?

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    bah en fait le $_POST['login'] est envoyé par le formulaire

    Ha je viens de faire un test avec session_unset() et là il ne m'a pas mis d'erreur, ensuite je me connecte bien avec un autre utilisateur, et le login de l'utilisateur s'affiche bien. Par contre, impossible de se deconnecter, quand je clique dessus, j'arrive sur ma page de deconexion qui reste blanche.

    Saurais-tu d'ou cela vient il ?
    MErci

  20. #20
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par ju0123456789 Voir le message
    bah en fait le $_POST['login'] est envoyé par le formulaire
    Quel formulaire ? En fait, je ne comprends pas l'intérêt de cette requête, vu que tu as déjà exécuté sa petite soeur dans le formulaire de connexion...
    Citation Envoyé par ju0123456789 Voir le message
    Ha je viens de faire un test avec session_unset() et là il ne m'a pas mis d'erreur, ensuite je me connecte bien avec un autre utilisateur, et le login de l'utilisateur s'affiche bien. Par contre, impossible de se deconnecter, quand je clique dessus, j'arrive sur ma page de deconexion qui reste blanche.

    Saurais-tu d'ou cela vient il ?
    MErci
    complètement blanche ? pas de message d'erreur ? Essaye d'ajouter un exit après le header.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] connexion bdd dans une variable session
    Par hammag dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/06/2009, 17h11
  2. Réponses: 5
    Dernier message: 21/03/2009, 17h33
  3. Deconnexion site web
    Par reprezente1991 dans le forum Dépannage et Assistance
    Réponses: 1
    Dernier message: 23/05/2008, 07h49
  4. Réponses: 1
    Dernier message: 12/06/2007, 09h30
  5. Réponses: 6
    Dernier message: 28/11/2005, 12h03

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