Page 1 sur 1

Concatenation

Posté : 07 févr. 2015, 19:33
par Cybak
Bonjour !
J'ai un problème : je veut donc mettre du texte dans une page que je met ensuite en include ... c'est pas très claire pour vous je suppose ... voici mon code :

<?php
if(isset($_POST['ok'])){
$titre = $_POST['titre'];
$contenu = $_POST['contenu'];

$message_html_03 = include("haut.php");
$message_html_03 .= $titre;
$message_html_03 .= include("milieu.php");
$message_html_03 .= $contenu;
$message_html_03 .= include("bas.php");
echo $message_html_03;

}
?>

Mais ça ne marche pas ... je suppose que l'include n'est pas le même que celui de php
Comment faire ? peut on concaténer des commande php ?
Aidez moi svp

Re: Concatenation

Posté : 07 févr. 2015, 19:45
par tof73
tu remplaces tes include par un appel d'une fonction qui retourne une chaine de caractères (getHaut() dans mon exemple).
un fichier include.php
function getHaut(){
return "texte";
}
function printHaut(){
echo getHaut();
}

Re: Concatenation

Posté : 10 févr. 2015, 12:10
par ynx
Salut,

Une autre solution possible : si tes fichiers à inclure (haut.php, milieu.php et bas.php) ne contiennent pas de code php à interpréter, autrement dit s'ils ne contiennent que du texte/html, tu peux remplacer tes appels de la fonction include() par la fonction file_get_contents(). http://php.net/manual/fr/function.file-get-contents.php

Bonne journée

Re: Concatenation

Posté : 10 févr. 2015, 13:42
par xTG
Pour que ceci fonctionne :
$message_html_03 = include("haut.php");
Il faut que haut.php soit de ce genre :
$contenu = "....";
//.....
$contenu .= "....";

return $contenu; // c'est cette ligne qui va faire le lien

Re: Concatenation

Posté : 13 févr. 2015, 15:54
par Ryle
La fonction include fait appel au code contenu par le fichier appelé comme s'il était physiquement présent à l'endroit où se fait l'inclusion. Il n'a pas pour objectif de retourner une valeur (c'est le rôle des méthodes et fonctions) mais d'insérer une portion de code.

La solution la plus simple serait alors simplement d'inclure tes script et d'afficher directement tes valeurs plutôt que de les stocker dans une variable :
<?php
include("haut.php");
echo $titre;
include("milieu.php");
echo $contenu;
include("bas.php");
?>
Attention à contrôler les données transmises par l'utilisateur avant de les afficher pour se protéger des injections javascript (XSS) :)

Re: Concatenation

Posté : 16 févr. 2015, 10:00
par sirakawa
Ou alors définir des consantes dans l'include.
ou un truc comme ça:
$
messages = array
	(
			"J" => "",
				
			"T" => "Vous avez écrit ###. L'auteur de la dictée avait écrit ##. On aurait pu admettre #.",
		"JT" => "Vous avez écrit ### comme l'auteur de la dictée. On aurait pu admettre ##.",
		"U" => "Vous avez écrit ###. L'auteur de la dictée avait écrit ##. On admet # plus proche de la prononciation.",
		"TT" => "Vous avez écrit ###. L'auteur de la dictée avait écrit ## qui remplace # qu'on peut toujours employer.",
		"UU" => "Vous avez écrit ###. L'auteur de la dictée avait écrit ## qui remplace # qu'on peut toujours employer.",
				
	);