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 :

Paramètres GET serialisés : marchent sous WAMP et pas online ?


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut Paramètres GET serialisés : marchent sous WAMP et pas online ?
    Bonjour,

    Le titre du topic est ce que je pense être l'erreur, mais à vrai dire je n'en ai aucune idée : il se trouve que le comportement de mon programme est entièrement défini par les paramètres GET passés (il s'agit d'onglets avec des données communes, donc qui doivent être passées de la même manière), et en le testant sous WAMP, tout va bien, alors qu'une fois en ligne j'ai une erreur à un foreach pour je ne sais quelle raison.

    Au cas où ce ne soit pas un problème connu, voici le code.
    Paramètres :
    • added : UV (onglet) qui a été ajoutée
    • UVs : liste des UVs (tableau serialisé)
    • page : page actuelle (onglet en visualisation)

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <body>
    <div class="view">
    <ul id="tabs">
       <?php 
          if(isset($_GET['UVs']) && !empty($_GET['UVs'])) $UVs = $_GET['UVs']; else $UVs = '';
          if(!isset($_GET['page'])) $page = 'add'; else $page = $_GET['page']; 
     
          //Ajout d'une UV
          if(isset($_GET['added'])) {
             if(!empty($UVs)) $UVs = unserialize($UVs);
             else $UVs = array();
             array_push($UVs, $_GET['added']);
             $UVs = serialize($UVs);
          }
       ?>
       <!-- page d accueil : pour ajouter un onglet (une UV) -->
       <li <?php if($page == 'add') echo 'class="active"'; ?>><a href=<?php echo "schedules.php?page=add&UVs=$UVs"; ?>>Ajout</a></li>
       <!-- un onglet (une UV) -->
       <?php 
          if(!empty($UVs)) {
             $UVs = unserialize($UVs);
             foreach($UVs as $uv) { // <- Ici l erreur 
                echo '<li';
                if($page == $uv) echo ' class="active"';
                echo '><a href=schedules.php?page='.$uv.'&UVs='.serialize($UVs).'>'.$uv.'</a> ';
     
                //Bouton pour la suppression de l'UV
                $UVs_trunc = $UVs;
                unset($UVs_trunc[array_search($uv, $UVs_trunc)]);
                echo '<a class="remove" href=schedules.php?page=add&UVs='.serialize($UVs_trunc).'>(x)</a></li>';
             }
          }
       ?>
    </ul>
    <?php
       //Page d accueil : formulaire
       if($page == 'add') {
    ?>
       UV dont vous aimeriez connaître l emploi du temps :
       <form method="get" action="schedules.php">
          <input type="text" name="added">
          <input type="submit" value="Ajouter">
          <?php if(!empty($UVs)) { ?>
          <input type="hidden" name="UVs" value=<?php echo serialize($UVs); ?>>
          <?php } ?>
       </form>
       Cliquez sur l UV d un des onglets ajoutés pour voir son emploi du temps.<br/>
       Cliquez sur la croix jouxtant celle-ci pour la supprimer des onglets.
    <?php
       }
       //Traitement d'un onglet (d'une UV)
       else {
          //...
       }
    ?>
    </body>
    Aidez-moi svp... Merci d'avance.

    Kidpaddle2

  2. #2
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Après de longues (longues...) recherches et tests en tous genres, je me suis finalement rendu compte qu'il s'agissait d'un problème d'échappement de string (ahah.) : php.ini différait entre les deux serveurs, au niveau de magic_quotes_gpc. Mais visiblement avec ma version de PHP < 4.3, un ini_set() ne suffit pas, donc j'ai dû avoir recours à chaque fois à stripslashes(). Mais ça marche.

    Pour savoir si c'est ça, un <?php phpinfo(); ?> suffira.

    Comme j'ai horreur de voir des sujets du type "j'ai trouvé, merci [point final]", j'ai cru bon de partager ^^ Enjoy.

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

Discussions similaires

  1. header() fonctionne sous WAMP mais pas sur un site web
    Par skyzomik dans le forum Langage
    Réponses: 29
    Dernier message: 27/04/2012, 08h53
  2. [Wamp] la fonction odbc_connect() ne fonctionne pas sous Wamp !
    Par belaggoun2000 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 10/06/2011, 18h08
  3. Images ne s'affichent que sous wamp et pas sur internet !
    Par nozentra dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/09/2010, 14h26
  4. Récupérer les paramètres "GET" sous forme de String
    Par vanitom dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2007, 15h00
  5. Réponses: 2
    Dernier message: 04/06/2004, 11h11

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