Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1123 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  impossible de deserialiser avec online.net, E_NOTICE comment l'utilisé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

impossible de deserialiser avec online.net, E_NOTICE comment l'utilisé

n°1208526
weed
Posté le 27-09-2005 à 13:57:01  profilanswer
 

je renvoie les valeurs via POST, j'ai donc sérialisé puis apres pour récuperer je désérialise. Tout fonctionne tres bien en local mais des que je fais fonctionner mon script sur mon hebergeur online.net, $data est vide, n'a aucune valeur.
 

Code :
  1. $data=unserialize($_POST['import']);


 
Je comprends pas trop pourtant, la fonction unserialize est supporté par online.net, j'ai verifié avec SDprod PHPinfo v2.0.
 
 
J'ai regardé sur php.net et j'ai vu que unserialize renvoyait false en cas d'erreur et malheuresement c'est le cas.
 

Code :
  1. if (unserialize($_POST['import']) == FALSE)
  2. echo "unserialize renvoie faulse";
  3. else
  4. echo "unserialize renvoie true";


 
 
De plus dans php.net, il est dit que l'on peux analyser l'erreur avec E_NOTICE

Citation :


sur FALSE est retourné dans les cas ou il y a une erreur et dans la délinéarisation de la valeur linéarisée FALSE. Le cas spécial peut être analysé en comparant str avec serialize(false) ou en attrapant l'erreur E_NOTICE émise
http://www.php.net/manual/fr/function.unserialize.php


 
Comment fait on pour utiliser E_NOTICE ?  
 car je n'ai aucun message d'erreur, je pense que cela pourra m'etre utile.

mood
Publicité
Posté le 27-09-2005 à 13:57:01  profilanswer
 

n°1208531
soju
One shot !
Posté le 27-09-2005 à 14:03:56  profilanswer
 

essaye de mettre au début de ton script :

Code :
  1. error_reporting(E_ALL);

n°1208546
weed
Posté le 27-09-2005 à 14:18:31  profilanswer
 

magnifique soju
 
j'obtiens maintenant  

Code :
  1. Notice: unserialize(): Error at offset 16 of 12814 bytes in importxmlbd.php on line 23


 
cela doit etre un caractère invalide que j'essaie de désérialisé. Je vais utilisé urlencode.

n°1208902
weed
Posté le 27-09-2005 à 16:42:55  profilanswer
 

arf, non j'arrive toujours pas deserialiser meme avec urlencode
 
 
j'envoie ce tableau par post

Code :
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [client] => jmk
  6.             [terrasse] => 0
  7.         )
  8.     [nbr] => 1
  9. )


 
ce qui qu'en le sérialisant, cela donne ceci :
 

