Bonjour,

Je voudrais transmettre d'une page php à une autre (disons de page1.php à page2.php) une variable de type chaîne de caractère, commençant par un caractère dièse #
Le problème c'est que ce caractère ne passe pas tel quel.
J'utilise donc les fonctions serialize et unserialize. Mais dans ce cas ma variable est vide.
Voici mes codes:
Page1.php:
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
...
$form_couleur1="<input type=\"text\" name=\"couleur1\" size=12 maxlength=12 value=\"\">&nbsp;<input type=\"button\" value=\"choisir une couleur\" onClick=\"choisirCouleur(this.form, 'couleur1')\"><br>";
 
$form_couleur2="<input type=\"text\" name=\"couleur2\" size=12 maxlength=12 value=\"\">&nbsp;<input type=\"button\" value=\"choisir une couleur\" onClick=\"choisirCouleur(this.form, 'couleur2')\"><br>";
 
$form_couleur3="<input type=\"text\" name=\"couleur3\" size=12 maxlength=12 value=\"\">&nbsp;<input type=\"button\" value=\"choisir une couleur\" onClick=\"choisirCouleur(this.form, 'couleur3')\"><br>";
 
$form_couleur4="<input type=\"text\" name=\"couleur4\" size=12 maxlength=12 value=\"\">&nbsp;<input type=\"button\" value=\"choisir une couleur\" onClick=\"choisirCouleur(this.form, 'couleur4')\"><br>";
...
<form id="form1" name="form1" method="post" action="<?=$PHP_SELF ?>">
 
<table width="300" border="1" align="center">
      <tr>
        <th colspan="2" scope="col"><label>Couleurs</label></th>
      </tr>
      <tr>
        <th width="191" scope="col">Fond</th>
        <th width="93" scope="col"><?=$form_couleur1?></th>
      </tr>
      <tr>
        <th scope="col">Texte</th>
        <th scope="col"><?=$form_couleur2?></th>
      </tr>
      <tr>
        <th scope="col">Fond survol&eacute; </th>
        <th scope="col"><?=$form_couleur3?></th>
      </tr>
      <tr>
        <th scope="col">Texte s&eacute;lectionn&eacute; </th>
        <th scope="col"><?=$form_couleur4?></th>
      </tr>
      <tr>
        <th scope="col">&nbsp;</th>
        <th scope="col">&nbsp;</th>
      </tr>
</table>
</form>
...
$couleur1 = serialize($_POST['couleur1']);
$couleur2 = serialize($_POST['couleur2']);
$couleur3 = serialize($_POST['couleur3']);
$couleur4 = serialize($_POST['couleur4']);
header("Location: page2.php?couleur1=".$couleur1."&couleur2=".$couleur2."&couleur3=".$couleur3."&couleur4=".$couleur4);
 
...
Page2.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
...	
$couleur1 = unserialize($_GET['couleur1']);
$couleur2 = unserialize($_GET['couleur2']);
$couleur3 = unserialize($_GET['couleur3']);
$couleur4 = unserialize($_GET['couleur4']);
echo"couleur1 = $couleur1\n";
...
Si je ne mets pas de fonction serialize et unserialize et que j'utilise des chaine de caractère sans # cela fonctionne bien et page2.php m'affiche bien la valeur de la variable couleur1.
Si j'utilise serialize sans unserialize j'obtiens des caractères incompréhensible (exemple: #4949FF saisie dans page1.php est affiché dans page2.php sous la forme: s:7:\"

Bref, quelqu'un a-t-il une idée pour pouvoir transmettre cette chaine d'une page à l'autre par un get ou un post de manière à ce que le caractère # ne soit pas interprété par php (enfin je suppose que c'est son interprétation qui générent ces problèmes).

Merci.