IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Unserialize et BDD


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Par défaut Unserialize et BDD
    Bonsoir à tous,

    je me tourne vers vous car je galère depuis 2 heures a réglé mon soucis mais je n'y arrive pas. J'ai demandé a queluq'un qui s'y connais en PHP et n'a pas reussi a debugé.

    Voilà donc j'envoie des infos qui sont récupérés depuis un questionnaires à une base de donnée sous forme de array. Donc j'utilise serialize.

    Ensuite, je veux récupérer le tableau et utilisé les valeurs. Mais seulement elle ne s'affichent pas, une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
        $_GET['id'] = mysql_real_escape_string(htmlspecialchars($_GET['id']));
    	$retour = mysql_query('SELECT * FROM travaux WHERE id=\'' . $_GET['id'] . '\'');
        $donnees = mysql_fetch_array($retour);
     
    	$cdc = stripslashes(unserialize($donnees['cdc']));  
    	$client = stripslashes($donnees['client']);
    ?>
     
    <?php 
    // echo '<pre>';
    // print_r($cdc);
    // echo '</pre>'; 
    ?>
     
    	<p>Essai : <?php echo $client; ?></p>
       <p>Couleur dominante : <?php echo $cdc[0]; ?></p>
       <p>Couleur du texte : <?php echo $cdc[1]; ?></p>
       <p>Texte particulier : <?php echo $cdc[2]; ?></p>
       <p>Theme : <?php echo $cdc[3]; ?></p>
       <p>Lien : <?php echo $cdc[4]; ?></p>
       <p>Effet : <?php echo $cdc[5]; ?></p>
       <p>Info Supp : <?php echo $cdc[6]; ?></p>
    Pour Essai cela fonctionne puisque cette donnée n'est pas dans un tableau mais pour le reste, les données ne s'affichent pas.

    J'ai donc essayé comme pour le voyé de faire un print, mais rien du tout, rien ne s'affiche. Donc j'ai fais un print sans unserialize, et la, voici ce que ca me renvoie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     a:7:{i:0;s:5:"Bleur";i:1;s:5:"Rouge";i:2;s:5:"Texte";i:3;s:3:"COD";i:4;s:4:"Lien";i:5;s:5:"Effet";i:6;s:6:"Aucune";}
    Une idée de quoi cela pourrait venir ?

    Cordialement


    EDIT : En testant en local comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       $_GET['id'] = mysql_real_escape_string(htmlspecialchars($_GET['id']));
    	$retour = mysql_query('SELECT * FROM travaux WHERE id=\'' . $_GET['id'] . '\'');
        $donnees = mysql_fetch_array($retour);
     
    	$cdc = unserialize($donnees['cdc']);  
    ?>
     
     
       <p><?php echo $cdc[0]; ?></p>
    J'obtiens un erreur : Notice: unserialize() [function.unserialize]: Error at offset 0 of 117 bytes in C:\Program Files\EasyPHP 2.0b1\www\Travaux en cours\cdc.php on line 36

    ligne 36 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$cdc = unserialize($donnees['cdc']);

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    La requête MySQL passe ou pas ?
    Autrement il y a bcp trop de stripslashes( ) et htmlspecialchars( ) dans ton script, ce n'est pas normal

  3. #3
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Par défaut
    La requete fonctionne puisque j'arrive a recuprer les info autre que l'array.

    Et j'ai viré les stripslashes

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Et que donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    $donnees = mysql_fetch_array($retour);
    echo $donnees['cdc'] ;
    ??

  5. #5
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Et que donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    $donnees = mysql_fetch_array($retour);
    echo $donnees['cdc'] ;
    ??
    a:7:{i:0;s:5:"bleur";i:1;s:5:"rouge";i:2;s:5:"texte";i:3;s:3:"cod";i:4;s:4:"lien";i:5;s:4:"efet";i:6;s:6:"aucune";}

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Cette chaîne donne bien un tableau avec unserialize( ), test effectué en local.
    D'après le msg d'erreur il y a peut-être un caractère inattendu qui s'est glissé dans ton script et qui n'apparaît pas sur le forum lors du c/c.
    Fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "!$donnees[cdc]!<br>" ;
    echo '1er caractère : ', ord($donnees['cdc']{0}) ;
    As-tu un espace ou autre entre le 1er "!" et le "a", quelle est la valeur du 1er caractère ?

  7. #7
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Cette chaîne donne bien un tableau avec unserialize( ), test effectué en local.
    D'après le msg d'erreur il y a peut-être un caractère inattendu qui s'est glissé dans ton script et qui n'apparaît pas sur le forum lors du c/c.
    Fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "!$donnees[cdc]!<br>" ;
    echo '1er caractère : ', ord($donnees['cdc']{0}) ;
    As-tu un espace ou autre entre le 1er "!" et le "a", quelle est la valeur du 1er caractère ?
    Voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ! a:7:{i:0;s:5:"bleur";i:1;s:5:"rouge";i:2;s:5:"texte";i:3;s:3:"cod";i:4;s:4:"lien";i:5;s:5:"effet";i:6;s:6:"aucune";}!
    1er caractère : 32

  8. #8
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Il y a un espace en début de chaîne ! C'est lui qui provoque l'erreur de unserialize( ).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quick Report et impression de données hors BDD
    Par gRRosminet dans le forum C++Builder
    Réponses: 8
    Dernier message: 19/08/2002, 09h47
  2. portabilité et BDD
    Par delire8 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 10h59
  3. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18
  4. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26
  5. Probleme de filtre dans bdd
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/06/2002, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo