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 :

index et sessions


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 30
    Points
    30
    Par défaut index et sessions
    voila j'ai un souci j'aimerai qu'une fois l'utilisateur connecté , ma page index ne sois plus la meme j'aimerai rajouter un lien pour aller directement au profil du membre et une boite de reception de messages , je pense utiliser des if comme on me l'a dis mais je ne sais pas du tout comment faire ? est ce que quelqu'un pourrais m'aider svp

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par keurdeloup45 Voir le message
    voila j'ai un souçi j'aimerai qu'une fois l'utilisateur connecté , ma page index ne sois plus la meme j'aimerai rajouté un lien pour aller directement au profil du membre et une boite de reception de messages , je pense utiliser des if comme on me l'a dis mais je ne sais pas du tout comment faire ? est ce que quelqu'un pourrais m'aider svp
    Tout simplement un genre comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?PHP
    session_start();
    if (!isset($_SESSION['loginOK']))   
    {$_SESSION['loginOK']="";$loginOK="";}
         else {$loginOK=$_SESSION[''];}
     
    ?>
    Puis ou tu veux dans ta page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    if ($loginOK !="" )   
     {
     
    echo ("<div> etc....................................</div>");
      }
    Dernière modification par FoxLeRenard ; 12/05/2009 à 12h12.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 30
    Points
    30
    Par défaut
    alors j'ai fais 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
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>acceuil !</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
       </head>
       <body>
     
       <div id="en_tete">
       <!-- Ici on mettra la bannière -->
       </div>
     
       <div id="menu">
       <div class="element_menu">
           <ul>
               <li><a href="inscri.php">inscription</a></li>
               <li><a href="connex.php">connexion</a></li>
               <li><a href="recherche.php">recherche</a></li>
    		    <?php
                if(isset($_COOKIE["id"]))
                {
    			echo <a href="membre.php">membre</a>;
    			}
                ?>
           </ul>
       </div>
     
     
       </div>
     
       <div id="corps">
       <DIV ALIGN="CENTER"><H2>Site de chat et de rencontres</H2></DIV><BR>
       <H4>Tu en a marre d'etre seul(e) . inscris toi vite !</H4>
       </div>
     
     
     
       </body>
    </html>
    mais ça me renvoie ça comme erreur :
    Parse error: syntax error, unexpected '<' in /home/renccas/public_html/index.php on line 23

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 177
    Points : 74
    Points
    74
    Par défaut rep
    Il manque des ' ' pour ton echo. ton echo s'écrit comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="membre.php">membre</a>';
    et non comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo <a href="membre.php">membre</a>;

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 30
    Points
    30
    Par défaut
    je te remercie fasyr ! maintenant j'ai un souçi dans ma page connex.php voiçi le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    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
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
     <?php
    // Redirige l'utilisateur s'il est déjà identifié
    if(isset($_COOKIE["id"]))
    {
         header("Location: index.php");
    }
    else
    {
     
         // Formulaire visible par défaut
         $masquer_formulaire = false;
     
         // Une fois le formulaire envoyé
         if(isset($_POST["BT_Envoyer"]))
         {
     
              // Vérification de la validité des champs
              if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["TB_pseudo"]))
              {
                   $message = "Votre pseudo doit comporter entre 2 et 20 caractères<br />\n";
                   $message .= "L'utilisation de l'underscore est autorisée";
              }
              elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["TB_password"]))
              {
                   $message = "Votre mot de passe doit comporter au moins 6 caractères";
              }
              else
              {
     
                   // Connexion à la base de données
                   // Valeurs à modifier selon vos paramètres configuration
                   mysql_connect("localhost", "xxxxxxx", "xxxxxxx");
                   mysql_select_db("xxxxxxxxxxxx");
     
                   // Sélection de l'utilisateur concerné
                   $result = mysql_query("
                        SELECT id, pseudo, password, actif
                        FROM inscri
                        WHERE pseudo = '" . $_POST["TB_pseudo"] . "'
                   ");
     
                   // Si une erreur survient
                   if(!$result)
                   {
                        $message = "Une erreur est survenue lors de la tentative de connexion";
                   }
                   else
                   {
     
                        // Si aucun utilisateur n'a été trouvé
                        if(mysql_num_rows($result) == 0)
                        {
                             $message = "Le pseudo " . $_POST["TB_pseudo"] . " n'existe pas";
                        }
                        else
                        {
     
                             // Récupération des données
                             $row = mysql_fetch_array($result);
     
                             // Si le compte n'a pas été activé
                             if($row["actif"] == 0)
                             {
                                  $message = "Votre compte  n'a pas été activé";
                             }
                             else
                             {
     
                                  // Vérification du mot de passe
                                  if(md5($_POST["TB_password"]) != $row["password"])
                                  {
                                       $message = "Votre mot de passe est incorrect";
                                  }
                                  else
                                  {
     
                                       // Définition du temps d'expiration des cookies
                                       $expiration =
                                            empty($_POST["CB_Connexion_Automatique"]) ? 0 : time() + 365 * 24 * 3600 ;
     
                                       // Création des cookies
                                       setcookie("id", $row["id"], $expiration, "/");
                                       setcookie("pseudo", $row["pseudo"], $expiration, "/");
     
     
     
                                       // Redirection de l'utilisateur
                                       header("Location: index.php");
     
                                  }
     
                             }
     
                        }
     
                   }
     
                   // Fermeture de la connexion à la base de données
                   mysql_close();
     
              }
     
         }
     
    }
     
    ?> 
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>connexion</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
       </head>
       <body>
     
       <div id="en_tete">
       <!-- Ici on mettra la bannière -->
       </div>
     
       <div id="menu">
       <div class="element_menu">
           <ul>
               <li><a href="index.php">acceuil</a></li>
               <li><a href="recherche.php">recherche</a></li>
     
           </ul>
       </div>
     
     
       </div>
     
       <div id="corps">
       <DIV ALIGN="CENTER"><H2>Site de chat et de rencontres</H2><BR>
        <? if(isset($message)) { ?>
         <p><?= $message; ?></p>
    <? } if($masquer_formulaire != true) { ?>
    <form action="http://<?= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
         <p>
              <label for="TB_pseudo">pseudo :</label> <input type="text" name="TB_pseudo" />
         </p>
         <p>
              <label for="TB_password">Mot de passe :</label> <input type="password" name="TB_password"/>
         </p>
         <p>
              <input type="checkbox" name="CB_Connexion_Automatique" />
              Se connecter automatiquement à chaque visite
         </p>
         <p>
              <input type="submit" name="BT_Envoyer" value="Envoyer" />
         </p>
    </form>
    <? } ?>
     
       </div>
     
     
     
       </body>
    </html>
    et le type d'erreurs que ça me renvoie :
    Warning: Cannot modify header information - headers already sent by (output started at /home/renccas/public_html/connex.php:1) in /home/renccas/public_html/connex.php on line 82

    Warning: Cannot modify header information - headers already sent by (output started at /home/renccas/public_html/connex.php:1) in /home/renccas/public_html/connex.php on line 83

    Warning: Cannot modify header information - headers already sent by (output started at /home/renccas/public_html/connex.php:1) in /home/renccas/public_html/connex.php on line 88
    est ce que tu pourrai m'aider stp

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    La régle en OR est que tout tes traitements de session
    et surtout reroutage se fait EN PREMIER
    avant tout envoie du header au visiteur qui lit ta page

    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <Doctype ETC.....
    puis 
    <?PHP
    session_start();
    ?>
    OU
    <?PHP
    header('Location: http://www.graphie.com/index.php');
    ?>
    sont faux !!
    il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?PHP
    session_start();
    if ($xx !="") header('Location: http://www.graphie.com/index.php');
     
    ?>
    mais c'est plus dur encore car si dans ton PHP avant l'ouverture <?PHP
    tu as une ligne ou unretour chariot c' est pas bon

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 30
    Points
    30
    Par défaut
    en faisant comme tu m'a dis
    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
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
     <?php
    // Redirige l'utilisateur s'il est déjà identifié
    if(isset($_COOKIE["id"]))
    {
         header("Location: index.php");
    }
    else
    {
     
         // Formulaire visible par défaut
         $masquer_formulaire = false;
     
         // Une fois le formulaire envoyé
         if(isset($_POST["BT_Envoyer"]))
         {
     
              // Vérification de la validité des champs
              if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["TB_pseudo"]))
              {
                   $message = "Votre pseudo doit comporter entre 2 et 20 caractères<br />\n";
                   $message .= "L'utilisation de l'underscore est autorisée";
              }
              elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["TB_password"]))
              {
                   $message = "Votre mot de passe doit comporter au moins 6 caractères";
              }
              else
              {
     
                   // Connexion à la base de données
                   // Valeurs à modifier selon vos paramètres configuration
                   mysql_connect("localhost", "xxxxxx", "xxxxxx");
                   mysql_select_db("xxxxxxxxxxx");
     
                   // Sélection de l'utilisateur concerné
                   $result = mysql_query("
                        SELECT id, pseudo, password, actif
                        FROM inscri
                        WHERE pseudo = '" . $_POST["TB_pseudo"] . "'
                   ");
     
                   // Si une erreur survient
                   if(!$result)
                   {
                        $message = "Une erreur est survenue lors de la tentative de connexion";
                   }
                   else
                   {
     
                        // Si aucun utilisateur n'a été trouvé
                        if(mysql_num_rows($result) == 0)
                        {
                             $message = "Le pseudo " . $_POST["TB_pseudo"] . " n'existe pas";
                        }
                        else
                        {
     
                             // Récupération des données
                             $row = mysql_fetch_array($result);
     
                             // Si le compte n'a pas été activé
                             if($row["actif"] == 0)
                             {
                                  $message = "Votre compte  n'a pas été activé";
                             }
                             else
                             {
     
                                  // Vérification du mot de passe
                                  if(md5($_POST["TB_password"]) != $row["password"])
                                  {
                                       $message = "Votre mot de passe est incorrect";
                                  }
                                  else
                                  {
     
                                       // Définition du temps d'expiration des cookies
                                       $expiration =
                                            empty($_POST["CB_Connexion_Automatique"]) ? 0 : time() + 365 * 24 * 3600 ;
     
                                       // Création des cookies
                                       setcookie("id", $row["id"], $expiration, "/");
                                       setcookie("pseudo", $row["pseudo"], $expiration, "/");
     
     
     
                                       // Redirection de l'utilisateur
                                       if(isset($_COOKIE["id"])) header("Location: index.php");
     
                                  }
     
                             }
     
                        }
     
                   }
     
                   // Fermeture de la connexion à la base de données
                   mysql_close();
     
              }
     
         }
     
    }
     
    ?> 
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>connexion</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
       </head>
       <body>
     
       <div id="en_tete">
       <!-- Ici on mettra la bannière -->
       </div>
     
       <div id="menu">
       <div class="element_menu">
           <ul>
               <li><a href="index.php">acceuil</a></li>
               <li><a href="recherche.php">recherche</a></li>
     
           </ul>
       </div>
     
     
       </div>
     
       <div id="corps">
       <DIV ALIGN="CENTER"><H2>Site de chat et de rencontres</H2><BR>
        <? if(isset($message)) { ?>
         <p><?= $message; ?></p>
    <? } if($masquer_formulaire != true) { ?>
    <form action="http://<?= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
         <p>
              <label for="TB_pseudo">pseudo :</label> <input type="text" name="TB_pseudo" />
         </p>
         <p>
              <label for="TB_password">Mot de passe :</label> <input type="password" name="TB_password"/>
         </p>
         <p>
              <input type="checkbox" name="CB_Connexion_Automatique" />
              Se connecter automatiquement à chaque visite
         </p>
         <p>
              <input type="submit" name="BT_Envoyer" value="Envoyer" />
         </p>
    </form>
    <? } ?>
     
       </div>
     
     
     
       </body>
    </html>
    mais ces deux erreurs persiste :
    Warning: Cannot modify header information - headers already sent by (output started at /home/renccas/public_html/connex.php:1) in /home/renccas/public_html/connex.php on line 82

    Warning: Cannot modify header information - headers already sent by (output started at /home/renccas/public_html/connex.php:1) in /home/renccas/public_html/connex.php on line 83

  8. #8
    FoxLeRenard
    Invité(e)
    Par défaut
    Tu vas dire que FoxLeRenard il est empoisonnant

    Mais bon je n'y peut rien, le dialogue entre le visiteur et le serveur, pour lui donner son cookies, ouvre lui aussi le header

    Donc aprés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     setcookie("id", $row["id"], $expiration, "/");
     setcookie("pseudo", $row["pseudo"], $expiration, "/");
    Tu es obligé de passer par javascript pffffffff

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      // Redirection de l'utilisateur
       if(isset($_COOKIE["id"])) 
     {
     print "<script type=\"text/javascript\">
    window.location=\"index.php\"</script>";
     exit;
     }

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/09/2011, 17h14
  2. Réponses: 9
    Dernier message: 18/05/2008, 12h06
  3. [Cookies] Perte d'index dans ma session
    Par crashyear dans le forum Langage
    Réponses: 3
    Dernier message: 20/12/2007, 15h11
  4. Session et robot d'indexation
    Par Tee shot dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2007, 23h12
  5. Problème d'index de session
    Par snakepierre dans le forum Langage
    Réponses: 2
    Dernier message: 16/07/2006, 20h41

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