Code :
  1. Array
  2. (
  3.     [import] => a:2:{i:0;a:2:{s:6:\"client\";s:3:\"jmk\";s:8:\"terrasse\";s:1:\"0\";}s:3:\"nbr\";i:1;}
  4. )


 
mais voila, j'ai toujours ce message d'erreur :
 

Code :
  1. Notice: unserialize(): Error at offset 14 of 86 bytes in importxmlbd.php on line 27


 
Je ne vois pas du tout pourquoi cela bloque. J'ai utilisé urlencode et urldecode, mais la on peux voire qu'il n'y a pas de % + un code car il n'y a pas de retour charriot, pas de ', et meme pas d'espace .....
 
Que cela signifie t-il ?
 
Je ne comprends pas car comme je l'ai dit, SDprod PHPinfo v2.0 m'indique que la fonction est activée.

n°1209007
weed
Posté le 27-09-2005 à 17:51:48  profilanswer
 

comme vous pouvez le voire, j'ai bien la fonction activé :


Message édité par weed le 05-10-2005 à 12:09:14
n°1209034
shakpana
des fois, j'me demande ...
Posté le 27-09-2005 à 18:07:51  profilanswer
 

weed a écrit :


Code :
  1. Array
  2. (
  3.     [import] => a:2:{i:0;a:2:{s:6:\\"client\\";s:3:\\"jmk\\";s:8:\\"terrasse\\";s:1:\\"0\\";}s:3:\\"nbr\\";i:1;}
  4. )




cela signifie que tu as magic_quote_gpc désactivé, et que tu ne fais pas de stripslashes() sur les données postées ..
prenons ce morceau du tableau sérializé
s:6:\"client\";
il indique que ci suit ( après s:6: ) une string d'une longueur de 6 caractères,
or combien en comptes-tu ?
et quels sont les intrus ?
 
donc rtfm pour plus d'info :)
php.net/get_magic_quotes_gpc
php.net/stripslashes


Message édité par shakpana le 27-09-2005 à 18:09:42
n°1209064
weed
Posté le 27-09-2005 à 18:35:25  profilanswer
 

super merci, je ne voyais pas du tout à quoi correspondait les chiffres, merci de m'avoir expliquer.  
 
moi lol, si j'aurais trouvé, j'aurais fais un stripslashe direct mais en effet c'est bien plus propre comme solution.
 
 
merci encore

n°1209076
shakpana
des fois, j'me demande ...
Posté le 27-09-2005 à 18:48:01  profilanswer
 

weed a écrit :

arf, non j'arrive toujours pas deserialiser meme avec urlencode


j'ajouterais un ptit truc : urlencode, c'est pour encoder quelque chose qui va servir d'url ou qui sera mit dans une url, donc ça ne s'appliquait pas à ton problème, le contenu d'un formulaire est encodé par l'agent utilisateur, en genre x-www-form-encoded, à partir du moment ou tu lui balances des données correctement HTMLisées :)

n°1209077
weed
Posté le 27-09-2005 à 18:48:13  profilanswer
 

je viens de voire que magic_quotes_gpc est justement activé :
http://www.online.net/support/fr/doc/php4/phpinfo.html
 
en fin de compte avant envoi :

Code :
  1. serialiser :a:2:{i:0;a:2:{s:6:"client";s:3:"jmk";s:8:"terrasse";s:1:"0";}s:3:"nbr";i:1;}


 
et à la reception

Code :
  1. Array
  2. (
  3.     [import] => a:2:{i:0;a:2:{s:6:\"client\";s:3:\"jmk\";s:8:\"terrasse\";s:1:\"0\";}s:3:\"nbr\";i:1;}
  4. )


 
cela quote automatiquement, si le magic quote n'etait pas activé, je n'aurais pas eu ce genre de souci ...
 

Code :
  1. if (!get_magic_quotes_gpc())
  2. {
  3.      $data=stripslashes($_POST['import']);
  4. }

Message cité 1 fois
Message édité par weed le 27-09-2005 à 18:49:14
n°1209085
shakpana
des fois, j'me demande ...
Posté le 27-09-2005 à 18:54:39  profilanswer
 

weed a écrit :

cela quote automatiquement, si le magic quote n'etait pas activé, je n'aurais pas eu ce genre de souci ...
 

Code :
  1. if (!get_magic_quotes_gpc())
  2. {
  3.      $data=stripslashes($_POST['import']);
  4. }



presque pas ... ton bout de code veut dire :
-> si magic_quote désactivé, enlever les quote
i.e. qd magic_quote esr activé, les slashes sont automatiquement enlevés.
ce qui est correct


Message édité par shakpana le 27-09-2005 à 18:55:43
mood
Publicité
Posté le 27-09-2005 à 18:54:39  profilanswer
 

n°1209153
weed
Posté le 27-09-2005 à 20:33:50  profilanswer
 

yep, je m'en suis rendu compte, c'est l'inverse qu'il faut ecrire  :ange:  
 

Code :
  1. if (get_magic_quotes_gpc()) 
  2. {
  3.      $data=stripslashes($_POST['import']);
  4. }

n°1209162
shakpana
des fois, j'me demande ...
Posté le 27-09-2005 à 20:42:32  profilanswer
 

Code :
  1. if (get_magic_quotes_gpc()) 
  2. {
  3.      $data=stripslashes($_POST['import']);
  4. }


nan, tu avais la bonne syntaxe ... c'est moi qui t'ai embrouillé avec mon explication à 0,2e  :jap:  
 
get_magic_quotes_gpc() retourne
- VRAI si magic_quotes_gpc est activé
- FAUX si magic_quotes_gpc n'est pas activé
 
donc on veux enlever les slashes _si_ get_magic_quote_gpc ne retourne pas VRAI
d'ou le if (!get_magic_quotes_gpc())
 
plus clair ?


Message édité par shakpana le 27-09-2005 à 20:43:52

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  impossible de deserialiser avec online.net, E_NOTICE comment l'utilisé

 

Sujets relatifs
Notice: unserialize(): Error at offset => ' et retour chariotImpossible de modifier les tailles avec dreamweaver
Est ce que Online.net à la fonction zip activé - phpinfo insideBase access impossible à ouvrir "MSysDb" non trouvé...access 2003
[Access] impossible d'utiliser access après son installation!Quel est le hostname chez online ?
impossible de réouvrir ma base de donnée a cause d'un .ldbUpload via HTTP => impossible d'acceder aux fichiers
problème impossible d'écrire dans un fichier!!![Oracle] Urgent !!Erreur ORA-01653: impossible d'étendre la table...
Plus de sujets relatifs à : impossible de deserialiser avec online.net, E_NOTICE comment l'utilisé


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR