#1 Le 27/11/2012, à 15:36
- Vuel
[PHP] Question affectation curieuse $_SESSION
Bonjour à vous
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