Mise en forme du texte non executée après création de la pag

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mise en forme du texte non executée après création de la pag

par Shrell » 18 juil. 2006, 12:43

preg_replace() attend au moins trois paramètres, donc le message d'erreur te dit explicitement qu'il n'y a pas le bon nombre de paramètres :wink:

par TheTimeSplitters » 18 juil. 2006, 12:25

Maintenant j'ai un autre pb.
J'ai ajouté la ligne
  $texte = preg_replace($texte);
et lorsque je crée un fichier, l'erreur suivante s'affiche :
Warning: Wrong parameter count for preg_replace()

Merci de me dire ce que ça signifie :)

par TheTimeSplitters » 17 juil. 2006, 23:55

Voilà npage.php qui est le formulaire :
<?php
if($_GET["action"]=="crea") // Si l'on choisit de créer une nouvelle page, on affiche le formulaire

 {echo '<div class="gros-gras">Création d\'une page</div><br />
 <div class="centre">
  <form method="post" action="npage.php" name="npage">
  <p>/!\ Toujours s\'assurer que le fichier que l\'on crée n\'existe pas ! /!\</p>
  <p>Pour plus de facilité, les fichiers devront être només comme ceci ( par exemple pour les missions de TSFP ) : "missionFP-1.html"</p>
<label>Répertoire de la page : 
	<select name="repertoire">
		<optgroup label="TSFP">
			<option value="missionsFP">missionsFP</option>
			<option value="liguesFP">liguesFP</option>
			<option value="defisFP">defisFP</option>
		</optgroup>
	</select> 
</label>
	Nom de la page : <input type="text" name="nom" maxlength="30" />
<br /><br />
<input type="button" value="+" id="boutton_plus_texte" style="width:17px;" onclick="balise_masque(\'balise_plus_texte\', this.id);" /> 
<input type="button" value="G" class="gras" onclick="balise(\'texte\', \'<style:gras>\', \'</style>\');" /> 
<input type="button" value="I" class="italique" onclick="balise(\'texte\', \'<style:italique>\', \'</style>\');" /> 
<input type="button" value="S" class="souligne" onclick="balise(\'texte\', \'<style:souligne>\', \'</style>\');" /> 
<input type="button" value="B" class="barre" onclick="balise(\'texte\', \'<style:barre>\', \'</style>\');" /> 
<input type="button" value="Citation" onclick="citation(\'texte\');" /> 
<input type="button" value="Liste" onclick="liste(\'texte\');" /> 
<input type="button" value="Lien" onclick="lien(\'texte\');" /> 
<input type="button" value="Email" onclick="email(\'texte\');" /> 
<input type="button" value="Image" onclick="image(\'texte\');" />
<br />
<span id="balise_plus_texte" style="display:none;">
<input type="button" value="Separation" onclick="balise(\'texte\', \'<separation>\', \'\');" /> 
<input type="button" value="Suligné" onclick="balise(\'texte\', \'<style:suligne>\', \'</style>\');" /> 
<input type="button" value="Surligné" onclick="balise(\'texte\', \'<style:surligne>\', \'</style>\');" /> 
<input type="button" value="Encadre" onclick="balise(\'texte\', \'<style:encadre>\', \'</style>\');" />
<br />
</span>
<select onchange="balise(\'texte\', \'<police:\'+this.value+\'>\', \'</police>\'); this.options[0].selected = true;">
<option class="select_titre" selected="selected" disabled="disabled">Polices</option>
<option class="arial" value="arial">Arial</option>
<option class="times" value="times">Times New Roman</option>
<option class="courier" value="courier">Courier</option>
<option class="impact" value="impact">Impact</option>
<option class="verdana" value="verdana">Verdana</option>
</select> 
<select onchange="balise(\'texte\', \'<taille:\'+this.value+\'>\', \'</taille>\'); this.options[0].selected = true;">
<option class="select_titre" selected="selected" disabled="disabled">Tailles</option>
<option value="minuscule">Minuscule</option>
<option value="petit">Petit</option>
<option value="moyenpetit">Moyen petit</option>
<option value="moyengrand">Moyen grand</option>
<option value="grand">Grand</option>
<option value="enorme">Enorme</option>
</select> 
<select onchange="balise(\'texte\', \'<couleur:#\'+this.value+\'>\', \'</couleur>\'); this.options[0].selected = true;">
<option class="select_titre" selected="selected" disabled="disabled">Couleurs</option>
<option style="color: #000000;" value="000000">Noir</option>
<option style="color: #454545;" value="454545">Gris foncé</option>
<option style="color: #757575;" value="757575">Gris</option>
<option style="color: #441677;" value="441677">Violet</option>
<option style="color: #162277;" value="162277">Bleu foncé</option>
<option style="color: #13609c;" value="13609c">Bleu</option>
<option style="color: #177531;" value="177531">Vert foncé</option>
<option style="color: #00ac31;" value="00ac31">Vert</option>
<option style="color: #fff100;" value="fff100">Jaune</option>
<option style="color: #ffb400;" value="ffb400">Orange</option>
<option style="color: #ff88f8;" value="ff88f8">Rose</option>
<option style="color: #ff0000;" value="ff0000">Rouge</option>
<option style="color: #ffffff;" value="ffffff">Blanc</option>
</select> 
<select onchange="balise(\'texte\', \'<aligner:\'+this.value+\'>\', \'</aligner>\'); this.options[0].selected = true;">
<option class="select_titre" selected="selected" disabled="disabled">Aligner</option>
<option class="gauche" value="gauche">Gauche</option>
<option class="centre" value="centre">Centre</option>
<option class="droite" value="droite">Droite</option>
<option class="justifie" value="justifie">Justifié</option>
</select> 
<select onchange="balise(\'texte\', \'<titre:\'+this.value+\'>\', \'</titre>\'); this.options[0].selected = true;">
<option class="select_titre" selected="selected" disabled="disabled">Titres</option>
<option value="1">Titre 1</option>
<option value="2">Titre 2</option>
</select> 
<br />
<input type="checkbox" id="activ_apercu" onclick="active_apercu(\'texte_apercu\');" checked="checked" /> <label for="activ_apercu">Activer / Désactiver l\'aperçu temps réel</label><br />
<textarea id="texte" name="contenu" cols="50" rows="25" style="width:500px; height: 210px;" onclick="apercu(this.id, \'texte_apercu\');" onkeyup="apercu(this.id, \'texte_apercu\');"></textarea>
<br />
</div>
<div id="texte_apercu" class="apercu"></div>
<br />
<div class="centre">
<input type="hidden" name="action" value="crea"/><input type="submit" name="Envoyer"/> <input type="reset" name="Annuler"/>
</div>
</form>';}

if($_POST["action"]=="crea") //Une fois le formulaire rempli, on passe à la création de la page

 { // Le stripslashes sur les varaibles à ne pas oublier
  $nom=stripslashes($_POST['nom']) ;
  $repertoire='../'.$repertoire.$nom;
  $contenu=stripslashes($_POST["contenu"]);
  $contenu = preg_replace($texte);
  $fichier=fopen($nom, 'w+') ; // On créé le fichier avec le nom spécifié
  $contenufichier= '<?php include("../debut_page6.php"); ?><div id="corps"><div id="corps1"><div id="in_corps">
  '.$contenu.'</div></div></div>';
  $contenufichier=nl2br($contenufichier);
  
  //On définit le texte du fichier, puis on le met dans la page 
 
  fputs($fichier, $contenufichier);
  fclose($fichier) ; // Enfin, on oublie pas de refermer le fichier
  echo '<p>Fichier créé avec succès !</p>
  <p>Le fichier se trouve <a href='.$nom.'>ici</a></p>' ; }
?>
le scode.php qui est censé remplacer le sCode par du Xhtml :
<?php
function sCode($texte) {
	/* htmlentities() */
	if(preg_match('`(<|>)`s', $texte)) { $texte = htmlentities($texte); }
	/* Codes */
	while(preg_match('`<code:(actionscript|css|html|js|mysql|php|xml)>(.+?)</code>`s', $texte)) {
		$texte = preg_replace_callback('`<code:(actionscript|css|html|js|mysql|php|xml)>(.+?)</code>`s', 'code_geshi', $texte);
	}
	/* nl2br() */
	if(preg_match('`\n`s', $texte)) { $texte = nl2br($texte); }

	$entre = array(
	/* Lien */
	'`<lien:((https?|ftp)://\S+[a-zA-Z0-9]/?)>(.+?)</lien>`U',
	/* email */
	'`<email:([a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-_.-]+\.[a-z]{2,4})>(.+)</email>`U',
	/* Image */
	'`<image:((https?|ftp)://\S+[a-zA-Z0-9]/?)>`U',
	/* Separation */
	'`<separation>`');

	$sortit = array(
	/* Lien */
	'<a href="$1">$3</a>',
	/* email */
	'<a href="mailto:$1">$2</a>',
	/* Image */
	'<img src="$1" alt="" />',
	/* Separation */
	'<div class="separation"></div>');

	/* Polices */
	$texte = balise('`<police:(arial|times|courier|impact|verdana)>(.+?)</police>`s', '<span class="$1">$2</span>', $texte);
	/* Tailles */
	$texte = balise('`<taille:(minuscule|petit|moyenpetit|moyengrand|grand|enorme)>(.+?)</taille>`s', '<span class="$1">$2</span>', $texte);
	/* Alignement */
	$texte = str_replace('</aligner><br />', '</aligner>', $texte);
	$texte = balise('`<aligner:(gauche|droite|centre|justifie)>(.+?)</aligner>`s', '<div class="$1">$2</div>', $texte);
	/* Styles */
	$texte = balise('`<style:(gras|italique|souligne|barre|suligne|surligne|encadre)>(.+?)</style>`s', '<span class="$1">$2</span>', $texte);
	/* Couleurs */
	$texte = balise('`<couleur:#([a-zA-Z0-9]{6}+)>(.+?)</couleur>`s', '<span style="color:#$1">$2</span>', $texte);
	/* Titres */
	$texte = balise('`<titre:(1|2)>(.+?)</titre>`s', '<span class="titre$1">$2</span>', $texte);
	/* Citations */
	$texte = str_replace('</citation><br />', '</citation>', $texte);
	$texte = balise('`<citation:(.+?)>(.+?)</citation>`s', '<div class="citation_auteur">Citation : $1</div><div class="citation">$2</div>', $texte);
	$texte = balise('`<citation>(.+?)</citation>`s', '<div class="citation_auteur">Citation : Auteur inconnu</div><div class="citation">$1</div>', $texte);
	/* Liste */
	$texte = str_replace('<liste><br />', '<liste>', $texte);
	$texte = str_replace('</liste><br />', '</liste>', $texte);
	$texte = str_replace('</puce><br />', '</puce>', $texte);
	$texte = balise('`<liste>(.+?)</liste>`s', '<ul>$1</ul>', $texte);
	$texte = balise('`<puce>(.+?)</puce>`s', '<li class="puce">$1</li>', $texte);
	/* Lien | email | Image | Separation */
	$texte = str_replace('</separation><br />', '</separation>', $texte);
	$texte = preg_replace($entre, $sortit, $texte);
	
	return $texte;
}
?>
Normalement l'erreur vient de là. Si besoin, je peux vous poster scode.js mais je pense pas que l'erreur vienne de ce fichier.

par Cyrano » 17 juil. 2006, 23:43

Pour t'aider, il faudrait voir les extraits de code que tu ne comprends pas où à tout le moins ceux qui doivent effectuer le traitement.

Mise en forme du texte non executée après création de la pag

par Invité » 17 juil. 2006, 21:18

Salut, j'ai fait un formulaire pour créer mes pages depuis internet et j'ai ajouté un sCode ( créé sur le site du zéro ) afin de mettre en forme mon texte :
Image
donc je crée la page, tout va bien, mais lorsque je regarde le fichier, il n'est pas mis en forme. Les balises du sCode ( <style:gras>, <souligne>, etc...) restent dans le code source au lieu d'être remplacée par <strong> etc...

Bref, quand je crée la page, il y a en début de page tout ce qu'il faut pour mettre en lien la page avec les fichiers css, javascript et php mais les balises ne sont pas remplacées.

Merci de comprendre et m'aider :)