résoudre : Notice: unserialize() [function.unserialize]: Error at offs

résoudre : Notice: unserialize() [function.unserialize]: Error at offs - PHP - Programmation

Marsh Posté le 17-06-2010 à 07:42:10    

Bonjour à tous ;
 
voilà j'exploite une base Access ; et ce que je souhaiterai de faire c'est après avoir afficher la liste des clients dans cette base selon le contrat ; je souhaiterai qu'il est possible d'exporter les résultats sous format Excel  
mais voilà , hier soir quand j'ai essayé et testé çà marche et là depuis ce matin y a une erreur :cry: en effet c'est la transmission d'un tableau vers une autre page voici l'essentiel du code  
 

Code :
  1. // construire la chaine csv
  2.                $csv  ="Numero;Denomination;Date effet;Type Police;Numero;Compagnie;Etat police\n";
  3. // on concatène le resultat de la requête  
  4.              $csv .=$result['IDCabinet'].';'.$result['Denomination'].';'.$effetdate.';'.$poltype.';'.$result['NumPolice'].';'.$comp.';'.$poletat."\n";
  5. // on tranfert les données  
  6.   echo "<form method=\"post\" action=\" Excel.php\">";
  7.     echo "<input type=\"hidden\" name=\"panier\" value=\"<?php echo urlencode(serialize($csv)); ?>\" />";
  8.     echo "<input type=\"submit\" value=\"Excel\" class=\"bouton\"/>";
  9.        echo " </form>";


 
fichier re reception Excel.php

Code :
  1. $produits = unserialize(urldecode($_POST['panier']));
  2. print_r($produits);
  3. /*
  4. header("Content-type: application/vnd.ms-excel" );
  5. header('Content-disposition: attachment; filename="monsuperfichier.csv"');
  6. print($produits);
  7. */


 
l'erreur  

Code :
  1. Notice: unserialize() [function.unserialize]: Error at offset 0 of 13152 bytes in C:\wamp\www\TestPhp\Excel.php  on line 22


 
et la ligne 22

Code :
  1. $produits = unserialize(urldecode($_POST['panier']));


 
est ce quelqu'un aurait une idée ??:cry:
 
ou une autre méthode ??
en fait j'ai déjà essayé la méthode $_get mais je dépasse les limites à mon avis ; quand aux sessions ; je ne sais pas trop comment faire
 
 
merci d'avance

Message cité 1 fois
Message édité par dovic31 le 17-06-2010 à 08:40:56
Reply

Marsh Posté le 17-06-2010 à 07:42:10   

Reply

Marsh Posté le 17-06-2010 à 08:59:06    

dovic31 a écrit :


l'erreur  

Code :
  1. Notice: unserialize() [function.unserialize]: Error at offset 0 of 13152 bytes in C:\wamp\www\TestPhp\Excel.php  on line 22


et la ligne 22

Code :
  1. $produits = unserialize(urldecode($_POST['panier']));


est ce quelqu'un aurait une idée ??


Bon erreur at offset 0 si je ne m'abuse signifie que le premier caractère de ta chaine est mal foutu et que PHP ne peut pas le décoder
utilise la fonction echo ord(chr(substr(TACHAINE,1))) pour voir de quoi il s'agit (voir la doc php sur substr)


---------------
http://www.ypikay.com
Reply

Marsh Posté le 17-06-2010 à 19:08:06    

Salut ;
d'abord je te remercie  
mais voilà quand je fais avant de le transmettre  
 

Code :
  1. echo ord(chr(substr($csv,1)));


 
çà m'affiche 0  
 
A+

Reply

Marsh Posté le 18-06-2010 à 16:13:49    

ben voila
donc tu dois supprimer ce premier caractère de ta chaine en faisant un
$chaine = substr($chaine,1,-1) (ça te retournera la chaine moins le premier caractère. comme c'est access il est possible que tu aies plusieurs caractères bidon, du genre chr(10), chr(13)
donc vérifie tous tes caractères et renvoie ainsi une chaine "propre"


---------------
http://www.ypikay.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed