Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/11/2012, à 15:36

Vuel

[PHP] Question affectation curieuse $_SESSION

Bonjour à vous smile

Voilà je viens de tomber sur une erreur PHP et rien sur le net ne me permet de savoir d'où vient ce curieux phénomène, je l'explique :

J'ai une variable de session qui est initialisé lors de la connexion d'un utilisateur de façon classique :

$_SESSION["id_utilisateur"] = $done["id"];

Sur une page qui nécessite que l'utilisateur soit connectée je fais la manipulation suivante :


$id_utlisateur = 0;

if(isset($_SESSION["id_utilisateur"]) && !empty($_SESSION["id_utilisateur"])) $id_utilisateur = $_SESSION["id_utilisateur"];

Mon petit problème est que lorsque j'arrive à cette condition dans ma page, ma variable $_SESSION["id_utilisateur"] prend la valeur de $id_utilisateur (dans l'exemple 0 mais j'ai fais des tests avec plusieurs possibilités).

Quelqu'un sait d'où est ce que ça peut venir ?

J'ai ce phénomène sur mon serveur OVH mais pas en local sous Wamp !

Merci de vos lumières.

Cordialement

Vuel.

Hors ligne

#2 Le 27/11/2012, à 16:13

Maisondouf

Re : [PHP] Question affectation curieuse $_SESSION

$id_utlisateur = 0;

Il manque un 'i'...


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#3 Le 27/11/2012, à 16:38

Maisondouf

Re : [PHP] Question affectation curieuse $_SESSION

Ce code réagit normalement sur les serveurs OVH et autres, enfin en fonction des lignes commentées ou non

<?php
//session_start();

//$_SESSION["id_utilisateur"]=22;

$id_utilisateur = 40;

if( isset($_SESSION["id_utilisateur"] ) && !empty($_SESSION["id_utilisateur"])) 
   $id_utilisateur = $_SESSION["id_utilisateur"];

echo "*".$_SESSION["id_utilisateur"]."*";

echo "<br>*".$id_utilisateur."*";

?>

Avec les deux lignes commentées, le scripte répond toujours ** et *40*.
Si tu décommentes une fois la deuxiéme, il doit toujours répondre *22* et *22*

Par contre si la première est commentée, le serveur ne prends pas forcément en compte les variables de sessions.
Le résultat pourra être ** et *40* même si la deuxième est décommentée.


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne