[SESSION] Verification Propre et rapide

Statut
N'est pas ouverte pour d'autres réponses.

WaKaaN

JcQL
Bonjour à tous,

je souhaiterais utiliser une méthode conseillée par notre Php Guru que je ne citerais pas (Chui sur que vous voyez de qui je parle :p ), le problème est que j'ai une erreur.

Code :
PHP:
 if(isset($_SESSION['var']{0}) { ... }
Erreur :
PHP:
Cannot use object of type __PHP_Incomplete_Class as array
J'en déduis que l'on ne peut pas traiter les strings d'une session comme les autres. Je me trompe surement, mais bon ^^ .

Enfin soit, quelle serait la meilleure méthode, optimale et tout le bazar pour vérifier l'existence( et sa consistance bien évidemment) d'une session ?

Dois-je utiliser ca ?
PHP:
if(isset($_SESSION['var']) && $_SESSION['var']!="" )



Merci à tous!
 

k o D

Elite
Tu dois passer ta superglobale $_SESSION dans une autre variable toute simple.

$contenuVar = $_SESSION['var'];
if (isset($contenuVar{0}))

là tu n'auras pas de soucis ;)
 
1er
OP
WaKaaN

WaKaaN

JcQL
et si ma session est vide (premier affichage par exemple), je n'aurais pas de probleme disant que ma variable n'est pas initialisée?
 
1er
OP
WaKaaN

WaKaaN

JcQL
Bon, ca n'a rien changé, à part le n° de la ligne ^^
 

ozilrit

Elite
var_dump($_SESSION['var']) stp.
 

ozilrit

Elite
Ok, en fait... je mise 10 sur :
  • {0} suppose une chaîne,
  • $_SESSION['var'] n'est pas déclaré,
  • PHP ne peut donc caster $_SESSION['var'] en une chaîne,
  • FAIL.
 
1er
OP
WaKaaN

WaKaaN

JcQL
object(__PHP_Incomplete_Class)#1 (2) { ["__PHP_Incomplete_Class_Name"]=> string(4) "Page" ["html:private"]=> string(907) "
 

ozilrit

Elite
string(907), yeah. :-D

Envois ton script (avec la mise en session).
 
1er
OP
WaKaaN

WaKaaN

JcQL
Mise en session :

foreach($_POST as $name=>$value) {
$_SESSION[$name] = $_POST[$name] ;
}

header('Location: ../'.$_SESSION['page']); // Page fait bien partie de mes posts...
exit();



Récupération

$s_Page = $_SESSION['page'];

if(isset($s_Page{0})) {
echo 'hello';
}


Pourtant que je fais les échos, tout marche nickel... Je suis bien redirigé sur ma page, donc c'est que ma session est correcte non?
 

ozilrit

Elite
T'pourrais faire un exemple avec des données ?
 

ozilrit

Elite
Bah, rajoute ceci en tête :
var_dump($_POST);​

Refais tes essais, et envois moi le résultat du dump.
 
1er
OP
WaKaaN

WaKaaN

JcQL
array(5) { ["t_usernameNAME"]=> string(4) "test" ["t_PasswordNAME"]=> string(4) "test" ["page"]=> string(9) "index.php" ["token"]=> string(32) "01763cdeca88610b4dc31b824a17edeb" ["b_SubmitNAME"]=> string(7) "Envoyer" }

Vala le dump du post
 

Jereck

Α & Ω
Staff
Mais pourquoi le {0} ?
 

ozilrit

Elite
heu oui et c'est lequel qui te ponds une erreur ?
 

ozilrit

Elite
Rajoute un dump de SESSION aussi tiens. Le dump de POST ci-dessus ne correspond pas vraiment au dump de SESSION tout en haut.
 

ozilrit

Elite
Mais pourquoi le {0} ?
Quand tu veux t'assurer qu'une chaîne est remplie, tel que (ça devrait te parler =]) :
if (! (string == null || "".equals (string.trim())))​

Le moyen le plus pratique est de vérifier qu'un premier char. ai été initialisée dans la chaîne :
if (isset ($string{0}))​
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut