Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Variables de sessions, portées et warning, au secours !!! [ Archives / AU SECOURS !!! ] (RickDangerous57)

samedi 13 mai 2006 à 14:03:17 | Variables de sessions, portées et warning, au secours !!!

RickDangerous57

Bonjour,

Je souhaitais savoir quelle était la portée des variables de session. Après un session_start(), je n'ai pas réussi à récupérer mes variables de session dans toutes mes pages. Ma variable $_SESSION['valid_user'] n'est pas visible dans tous mes sources appellés.

J'ai ajouté un session_start(); sur la première ligne de mon site (index.php) mais cette même page est rappellée souvent avec des paramètres différents pour réaliser des affichages différents dans des DIV en CSS2.

J'utilise une base de données pour gérer les utilisateurs accédant à certaines sections protégées de mon site.

Mes questions sont les suivantes :

Comment faire pour afficher une page à plusieurs reprises dans laquelle je démarre une session sans avoir d'erreur ou de warning ?

Quel est la portée des variables de session ?

Adresse de mon site www.dolphin-zone.net,

Merci d'avance à tous pour vos réponses,

Rick

samedi 13 mai 2006 à 14:33:51 | Re : Variables de sessions, portées et warning, au secours !!!

coucou747

Salut,

quelles sont les erreurs ?

as tu session_start en haut de chaque page ?


In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)

samedi 13 mai 2006 à 16:17:56 | Re : Variables de sessions, portées et warning, au secours !!!

RickDangerous57

Mes erreurs :

1- Pourquoi dans ma page index.php mes variables de sessions ne sont pas visibles ? et dans un fichier inclu elles le sont ? (voir mes source plus bas)

2- Pourquoi quand je recharge ma page index.php j'ai une erreur => session "already started .... "

Mes sources :

index.php

***
<? if (!isset($_SESSION['valid_user'])) session_start(); ?>
<!-- ======================================================================

                            INDEX.PHP

=========================================================================== -->       
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Dolphin-Zone</title>

  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

 <?
    // Inclusion de la déclaration des variables
    // et du comptage de visite
    include "variables.php";
    include "fonctions/compteur.php";
 ?>
 
 <script type="text/javascript">
 <!--
 // Affichage de sous-menus
 window.onload=montre;
 function montre(id)
 {
  var d = document.getElementById(id);
  for (var i = 1; i<=10; i++)
  {
   if (document.getElementById('smenu'+i))
   {
    document.getElementById('smenu'+i).style.display='none'; 
   }
  }
  if (d)
  {
   d.style.display='block';
  }
 }
 
 // Ouverture de fenêtre avec spéc de la taille
 function ouvreFenetre(page, largeur, hauteur) {
  window.open(page, "", "scrollbars=no,menubar=no,toolbar=no,resizable=no,width="
              + largeur + ",height=" + hauteur);
}
//-->
</script>

<LINK rel="stylesheet" type="text/css" href="style/styles.css">

</head>

<body bgcolor="#dee0ed">


<font size="5"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="453" height="50" id="titre_site" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="titre_site.swf" />
<param name="loop" value="false" />
<param name="quality" value="high" />
<param name="bgcolor" value="#dee0ed" />
<embed src="titre_site.swf" loop="false" quality="high" bgcolor="#dee0ed" width="453" height="50" name="titre_site" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></font>

<?php
    if (isset($_SESSION['valid_user']))
    {
?>   
    <p class="btnlog"> <a href="index.php?page=user_log_out"><img src="Images/btn_logout.gif" border="0" alt="Déconnexion !"></a></p>
   
    <font size="2" color=#4E4848>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        [ <? $_SESSION['valid_user'] ?> Connecté ]
    </font>
<?
    }
    else
    {
?>
    <p class="btnlog"> <a href="index.php?page=user_log_in"><img src="Images/btn_login.gif" border="0" alt="Connexion !"></a></p>

    <font size="2" color=#4E4848>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        [ Non connecté ]
    </font>
<?
    }
?>

<img alt="" src="Images/Barre.jpg">

<div class="conteneur">
<!-- =================================== -->
<!-- FRAME DIV gauche                    -->
<!-- =================================== -->

<div style="height:505px; top:80px;" class="gauche">
<ul>

<dl id="menu">
<dt onclick="javascript:montre();"><a href="index.php?accueil&option=aucune">Accueil</a></dt>

        <dt onclick="javascript:montre('smenu1');">Utilisateurs</dt>
            <dd id="smenu1">
                <ul>
                    <li><a href="index.php?page=user_sign_in&ERRMSG=">Inscription</a></li>                   
                    <li><a href="index.php?page=user_log_in"><img src="Images/cadenas.gif" border="0">&nbsp;Connexion</a></li>
                    <li><a href="index.php?page=user_log_out">Déconnexion</a></li>                   
                </ul>
            </dd>   

           
        <dt onclick="javascript:montre('smenu2');">Professionnel</dt>
            <dd id="smenu2">
                <ul>
                    <li><a href="index.php?page=professionnel"><img src="Images/cadenas.gif" border="0">&nbsp;Accueil</a></li>
                </ul>
            </dd>   

        <dt onclick="javascript:montre('smenu4');">Famille</dt>
            <dd id="smenu4">
                <ul>
                    <li><a href="galleries/diaporama.php" target="_blank"><img src="Images/cadenas.gif" border="0">&nbsp;Galleries</a></li>
                    <li><a href="index.php?page=videos"><img src="Images/cadenas.gif" border="0">&nbsp;Vidéos</a></li>
                    <li><a href="#"><img src="Images/cadenas.gif" border="0">&nbsp;Site des Lapins</a></li>
                </ul>
            </dd>

        <dt onclick="javascript:montre('smenu5');">Liens</dt>
            <dd id="smenu5">
                <ul>
                    <li><a href="index.php?page=liens_libre"> iNet Libre </a></li>
                    <li><a href="index.php?page=liens_culture">Culture</a></li>
                </ul>
            </dd>

   
</dl>
</div>

<!-- =================================== -->
<!-- FRAME DIV Corps                     -->
<!-- =================================== -->
<div class="frame">
   
    <?php if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page']; switch($page)
        {
        case 'accueil': include ('accueil.php');break;
        case 'cnam': include ('cnam.php');break;
        case 'download': include ('download.php');break;
        case 'news': include ('news.php');break;       
        case 'livre': include ('livre.php');break;           
        case 'liens': include ('liens.php');break;
        case 'professionnel': include ('professionnel.php');break;
        case 'videos': include ('videos/videos.php');break;
        case 'user_sign_in': include ('user_sign_in.php');break;
        case 'user_log_in': include ('user_log_in.php');break;   
        case 'user_log_out': include ('user_log_out.php');break;           
        case 'mail': include ('mail.php');break;   
        case 'liens_libre': include ('liens_libre.php');break;       
        case 'liens_culture': include ('liens_culture.php');break;               
        }
    ?>

</div>

<!-- Division BAS : Bandeau Bas -->
<div class="bas">
   
    <img " alt="" src="Images/Barre.jpg">
   
    <div style="text-align:center;">
       
        <p style="line-height:100%; margin-top:0; margin-bottom:0;">    <A href=mailto:webmaster@dolphin-zone.net?subject=Question><img src="Images/arobases014.gif" width="25" height="28" border="0"><img src="Images/Menu_Contact.jpg" name="image6" onmouseover="image6.src='Images/Menu_Contact2.jpg'"
                onmouseout="image6.src='Images/Menu_Contact.jpg'" border="0">
    </a>   
   
    <a href="http://www.xiti.com/xiti.asp?s=251354" title="Mesurez votre audience">
    <script type="text/javascript">
    <!--
        Xt_param = 's=251354&p="accueil"';
        try
        {
            Xt_r = top.document.referrer;
        }
        catch(e)
        {
            Xt_r = document.referrer;
        }
        Xt_h = new Date();
        Xt_i = '<img width="39" height="25" border="0" ';
        Xt_i += 'src="http://logv30.xiti.com/hit.xiti?'+Xt_param;
        Xt_i += '&hl='+Xt_h.getHours()+'x'+Xt_h.getMinutes()+'x'+Xt_h.getSeconds();
        if(parseFloat(navigator.appVersion)>=4)
        {
            Xt_s=screen;Xt_i+='&r='+Xt_s.width+'x'+Xt_s.height+'x'+Xt_s.pixelDepth+'x'+Xt_s.colorDepth;
        }
        document.write(Xt_i+'&ref='+Xt_r.replace(/[<>"]/g, '').replace(/&/g, '$')+'" title="Analyse d\'audience">');
    //-->
    </script>
    <noscript>
        Mesure d'audience ROI frequentation par <img width="39" height="25" src="http://logv30.xiti.com/hit.xiti?s=251354&amp;p=accueil" alt="Analyse d'audience" />
    </noscript></a>
    </p>
   
        <!-- Adresse IP Visiteur -->
        <?php
            //include "fonctions/get_ip.php";
            $IP_Visiteur = get_ip();
        ?>
       
   
        <p style="line-height:100%; margin-top:0; margin-bottom:0;">&nbsp;</p>
        <p style="line-height:100%; margin-top:0; margin-bottom:0;">
            <span style="font-family:verdana,arial,sans-serif; text-align:center;">
                <font size="1" color="#330033">
                    <font color=#4E4848>
                        <i> <? include "fonctions/AffCptVis.php"; ?> </i> <a href="Admin/cptlog.php" target="_blank">[..]</a> <i> depuis le 01/05/2006 -
                        Ce site est optimisé pour IE6 - dernière màj le 8 mai 2006 -
                        Votre Adresse IP : <font color="black"> <?php echo $IP_Visiteur; ?> </i> </font>
                    </font>
                </font>
            </span>
        </p>
       
</div>
   
   
</div>

</body>
</html>
***

accueil.php

<?
//================================================================
// Accueil du site
//================================================================
?>
<STYLE>
<!--
.Message
    {
    position: absolute;
    top : 130px;
    left: 20px;
    width : 400px;
    height: 50px;
    text-align : center;
    vertical-align : middle;
    background-color:#CCCCCC;
    color: #6666FF;
    }

.Manchette
    {
    position: absolute;
    top : 130px;
    left: 20px;
    width : 400px;
    height: 65px;
    text-align : center;
    vertical-align : middle;   
    background-color:#CCCCCC;
    color: #6666FF;
    }
   
   
-->

</STYLE>
<br> </br>
<h1>&nbsp;<img src="Images/Bienvenue.jpg" width="409" height="55" border="0"><font color="blue"></font></h1>

<p class="Manchette">
    <br> <img src="Images/new.gif"> </img> Vous pouvez dès à présent effectuer une demande d'inscription sur le site,
    n'oubliez pas de motiver votre demande.
</p>

<?php
    // Traitement de options
    if (isset($_GET['option']))
    {
        // Récupération de l'option d'affichage de la page d'accueil
        $option        = $_GET['option'];
       
        switch ($option)
        {
            // Affichage après demande d'inscription
            case 'mail' :
            {
                echo ("    <br>
                        <p class='Message'>
                            >>> Votre demande a bien été prise en compte, vous revevrez un mail
                            comportant votre <b><i> login </i></b> et <i><b> mot de passe </i></b> prochainement.
                        </p>");
               
                // Redirection vers l'acueil sans message au bout de 10 secondes
                echo("<meta http-equiv=\"refresh\" content=\"10;URL=index.php?page=accueil&option=\">");                       
                break;
            }

            // Affichage après login réussi           
            case 'login' :
            {
                echo ("    <br>
                        <p class='Message'> <br>
                            >>> Bienvenue, vous êtes loggué en : ".$_SESSION['valid_user']." <<<
                        </p>");
               
                // Redirection vers l'acueil sans message au bout de 10 secondes
                echo("<meta http-equiv=\"refresh\" content=\"10;URL=index.php?page=accueil&option=\">");                       
                break;
            }
           
            // Affichage après login réussi           
            case 'logout' :
            {
                echo ("    <br>
                        <p class='Message'> <br> <br>
                            >>> A bientôt sur www.Dolphin-Zone.net ! <<<
                        </p>");
               
                // Redirection vers l'acueil sans message au bout de 10 secondes
                echo("<meta http-equiv=\"refresh\" content=\"10;URL=index.php?page=accueil&option=\">");                       
                break;
            }
        }
    }

?>

log_in_user.php

<?php
//================================================================
//  Login
//================================================================

// Variables
$CptBoucle = 0;

// Récupération des données de formulaires postées vers le serveur
// et test de ces dernières
if (isset($_POST['login']) && isset($_POST['password']))
{
    //  Cas ou l'utilisateur a essayé de se logguer
    $login = $_POST['login'];
    $password = $_POST['password'];

    // Connection à MySQL
    $db = mysql_connect('localhost', 'root', 'pauline57');

    // Sélection de la base
    mysql_select_db('dolphin',$db);

    // Création de la requête SQL
    $sql = 'select * from users '
           ."where login='$login' "
           ." and password=sha1('$password')";

    // Envoie de la requête
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
   
    // Boucle qui va faire un tour pour chaque enregistrement
    while($data = mysql_fetch_assoc($req))
        {
            $CptBoucle++;
        }
 
    if ($CptBoucle > 0 )
    {
        // L'utilisateur a été identifié dans la base de données
        $_SESSION['valid_user'] = $login;   
    }

    // Fermeture la connexion à mysql
    mysql_close();
}

if (isset($_SESSION['valid_user']))
{
    // Connexion OK => Accueil avec message loggué !
    // Redirection vers la page d'accueil
    echo("<meta http-equiv=\"refresh\" content=\"0;URL=index.php?page=accueil&option=login\">");
    exit;   
}
else
{
    // Connexion échouée
?>
    <p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <img src="Images/log_in_user.gif" border="0"> </img>

    <form action="index.php?page=user_log_in" method="post" name="form" id="form">       
          <table width="380" border="0" class="text1">
            <tr>
              <td width="150"> </td>
              <td width="80" height="24"><font color=#0000A0>Login</font></td> <td width="145"> <div align="left"> <input type="text" name="login"> </div> </td>
            </tr>
            <tr>
              <td> </td>       
              <td height="24"><font color=#0000A0>Password</font></td> <td> <div align="left"> <input type="password" name="password"> </div> </td>
            </tr>
            <tr>
              <td> </td>       
              <td> &nbsp; </td> <td align=center> <input type="submit" name="Submit" value="Connexion"></td>
            </tr>
          </table>
    </form>

    </p>
<?
}
?>


***

Merci d'avance,

Rick

samedi 13 mai 2006 à 16:38:44 | Re : Variables de sessions, portées et warning, au secours !!!

coucou747

Salut,

<? if (!isset($_SESSION['valid_user'])) session_start(); ?>

remplace ça par :

<?php session_start(); ?>

renvoi nous les erreurs et les n° de lignes ! et les lignes concernées !


In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)

samedi 13 mai 2006 à 17:19:26 | Re : Variables de sessions, portées et warning, au secours !!!

RickDangerous57

Ok. J'ai compris qu'il fallait commencer de suite avec session_start() et ne pas rappeller cette fonction si la session n'est pas détruite, il me reste tout de même un problème : j'essaie d'afficher le contenu d'une variable de session dans mon index.php (ligne 72) :

<p class="btnlog"> <a href="index.php?page=user_log_out"><img src="Images/btn_logout.gif" border="0" alt="Déconnexion !"></a></p>
   
    <font size="2" color=#4E4848>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        [
<? $_SESSION['valid_user'] ?> Connecté ]
</font>


=> cette dernière ne s'affiche pas (et pas d'erreur ...)

Dans ce même fichier index.php j'inclu dans un DIV un autre fichier accueil.php (ligne 74) et là, dans ce dernier le contenu de cette même variable s'affiche ...
je ne comprends pas pourquoi elle s'affiche à ce moment ...

            // Affichage après login réussi           
            case 'login' :
            {
                echo ("    <br>
                        <p class='Message'> <br>
                            >>> Bienvenue, vous êtes loggué en : ".$_SESSION['valid_user']." <<<
                        </p>");
               
                // Redirection vers l'acueil sans message au bout de 10 secondes
                echo("<meta http-equiv=\"refresh\" content=\"10;URL=index.php?page=accueil&option=\">");                       
                break;
            }
Merci pour vos réponses déjà postées et merci d'avance pour les futures ;o)

Rick

samedi 13 mai 2006 à 17:32:57 | Re : Variables de sessions, portées et warning, au secours !!!

juki_webmaster

Membre Club
Salut,

<? $_SESSION['valid_user'] ?>
Je suis contre ceci, mais voici la bonne forme: <?=$_SESSION['valid_user']; ?>

Un petit: <?php echo $_SESSION['valid_user']; ?> est plus le bienvenue.

samedi 13 mai 2006 à 17:37:15 | Re : Variables de sessions, portées et warning, au secours !!!

coucou747

Salut,

et pour ces lignes, quel est le message d'erreur ?


In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)

samedi 13 mai 2006 à 17:52:21 | Re : Variables de sessions, portées et warning, au secours !!!

RickDangerous57

Merci beaucoup pour votre aide !

Le problème était tout simplement celui résolu par <juki_webmaster>, pourquoi un <? $_SESSION['valid_user'] ?> remplacé
par un <?php echo $_SESSION['valid_user']; ?> posait-il problème ? J'utilise cette syntaxe dans d'autres parties de code et
cela fonctionne ...

Merci à tous ceux qui ont répondus à mes questions, mon post est résolu ;o)

Rick

samedi 13 mai 2006 à 17:56:19 | Re : Variables de sessions, portées et warning, au secours !!!

coucou747

Salut,

déja, <? c'est pas bon car tu peux le confondre avec un xml....

(c'est pas parceque ça marche que c'est bon)

ensuite, $var ça n'a aucun sens.... echo $var; là, ça en a un....


In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)



Cette discussion est classé dans : site, variables, session, sessions, warning


Répondre à ce message

Sujets en rapport avec ce message

détruire variable de sessions [ par professeursidi ] Salut,voila dans mon site avec base de données j'utilise les sessions pour garder mes variables mais pti pb :Si je choisi par exemple de consulter un variables de session [ par grom53 ] salut, je voudrais utiliser des variables de session en PHP avec session_start, session_register... Mon script est bon (c est un ex de bouquin) mais l variables de sessions [ par attentio ] slt !peut_on ecrire :$_SESSION['prix_total']=number_format($prix_B+$_SESSION['prix_A'], 2);//affichage de la var. de sessionecho $_SESSION['prix_tot Les sessions [ par max68 ] Bonjour,Bien que j'ai trouvé des tutos sur les sessions sur ce super site et sur le net, je n'arrive toujours pas à faire ce que je veux sur mon site, Mais ou sont enregistré les variables session? [ par Oeil_de_taupe ] Bonjour les programmeurs, J'ai conçus un site en PHP (site d'occasion qui permet de faire un lien entre un vendeur et un acheteur). Mais pour ma prés Firefox et les sessions - je cherche de l'aide !! [ par woody68 ] Bonjour à tous, Je développe depuis 15 jours un site d'e-commerce. Je teste en permanence ce site sur IE et sur Firefox et je viens de remarquer un p Probleme suivant : Warning: Unknown(): AIDEZ MOI... [ par groupmat ] Bonjour, Voila, j'ai crée un site que j'héberge chez free et il se trouve que j'ai un probleme de variable sessions. En effet, jusqu'a présent j'arri Sessions??? [ par jnbrunet ] Je suis en train de travailler sur un site avec un espace membre. Lorsque la personne se connecte, je défini $_SESSION['LoginOk']=true.Tous sa marche Warning session: IIS sous win2003serveur PHP5 [ par RoX5 ] Bonjour,J'ai installé mon serveur tournant sous Windows 2003 Server et IIS6 et php5Déjà avant les fonction mysql_connect et tout n'allais pas sa j'ai besoin de renseignement sur les sessions [ par mictif ] bonjour, je suis en train de creer un petit site et j'aimerais avoir des information sur les sessions. j'ai lu divers tuto et source sur les session m


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.