Passage de données sous forme de tableau.

Fermé
Pavot - 12 sept. 2005 à 15:12
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 - 12 sept. 2005 à 16:21
Bonjour,

J'ai utilisé de façon intensive, le transfert de tableaux de données d'un script.php en bouclant sur 2 scripts pour une pagination.
Au début, j'ai rencontré des problèmes. En utilisant serialize, unserialize et str_replace, tout fonctionnait bien.
J'ai traité 26 types de données en passant les tableaux, sans problèmes.

Aujourd'hui, je rencontre un problème sur mon dernier type de données, alors que j'utilise la même procédure. Le tableau est vide après le 1er affichage.

Les données ne sont pratiquement que des données numériques.

Voici les données du tableau traité qui fonctionne:
tab70Ligneserial passage 01 avant str_replace et après serialize = a:1:{i:0;a:23:{i:0;s:8:"72041353";i:1;s:1:"C";i:2;s:2:"24";i:3;s:2:"08";i:4;s:4:"2005";i:5;s:1:"F";i:6;s:3:"873";i:7;s:0:"";i:8;s:0:"";
i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";i:16;s:6:"000252";i:17;s:2:"28";i:18;s:0:"";
i:19;s:2:"31";i:20;s:2:"08";i:21;s:4:"2005";i:22;N;}}

Voici les données du tableau traité et qui ne fonctionne pas:

tab72Ligneserial passage 01 avant str_replace et après serialize = a:1:{i:0;a:31:{i:0;s:8:"72041353";i:1;s:1:"C";i:2;s:2:"01";i:3;s:2:"09";i:4;s:4:"2005";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";
i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";i:16;s:0:"";i:17;s:0:"";i:18;s:0:"";i:19;s:0:"";i:20;s:3:"001";
i:21;s:2:"00";i:22;s:0:"";i:23;s:0:"";i:24;s:0:"";i:25;s:0:"";i:26;s:0:"";i:27;s:0:"";i:28;s:0:"";i:29;s:0:"";i:30;N;}}


A part les caractères spéciaux : ; " {} je ne vois pas de caractères qui pourraient poser problème.

Voici quelques lignes du script visu72.php qui gère le passage du tableau.
Au 1er passage, le tableau est rempli
if($passage72=="1"){
$tab72Ligneserial = serialize($tab72Ligne);
print_r(" tab72Ligneserial passage 01 avant str_replace = ".$tab72Ligneserial);
$tab72Ligneserial = str_replace ('"', "& q u o t ;", $tab72Ligneserial);
$tab72Ligneserial = str_replace ("'", "& a p o s ;", $tab72Ligneserial);
}

aux passages suivant sle tableau est vide
if($passage72=="2"){
$tab72Ligneserial = str_replace ("& q u o t ;", '"', $tab72Ligneserial);
$tab72Ligneserial = str_replace ("& a p o s ;","'", $tab72Ligneserial);
$tab72Ligne = unserialize($tab72Ligneserial);
$tab72Ligneserial = str_replace ('"', "& q u o t ;", $tab72Ligneserial);
$tab72Ligneserial = str_replace ("'", "& a p o s ;", $tab72Ligneserial);
}

et ce qui permet de transferer le tableau à l'autre script visu72.suite.php par post
<form name="form1" method="post" action="../Visualisation/visu72.suite.php" onSubmit="return valider(testBouton)">

<input name="tser72" id="tser72" type="text" value="<? echo "$tab72Ligneserial"; ?>">


Dans l'autre script: visu72.suite.php
$tab72Ligneserial=$_POST["tser72"];
if($retour=="visu72")
include "../Visualisation/visu72.php";


Lorsque j'ai eu ce problème au début, c'était dû aux car. spéciaux non transformés.

Si quelqu'un a une petite idée.

je vous remercie.

1 réponse

StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
12 sept. 2005 à 16:21
Si c'est dû aux caractères spéciaux, je te conseille d'utiliser la fonction urlencode() et urldecode de PHP (qui, ceci dit, existe en javascript : URIencode() je crois).
0