PHP serialize / unserialize
Résolu
magicfab2008
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
magicfab2008 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
magicfab2008 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je ne comprends pas :
Je voudrais serializer et deserializer des objets mais je n'y arrive pas car à chaque fois j'ai le message suivant qui s'affiche :
Catchable fatal error: Object of class stdClass could not be converted to string in C:\wamp\www\GDT 2.6.2\pages\test_CimentFormulaireBDD\Test_Ciment.php on line 107
c'est a dire a cette instruction la : $toto = unserialize($key);
Je veux faire passer des objets dans une variable $POST
J'arrive a lire l'objet serializer meme une fois poster mais je n'arrive pas à le serialiser...
Pourquoi?
Le but de ce programme est vachement interressant (de mon point de vu bien entendu^^):
J'indique dans mon formulaire a quel champ de ma BDD est lié mon <input type=text ...> par exemple,
est ensuite une fois posté, il va insérer automatiquement dans le bon champ.
Pour cela je fais des requetes qui reconnaisse les tables et les champs de ma base et je crée des classes grace aux méthodes magiques!
En fait si ce bout de code marchait, ca serait très interressant je pense pour beaucoup de gens dans la construction des formulaires!!
Ci-dessous mon code :
<?php
include("../_Package.php");
class Base
{
var $nom;
var $tab_tables = array();
public function Base($nom)
{
$this->nom = $nom;
}
public function __set($key, $val)
{
$this->tab_tables[(string)$key]= $val;
}
public function __get($key)
{
return $this->tab_tables[$key];
}
}
class Table
{
var $nom;
var $tab_champs = array();
public function Table($nom)
{
$this->nom = $nom;
}
public function __set($key, $val)
{
$this->tab_champs[$key]= $val;
}
public function __get($key)
{
return $this->tab_champs[$key];
}
public function get_nom()
{
return $this->nom;
}
}
mysql_connect( "localhost", "root", "");
mysql_select_db("gdt27");
$obj_base = new Base("gdt27");
$requete_show_tables = "SHOW TABLES";
$resultat_show_tables = mysql_query($requete_show_tables)
or die("Erreur SQL : $requete_show_tables<br/>".mysql_error());
while ($tuple_show_tables = mysql_fetch_array($resultat_show_tables))
{
$nom_table = $tuple_show_tables[0];
$obj_table = new Table($nom_table);
$requete_show_columns = "SHOW COLUMNS FROM $nom_table";
$resultat_show_columns = mysql_query($requete_show_columns)
or die("Erreur SQL : $requete_show_columns<br/>".mysql_error());
while ($tuple_show_columns = mysql_fetch_array($resultat_show_columns))
{
$nom_colonne = $tuple_show_columns[0];
$obj_colonne = mysql_fetch_field(mysql_query("SELECT $nom_colonne FROM $nom_table"));
$obj_table->{$obj_colonne->name} = $obj_colonne;
}
$obj_base->{$obj_table->get_nom()} = $obj_table;
echo "<br/>";
}
mysql_close();
$form_creation_demande = new Formulaire();
$form_creation_demande->set_action_post("Test_Ciment.php");
$form_creation_demande->set_titre("TEST");
$form_creation_demande->ajouter_bouton_submit('envoyer');
if(isset($_POST['envoyer/']))
{
foreach($_POST as $key=>$val)
{
$toto = unserialize($key);
echo "\$toto : $toto<br/>";
}
}
$rubrique_creation_demande = $form_creation_demande->get_super_rubrique();
$rubrique_objet = new Rubrique();
$rubrique_objet->set_fieldset_style("Objet Demande");
$var_post = serialize($obj_base->demande->objet_demande);
$txt_objet = new Text($var_post);
$txt_objet->set_etiquette("objet");
$rubrique_objet->ajouter($txt_objet);
$rubrique_creation_demande->ajouter($rubrique_objet);
$form_creation_demande->afficher();
?>
Je voudrais serializer et deserializer des objets mais je n'y arrive pas car à chaque fois j'ai le message suivant qui s'affiche :
Catchable fatal error: Object of class stdClass could not be converted to string in C:\wamp\www\GDT 2.6.2\pages\test_CimentFormulaireBDD\Test_Ciment.php on line 107
c'est a dire a cette instruction la : $toto = unserialize($key);
Je veux faire passer des objets dans une variable $POST
J'arrive a lire l'objet serializer meme une fois poster mais je n'arrive pas à le serialiser...
Pourquoi?
Le but de ce programme est vachement interressant (de mon point de vu bien entendu^^):
J'indique dans mon formulaire a quel champ de ma BDD est lié mon <input type=text ...> par exemple,
est ensuite une fois posté, il va insérer automatiquement dans le bon champ.
Pour cela je fais des requetes qui reconnaisse les tables et les champs de ma base et je crée des classes grace aux méthodes magiques!
En fait si ce bout de code marchait, ca serait très interressant je pense pour beaucoup de gens dans la construction des formulaires!!
Ci-dessous mon code :
<?php
include("../_Package.php");
class Base
{
var $nom;
var $tab_tables = array();
public function Base($nom)
{
$this->nom = $nom;
}
public function __set($key, $val)
{
$this->tab_tables[(string)$key]= $val;
}
public function __get($key)
{
return $this->tab_tables[$key];
}
}
class Table
{
var $nom;
var $tab_champs = array();
public function Table($nom)
{
$this->nom = $nom;
}
public function __set($key, $val)
{
$this->tab_champs[$key]= $val;
}
public function __get($key)
{
return $this->tab_champs[$key];
}
public function get_nom()
{
return $this->nom;
}
}
mysql_connect( "localhost", "root", "");
mysql_select_db("gdt27");
$obj_base = new Base("gdt27");
$requete_show_tables = "SHOW TABLES";
$resultat_show_tables = mysql_query($requete_show_tables)
or die("Erreur SQL : $requete_show_tables<br/>".mysql_error());
while ($tuple_show_tables = mysql_fetch_array($resultat_show_tables))
{
$nom_table = $tuple_show_tables[0];
$obj_table = new Table($nom_table);
$requete_show_columns = "SHOW COLUMNS FROM $nom_table";
$resultat_show_columns = mysql_query($requete_show_columns)
or die("Erreur SQL : $requete_show_columns<br/>".mysql_error());
while ($tuple_show_columns = mysql_fetch_array($resultat_show_columns))
{
$nom_colonne = $tuple_show_columns[0];
$obj_colonne = mysql_fetch_field(mysql_query("SELECT $nom_colonne FROM $nom_table"));
$obj_table->{$obj_colonne->name} = $obj_colonne;
}
$obj_base->{$obj_table->get_nom()} = $obj_table;
echo "<br/>";
}
mysql_close();
$form_creation_demande = new Formulaire();
$form_creation_demande->set_action_post("Test_Ciment.php");
$form_creation_demande->set_titre("TEST");
$form_creation_demande->ajouter_bouton_submit('envoyer');
if(isset($_POST['envoyer/']))
{
foreach($_POST as $key=>$val)
{
$toto = unserialize($key);
echo "\$toto : $toto<br/>";
}
}
$rubrique_creation_demande = $form_creation_demande->get_super_rubrique();
$rubrique_objet = new Rubrique();
$rubrique_objet->set_fieldset_style("Objet Demande");
$var_post = serialize($obj_base->demande->objet_demande);
$txt_objet = new Text($var_post);
$txt_objet->set_etiquette("objet");
$rubrique_objet->ajouter($txt_objet);
$rubrique_creation_demande->ajouter($rubrique_objet);
$form_creation_demande->afficher();
?>
A voir également:
- Php unserialize
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
4 réponses
Salut,
N'inverses tu pas serialize et deserialize ?
----- SERIALIZE ---->
OBJET CHAINE
<--- DESERIALIZE ---
N'inverses tu pas serialize et deserialize ?
----- SERIALIZE ---->
OBJET CHAINE
<--- DESERIALIZE ---
J'utilise serialize pour transformer mon objet en string et pour le faire passer dans la variable $_POST
J'utilise unserialize pour transformer mon string en objet et donc pour récupérer mon objet.
Porquoi ya un blem avec ca?
J'utilise unserialize pour transformer mon string en objet et donc pour récupérer mon objet.
Porquoi ya un blem avec ca?