J'ai un ancien code écrit en PHP 4.2, que je suis en train de modifier pour
qu'il fonctionne en PHP 5.1.
Il y a malheureusement beaucoup de variables globales à supprimer.
Pour cela j'utilise les tableaux superglobaux et les sessions ; la seule
méthode que j'ai trouvée... Si il en existe d'autres, je suis preneur !
Ainsi $ma_variable_de_session devient $_SESSION['ma_variable_de_session'] si
la variable est simple et pour pour les tableaux $ma_variable_de_session[i]
devient $_SESSION['ma_variable_de_session'][i].
Mon problème vient des variables objets. Comment faire passer une variable
objet (ex. var_objet->propriete) ?
$_SESSION['var_objet->propriete'] ne fonctione pas !
En surfant sur le net j'ai pu trouver qu'il fallait employer les fonctions
serialize et unserialize.
Est-ce la seule méthode ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
bruno at modulix
oam wrote:
Bonjour,
J'ai un ancien code écrit en PHP 4.2, que je suis en train de modifier pour qu'il fonctionne en PHP 5.1. Il y a malheureusement beaucoup de variables globales à supprimer. Pour cela j'utilise les tableaux superglobaux et les sessions ; la seule méthode que j'ai trouvée... Si il en existe d'autres, je suis preneur !
Ainsi $ma_variable_de_session devient $_SESSION['ma_variable_de_session'] si la variable est simple et pour pour les tableaux $ma_variable_de_session[i] devient $_SESSION['ma_variable_de_session'][i].
Mon problème vient des variables objets. Comment faire passer une variable objet (ex. var_objet->propriete) ?
$var_objet->propriete n'est pas une "variable objet", c'est un attribut (une "donnée membre", en dialecte C++) d'un objet. La "variable objet", ici, c'est $var_objet.
$_SESSION['var_objet->propriete'] ne fonctione pas !
Mais ce n'est effectivement probablement pas ce que tu veux !-)
En surfant sur le net j'ai pu trouver qu'il fallait employer les fonctions serialize et unserialize. Est-ce la seule méthode ?
En php4, le code suivant fonctionne:
# page 1 require_once('toto.php');
$toto =& new Toto(); $toto->answer = 42; $_SESSION['toto'] = $toto;
// ...
# page 2 // penser à ça avant, sinon PHP pas content require_once('toto.php');
//...
$toto = $_SESSION['toto']; echo $toto->answer;
(NB : exemple simplistico-stupide of course, dans la vrai vie on fait plus propre...)
PHP se charge lui-même de sérialiser/désérialiser les objets.
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
oam wrote:
Bonjour,
J'ai un ancien code écrit en PHP 4.2, que je suis en train de modifier pour
qu'il fonctionne en PHP 5.1.
Il y a malheureusement beaucoup de variables globales à supprimer.
Pour cela j'utilise les tableaux superglobaux et les sessions ; la seule
méthode que j'ai trouvée... Si il en existe d'autres, je suis preneur !
Ainsi $ma_variable_de_session devient $_SESSION['ma_variable_de_session'] si
la variable est simple et pour pour les tableaux $ma_variable_de_session[i]
devient $_SESSION['ma_variable_de_session'][i].
Mon problème vient des variables objets. Comment faire passer une variable
objet (ex. var_objet->propriete) ?
$var_objet->propriete n'est pas une "variable objet", c'est un attribut
(une "donnée membre", en dialecte C++) d'un objet. La "variable objet",
ici, c'est $var_objet.
$_SESSION['var_objet->propriete'] ne fonctione pas !
J'ai un ancien code écrit en PHP 4.2, que je suis en train de modifier pour qu'il fonctionne en PHP 5.1. Il y a malheureusement beaucoup de variables globales à supprimer. Pour cela j'utilise les tableaux superglobaux et les sessions ; la seule méthode que j'ai trouvée... Si il en existe d'autres, je suis preneur !
Ainsi $ma_variable_de_session devient $_SESSION['ma_variable_de_session'] si la variable est simple et pour pour les tableaux $ma_variable_de_session[i] devient $_SESSION['ma_variable_de_session'][i].
Mon problème vient des variables objets. Comment faire passer une variable objet (ex. var_objet->propriete) ?
$var_objet->propriete n'est pas une "variable objet", c'est un attribut (une "donnée membre", en dialecte C++) d'un objet. La "variable objet", ici, c'est $var_objet.
$_SESSION['var_objet->propriete'] ne fonctione pas !
Mais ce n'est effectivement probablement pas ce que tu veux !-)
En surfant sur le net j'ai pu trouver qu'il fallait employer les fonctions serialize et unserialize. Est-ce la seule méthode ?
En php4, le code suivant fonctionne:
# page 1 require_once('toto.php');
$toto =& new Toto(); $toto->answer = 42; $_SESSION['toto'] = $toto;
// ...
# page 2 // penser à ça avant, sinon PHP pas content require_once('toto.php');
//...
$toto = $_SESSION['toto']; echo $toto->answer;
(NB : exemple simplistico-stupide of course, dans la vrai vie on fait plus propre...)
PHP se charge lui-même de sérialiser/désérialiser les objets.
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Eric
Mon problème vient des variables objets. Comment faire passer une variable objet (ex. var_objet->propriete) ? $_SESSION['var_objet->propriete'] ne fonctione pas !
Et $_SESSION['var_objet']->propriete ?
Mon problème vient des variables objets. Comment faire passer une variable
objet (ex. var_objet->propriete) ?
$_SESSION['var_objet->propriete'] ne fonctione pas !
Mon problème vient des variables objets. Comment faire passer une variable objet (ex. var_objet->propriete) ? $_SESSION['var_objet->propriete'] ne fonctione pas !
Et $_SESSION['var_objet']->propriete ?
oam
$var_objet->propriete n'est pas une "variable objet", c'est un attribut (une "donnée membre", en dialecte C++) d'un objet. La "variable objet", ici, c'est $var_objet.
Merci pour cette précision de vocabulaire qui est toujours utile.
$_SESSION['var_objet->propriete'] ne fonctione pas !
Non cela ne fonctionne pas si par exemple tu définis dans la déclaration de la class une valeur par défaut pour la propriété. Par contre la (les) solution(s) suivante(s) fonctionne(nt) : <?php session_start();
class voiture { public $marque = 'ferrari'; }
$_SESSION['mavoiture'] = new voiture(); // ou encore : $mavoiture = new voiture();
Mais ce n'est effectivement probablement pas ce que tu veux !-)
En surfant sur le net j'ai pu trouver qu'il fallait employer les fonctions serialize et unserialize. Est-ce la seule méthode ?
En php4, le code suivant fonctionne:
# page 1 require_once('toto.php');
$toto =& new Toto(); $toto->answer = 42; $_SESSION['toto'] = $toto;
// ...
# page 2 // penser à ça avant, sinon PHP pas content require_once('toto.php');
//...
$toto = $_SESSION['toto']; echo $toto->answer;
(NB : exemple simplistico-stupide of course, dans la vrai vie on fait plus propre...)
PHP se charge lui-même de sérialiser/désérialiser les objets.
Je n'ai pas compris ce que tu mettais dans toto.php ! Peux tu être un peu plus explicite ? Par ailleur, $_SESSION['toto'] = $toto; et $toto = $_SESSION['toto']; n'est ce pas la même chose que $_SESSION['toto'] = serialize($toto); et $toto = unserialize($_SESSION['$toto']); mais en une écriture raccoucie, PHP se chargeant de l'interpréter ?
$var_objet->propriete n'est pas une "variable objet", c'est un attribut
(une "donnée membre", en dialecte C++) d'un objet. La "variable objet",
ici, c'est $var_objet.
Merci pour cette précision de vocabulaire qui est toujours utile.
$_SESSION['var_objet->propriete'] ne fonctione pas !
Non cela ne fonctionne pas si par exemple tu définis dans la déclaration de
la class une valeur par défaut pour la propriété. Par contre la (les)
solution(s) suivante(s) fonctionne(nt) :
<?php
session_start();
class voiture {
public $marque = 'ferrari';
}
$_SESSION['mavoiture'] = new voiture();
// ou encore : $mavoiture = new voiture();
Mais ce n'est effectivement probablement pas ce que tu veux !-)
En surfant sur le net j'ai pu trouver qu'il fallait employer les
fonctions
serialize et unserialize.
Est-ce la seule méthode ?
En php4, le code suivant fonctionne:
# page 1
require_once('toto.php');
$toto =& new Toto();
$toto->answer = 42;
$_SESSION['toto'] = $toto;
// ...
# page 2
// penser à ça avant, sinon PHP pas content
require_once('toto.php');
//...
$toto = $_SESSION['toto'];
echo $toto->answer;
(NB : exemple simplistico-stupide of course, dans la vrai vie on fait
plus propre...)
PHP se charge lui-même de sérialiser/désérialiser les objets.
Je n'ai pas compris ce que tu mettais dans toto.php ! Peux tu être un peu
plus explicite ?
Par ailleur, $_SESSION['toto'] = $toto; et $toto = $_SESSION['toto']; n'est
ce pas la même chose que $_SESSION['toto'] = serialize($toto); et $toto =
unserialize($_SESSION['$toto']); mais en une écriture raccoucie, PHP se
chargeant de l'interpréter ?
$var_objet->propriete n'est pas une "variable objet", c'est un attribut (une "donnée membre", en dialecte C++) d'un objet. La "variable objet", ici, c'est $var_objet.
Merci pour cette précision de vocabulaire qui est toujours utile.
$_SESSION['var_objet->propriete'] ne fonctione pas !
Non cela ne fonctionne pas si par exemple tu définis dans la déclaration de la class une valeur par défaut pour la propriété. Par contre la (les) solution(s) suivante(s) fonctionne(nt) : <?php session_start();
class voiture { public $marque = 'ferrari'; }
$_SESSION['mavoiture'] = new voiture(); // ou encore : $mavoiture = new voiture();
Mais ce n'est effectivement probablement pas ce que tu veux !-)
En surfant sur le net j'ai pu trouver qu'il fallait employer les fonctions serialize et unserialize. Est-ce la seule méthode ?
En php4, le code suivant fonctionne:
# page 1 require_once('toto.php');
$toto =& new Toto(); $toto->answer = 42; $_SESSION['toto'] = $toto;
// ...
# page 2 // penser à ça avant, sinon PHP pas content require_once('toto.php');
//...
$toto = $_SESSION['toto']; echo $toto->answer;
(NB : exemple simplistico-stupide of course, dans la vrai vie on fait plus propre...)
PHP se charge lui-même de sérialiser/désérialiser les objets.
Je n'ai pas compris ce que tu mettais dans toto.php ! Peux tu être un peu plus explicite ? Par ailleur, $_SESSION['toto'] = $toto; et $toto = $_SESSION['toto']; n'est ce pas la même chose que $_SESSION['toto'] = serialize($toto); et $toto = unserialize($_SESSION['$toto']); mais en une écriture raccoucie, PHP se chargeant de l'interpréter ?
oam
"Eric" a écrit dans le message de news:
Mon problème vient des variables objets. Comment faire passer une variable objet (ex. var_objet->propriete) ? $_SESSION['var_objet->propriete'] ne fonctione pas !
Et $_SESSION['var_objet']->propriete ?
Exact ca fonctionne impécablement !
<?php session_start();
class voiture { public $marque = 'ferrari'; }
$_SESSION['mavoiture'] = new voiture(); echo('Ma voiture : '.$_SESSION['mavoiture']->marque); ?>
"Eric" <zefifi@gmail.com> a écrit dans le message de news:
1138366510.401027.51660@g14g2000cwa.googlegroups.com...
Mon problème vient des variables objets. Comment faire passer une
variable
objet (ex. var_objet->propriete) ?
$_SESSION['var_objet->propriete'] ne fonctione pas !
Et $_SESSION['var_objet']->propriete ?
Exact ca fonctionne impécablement !
<?php
session_start();
class voiture {
public $marque = 'ferrari';
}
$_SESSION['mavoiture'] = new voiture();
echo('Ma voiture : '.$_SESSION['mavoiture']->marque);
?>
Mon problème vient des variables objets. Comment faire passer une variable objet (ex. var_objet->propriete) ? $_SESSION['var_objet->propriete'] ne fonctione pas !
Et $_SESSION['var_objet']->propriete ?
Exact ca fonctionne impécablement !
<?php session_start();
class voiture { public $marque = 'ferrari'; }
$_SESSION['mavoiture'] = new voiture(); echo('Ma voiture : '.$_SESSION['mavoiture']->marque); ?>
bruno at modulix
oam wrote:
$var_objet->propriete n'est pas une "variable objet", c'est un attribut (une "donnée membre", en dialecte C++) d'un objet. La "variable objet", ici, c'est $var_objet.
Merci pour cette précision de vocabulaire qui est toujours utile.
$_SESSION['var_objet->propriete'] ne fonctione pas !
Si si. Ca fonctionne parfaitement - mais pas *du tout* comme tu l'espères.
La chaine 'var_objet->propriete' est une clée valide pour un tableau. Donc le code ci-dessus crée dans $_SESSION une entrée pour la clé (littéralement) 'var_objet->propriete', et lui affecte la valeur 42. Le fait que cette clé ressemble à du code PHP ne signifie pas qu'elle soit interprétée comme du code PHP !-)
Mais ça n'a bien sûr aucun rapport avec ce que tu voudrais...
(snip)
En php4, le code suivant fonctionne:
# page 1 require_once('toto.php');
$toto =& new Toto(); $toto->answer = 42; $_SESSION['toto'] = $toto;
// ...
# page 2 // penser à ça avant, sinon PHP pas content require_once('toto.php');
//...
$toto = $_SESSION['toto']; echo $toto->answer;
(NB : exemple simplistico-stupide of course, dans la vrai vie on fait plus propre...)
PHP se charge lui-même de sérialiser/désérialiser les objets.
Je n'ai pas compris ce que tu mettais dans toto.php ! Peux tu être un peu plus explicite ?
La définition de la classe Toto. Ca me semblait assez évident, mais j'aurais peut-être dû le préciser en effet?
Par ailleur, $_SESSION['toto'] = $toto; et $toto = $_SESSION['toto']; n'est ce pas la même chose que $_SESSION['toto'] = serialize($toto); et $toto = unserialize($_SESSION['$toto']); mais en une écriture raccoucie, PHP se chargeant de l'interpréter ?
Si j'avais explicitement sérialisé toto, il faudrais que le désérialise explicitement aussi - alors que là, je peux utiliser directement $_SESSION['toto'].
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
oam wrote:
$var_objet->propriete n'est pas une "variable objet", c'est un attribut
(une "donnée membre", en dialecte C++) d'un objet. La "variable objet",
ici, c'est $var_objet.
Merci pour cette précision de vocabulaire qui est toujours utile.
$_SESSION['var_objet->propriete'] ne fonctione pas !
Si si. Ca fonctionne parfaitement - mais pas *du tout* comme tu l'espères.
La chaine 'var_objet->propriete' est une clée valide pour un tableau.
Donc le code ci-dessus crée dans $_SESSION une entrée pour la clé
(littéralement) 'var_objet->propriete', et lui affecte la valeur 42. Le
fait que cette clé ressemble à du code PHP ne signifie pas qu'elle soit
interprétée comme du code PHP !-)
Mais ça n'a bien sûr aucun rapport avec ce que tu voudrais...
(snip)
En php4, le code suivant fonctionne:
# page 1
require_once('toto.php');
$toto =& new Toto();
$toto->answer = 42;
$_SESSION['toto'] = $toto;
// ...
# page 2
// penser à ça avant, sinon PHP pas content
require_once('toto.php');
//...
$toto = $_SESSION['toto'];
echo $toto->answer;
(NB : exemple simplistico-stupide of course, dans la vrai vie on fait
plus propre...)
PHP se charge lui-même de sérialiser/désérialiser les objets.
Je n'ai pas compris ce que tu mettais dans toto.php ! Peux tu être un peu
plus explicite ?
La définition de la classe Toto. Ca me semblait assez évident, mais
j'aurais peut-être dû le préciser en effet?
Par ailleur, $_SESSION['toto'] = $toto; et $toto = $_SESSION['toto']; n'est
ce pas la même chose que $_SESSION['toto'] = serialize($toto); et $toto =
unserialize($_SESSION['$toto']); mais en une écriture raccoucie, PHP se
chargeant de l'interpréter ?
Si j'avais explicitement sérialisé toto, il faudrais que le désérialise
explicitement aussi - alors que là, je peux utiliser directement
$_SESSION['toto'].
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
$var_objet->propriete n'est pas une "variable objet", c'est un attribut (une "donnée membre", en dialecte C++) d'un objet. La "variable objet", ici, c'est $var_objet.
Merci pour cette précision de vocabulaire qui est toujours utile.
$_SESSION['var_objet->propriete'] ne fonctione pas !
Si si. Ca fonctionne parfaitement - mais pas *du tout* comme tu l'espères.
La chaine 'var_objet->propriete' est une clée valide pour un tableau. Donc le code ci-dessus crée dans $_SESSION une entrée pour la clé (littéralement) 'var_objet->propriete', et lui affecte la valeur 42. Le fait que cette clé ressemble à du code PHP ne signifie pas qu'elle soit interprétée comme du code PHP !-)
Mais ça n'a bien sûr aucun rapport avec ce que tu voudrais...
(snip)
En php4, le code suivant fonctionne:
# page 1 require_once('toto.php');
$toto =& new Toto(); $toto->answer = 42; $_SESSION['toto'] = $toto;
// ...
# page 2 // penser à ça avant, sinon PHP pas content require_once('toto.php');
//...
$toto = $_SESSION['toto']; echo $toto->answer;
(NB : exemple simplistico-stupide of course, dans la vrai vie on fait plus propre...)
PHP se charge lui-même de sérialiser/désérialiser les objets.
Je n'ai pas compris ce que tu mettais dans toto.php ! Peux tu être un peu plus explicite ?
La définition de la classe Toto. Ca me semblait assez évident, mais j'aurais peut-être dû le préciser en effet?
Par ailleur, $_SESSION['toto'] = $toto; et $toto = $_SESSION['toto']; n'est ce pas la même chose que $_SESSION['toto'] = serialize($toto); et $toto = unserialize($_SESSION['$toto']); mais en une écriture raccoucie, PHP se chargeant de l'interpréter ?
Si j'avais explicitement sérialisé toto, il faudrais que le désérialise explicitement aussi - alors que là, je peux utiliser directement $_SESSION['toto'].
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"