htmlspecialchars_decode

Eléphant du PHP | 424 Messages

15 août 2008, 13:34

Bonjour,

Je dois mettre sur mon site des plans que je récupere sur googlemap.
J'insere donc dans ma base sql le plan comme ceci :

Code : Tout sélectionner

$plan1 = htmlspecialchars("$plan", ENT_QUOTES);
J'affiche mon plan de la façon suivante :

Code : Tout sélectionner

echo htmlspecialchars_decode($str, ENT_NOQUOTES);
Mon probléme est que la Fonction htmlspecialchars_decode ne semble pas reconnu...
voici le message d'erreur :

Call to undefined function: htmlspecialchars_decode()

Pourriez vous m'aider à résoudre le probléme afin que mon plan s'affiche ?
Merci d'avance
Youpi Youpi Yo !

ViPHP
ViPHP | 4674 Messages

15 août 2008, 19:34

Hey :),

Tu es sûr d'avoir ce message d'erreur là ? Car cette fonction existe.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 424 Messages

15 août 2008, 19:45

Oui oui j'ai cette erreur ! de plus en local avec easyphp ca fonctionne...
Personne n'a eu ce probleme ?

Arf
Youpi Youpi Yo !

ViPHP
ViPHP | 4674 Messages

15 août 2008, 19:46

Est-ce qu'on peut voir le code (avec les lignes précédentes et suivantes, pas seulement la ligne concernée) ? Parce que là, j'ai un doute …
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 424 Messages

15 août 2008, 19:52

et voici :
   <?php 
			
	if (isset($cp) == "")
		$cp = '06800';
			
	if (isset($id) == '')
		$salle = '';
	else
		$salle = ' and id = '.$id;
	
	$sqldip = 'select * from tb_salles where cp = '.$cp.$salle.' order by nom';
   // $nbsql += 1;
	if ($resselectdip = mysql_query($sqldip)) {
         while ($selectdip = mysql_fetch_array($resselectdip))
         {	
		 $plan = $selectdip["plan"];
		 $plan1 = htmlspecialchars_decode("$plan", ENT_NOQUOTES);

		 
            echo '<hr><p align="left"><span class="textes">'.$selectdip["nom"].'</span><br>';
			echo '<span class="parag">'.$selectdip["adresse"].'</span><br>';  
           echo '<span class="parag">'.$selectdip["cp"].' '.$selectdip["ville"].'</span><br><br>';

			if ($selectdip["responsable"] != "") echo '<span class="parag">'.$selectdip["responsable"].'<br>';
			if ($selectdip["tel"] != "") echo '<span class="parag">Tel: '.$selectdip["tel"].'</span><br><br>';  
			if ($selectdip["plan"] != "")  echo $plan1.'<br>';  
			if ($selectdip["infos"] != "") echo '<br><span class="parag">'.$selectdip["infos"].'</span><br>';  
			echo '<br><br></p>';
	}
}
?>
Merci pour ton aide ...
Youpi Youpi Yo !

ViPHP
ViPHP | 4674 Messages

15 août 2008, 19:59

Que te donne le code :
var_dump(function_exists('htmlspecialchars_decode'));
(à placer n'importe où).

Au passage, tu peux écrire $plan et pas "$plan", ce sera pareil, mais en plus rapide ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 424 Messages

15 août 2008, 20:23

Ceci me donne le message suivant :

Code : Tout sélectionner

bool(false) Fatal error: Call to undefined function: htmlspecialchars_decode() in /home/uscagnes/public_html/salles.php on line 271
????
Youpi Youpi Yo !

ViPHP
ViPHP | 4674 Messages

15 août 2008, 23:34

Bien, si tu as la valeur de retour false, cela signifie que la fonction n'existe pas. La première solution (la plus simple) c'est que tu travailles sur une version de PHP qui est inférieure à la version 5.1.0. Pour le vérifier :
var_dump(phpversion());
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 424 Messages

15 août 2008, 23:41

Ce qui me donne :

string(5) "4.4.8"


Ce qui veut surement dire que la version est 4.4.8 ?

Comment faire pour faire fonctionner l'affichage de mon plan ???

Merci !
Youpi Youpi Yo !

ViPHP
ViPHP | 4674 Messages

15 août 2008, 23:50

Bah tu peux te faire ta propre fonction. Elle est pas très compliquée celle-là.

Si tu regardes la documentation de la fonction htmlspecialchars(), il est dit :
Les remplacements effectués sont :

"&" (et commercial) devient "&"
""" (guillemets doubles) devient """ lorsque ENT_NOQUOTES n'est pas utilisée.
"'" (guillemet simple) devient "'" uniquement lorsque ENT_QUOTES est utilisée.
"<" (inférieur à) devient "<"
">" (supérieur à) devient ">"
Je pense que faire l'inverse doit être réalisable ;-).

Édition : tu remarqueras que je t'ai juste fait écrire 2 lignes de code. La première servant à vérifier que la fonction existe (pas une autre erreur de syntaxe ou de truc bizarre). On a vu que non, alors on regarde dans le manuel, et on voit que la fonction n'est présente que depuis PHP 5.1.0, donc on regarde la version de PHP et on est fixé :).
Ça doit être un réflexe ce genre de test.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
AB
ViPHP | 5818 Messages

16 août 2008, 07:40

Une alternative avec le même principe serait d'utiliser htmlentities() puis html_entity_decode() en lieu et place de htmlspecialchars() et htmlspecialchars_decode() car html_entity_decode() est supportée à partir de PHP 4 >= 4.3.0

Sinon bon faudrait penser à passer à php5 un jour ou l'autre :wink:

Eléphant du PHP | 424 Messages

16 août 2008, 11:10

Effectivement en utilisant htmlentities() puis html_entity_decode() ca fonctionne ....

merci pour votre aide.... affaire classée..... :D
Youpi Youpi Yo !