Bonjour, il m'arrive un phénomène étrange. je vais tenter de l'expliquer.
Je veux sur mon cite créer une partie dans laquelle je peut écrire des nouvelles afin qu'elles apparaissent en page d'accueil. Pour cela j'utilise le même type d'invit que pour un forum.
Le problème: Les balises de type "
" n'apparaissent pas dans ma page de rédaction lorsque je clique sur l'icone correspondant....
Lorsque je fais l'essai en autonome, tout ce passe bien, mais dès que je l'inclue dans la site cela commence à déconner
Le pire est que le phénomène diffère entre IE7 et firefox, histoire de ne pas compliquer les choses...
Firefox: emoticon => OK - Balise de mise en forme => NOT OK
IE7: emoticon et Balise de mise en forme => NOT OK
je joints les code que je l'avoue j'ai récupéré et essayé d'adapter ...
Le script:
La page qui contient le formulaire:A savoir qu'elle est incluse dans une autre page...
Les fonctions:
. " Code </A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"addtext(".$champ.",'','http://monsite.com/image.jpg','',true)\" title=\"
\">"
. " Image </A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"alert('Il suffit d\'entrer les url ou adresses email\\nnormalement pour qu\'elles soient reconnues
')\" title=\"Normalement\">"
. " Liens </A>\n";
return $temp . "<br>";
}
// Redirections
function redir($url) {
@mysql_close;
Header("Location: ".$url);
exit();
}
?>[/code]
Je ne sais pas si le problème relève de php ou javascript. Merci d'avance
Modifié par Boubou57 (09 Jun 2009 - 01:15)
Je veux sur mon cite créer une partie dans laquelle je peut écrire des nouvelles afin qu'elles apparaissent en page d'accueil. Pour cela j'utilise le même type d'invit que pour un forum.
Le problème: Les balises de type "

Lorsque je fais l'essai en autonome, tout ce passe bien, mais dès que je l'inclue dans la site cela commence à déconner

Firefox: emoticon => OK - Balise de mise en forme => NOT OK
IE7: emoticon et Balise de mise en forme => NOT OK
je joints les code que je l'avoue j'ai récupéré et essayé d'adapter ...
Le script:
// Vérifie la validité du champ par rapport à la regexp et sion :
// - affiche le message d'erreur
// - passe le focus au champ
// - retourne false
<!--
function checkfield(champ,regexp,message) {
var reg = new RegExp(regexp)
if(reg.exec(champ.value)==null) {
alert(message)
champ.focus()
return false
}
return true
}
// Ajoute le texte à la position du curseur
// dans le textearea. Merci Iubito [cligne]
function addtext(t,startTag,defaultText,endTag,replace) {
if(t.createTextRange) {
t.focus(t.caretPos);
t.caretPos = document.selection.createRange().duplicate();
if(t.caretPos.text.length>0) {
//gère les espace de fin de sélection. Un double-click sélectionne le mot
//+ un espace qu'on ne souhaite pas forcément...
var sel = t.caretPos.text;
var fin = '';
while(sel.substring(sel.length-1, sel.length)==' ') {
sel = sel.substring(0, sel.length-1)
fin += ' ';
}
if(replace) t.caretPos.text = startTag + sel + endTag + fin;
else t.caretPos.text = sel + fin + startTag + defaultText + endTag;
} else {
t.caretPos.text = startTag+defaultText+endTag;
}
}
else t.value += startTag+defaultText+endTag;
}
-->
La page qui contient le formulaire:A savoir qu'elle est incluse dans une autre page...
<script laguage="JavaScript" type="text/javascript" src="javascripts/messages.js">
</script>
<?php
include("permanents/fonctions.inc.php");
include("permanents/connexion.inc.php");
?>
<!-- Style -->
<LINK REL="stylesheet" TYPE="text/css" HREF="styles/messages.css">
<link rel="stylesheet" href="styles/espace_admin.css" type="text/css">
<!-- Contenu -->
<div id="contenu_page_de_texte" name="contenu_page_de_texte">
<H2><img class="fleche_titre_pragraphe" src="images/fl-rougeorange18.gif">Rubrique " A la Une "</H2>
<table name="table1">
<form method="post" action="poster_a_la_une.php" name="form1">
<tr>
<td align=right>Titre</td><td>
<input name="titre_a_la_une" size=80 maxlength=100 value="<?php echo mystripslashes($_POST["titre_a_la_une"])?>"></td>
</tr>
<tr>
<td align=right valign=top>Message</td><td>
<textarea name="message_a_la_une" cols=80 rows=10><?php echo mystripslashes($_POST["message_a_la_une"])?></textarea>
</td>
</tr><tr>
<td> </td>
<td align=center><?php echo emoticon("form1.message_a_la_une"); ?></td>
<td> </td>
</tr><tr>
<td> </td>
<td align=center><?php echo taglist("form1.message_a_la_une"); ?></td>
</tr><tr>
<td> </td>
<td align=center><br>
<input type="submit" class="validation" name="envoyer" value="Envoyer" >
<input type="button" class="validation" name="nouveau" value="Nouveau" >
</td>
</tr>
</form>
</table>
</div>
<?php
if (isset($_POST['envoyer']) && $_POST['envoyer'] == 'Envoyer') {
if ($envoi_effectue == 'false'){
if (isset($_POST['titre_a_la_une']) && $_POST['titre_a_la_une'] != ''){
if (isset($_POST['message_a_la_une']) && $_POST['message_a_la_une'] != ''){
$titre_a_retenir = $_POST['titre_a_la_une'];
$message_a_retenir = $_POST['message_a_la_une'];
$envoi_effectue == 'true';
//vider les champs
$_POST['titre_a_la_une'] = '';
$_POST['message_a_la_une'] = '';
// envoi des données vers BDD
$sql_a_inserer = 'INSERT INTO `'.$message_une.'` VALUES("", "'.date_du_jour().'", "'.mysql_escape_string($titre_a_retenir).'", "'.mysql_escape_string($message_a_retenir).'","'.mysql_escape_string($_SESSION['login']).'")';
mysql_query($sql_a_inserer) or die('Erreur SQL !'.$sql_a_inserer.'<br />'.mysql_error());
}
else{
echo 'Le message est vide';
}
}
else{
echo 'vous n\'avez pas mis de titre';
}
}
else{
echo 'vous avez déjà envoé ce message !';
}
}
//recuperation des données de la BDD
$result = mysql_query("SELECT * FROM `$message_une`");
while ($reponse = mysql_fetch_array($result)){
$date_a_afficher = $reponse['date'];
$titre_a_afficher = $reponse['titre'];
$message_a_afficher = $reponse['message'];
$auteur_a_afficher = $reponse['author'];
echo '<table><tr><td>'.ecrit_detail(mystripslashes($titre_a_afficher)).'</td></tr><tr><td>'.nl2br(ecrit_detail(mystripslashes($message_a_afficher))).'</td></tr><tr><td> message du:'.$date_a_afficher.'</td></tr><tr><td> écrit par:'.$auteur_a_afficher.'</td></tr></table>';
}
?>
Les fonctions:
<?php
// === IMAGES ===
$img_poub = "<img src='images/minipoub.gif' border='0' width='14' height='15' alt='del' align='absmiddle'>";
$img_edit = "<img src='images/miniedit.gif' border='0' width='15' height='16' alt='edit' align='absmiddle'>";
// Définition des emoticons
$emoticons = array(
":D" => "teeth_smile"
, ":)" => "regular_smile"
, ";)" => "wink_smile"
, " [langue]" => "tongue_smile"
, ":$" => "red_smile"
, ":S" => "confused_smile"
, " [decu]" => "sad_smile"
, ":'(" => "cry_smile"
, ":@" => "angry_smile"
, "(Y)" => "thumbs_up"
, "(N)" => "thumbs_down"
, "(B)" => "beer_mug"
, "(C)" => "coffee"
, "(D)" => "martini"
, "(F)" => "rose"
, "(K)" => "kiss"
);
// === FONCTIONS COMMUNES ===
// Remplace les emoticons dans le texte par des images
function emoticon_replace($txt) {
global $emoticons;
foreach( $emoticons as $code => $image ){
$txt = str_replace("[".$code."]","<img src=\"images/emoticons/".$image.".gif\" width=19 height=19 align=\"absmiddle\" border=0>",$txt);
}
return $txt;
}
// Réciproque de htmlentities
function unhtmlentities( $string ){
$trans_tbl = get_html_translation_table ( HTML_ENTITIES );
$trans_tbl = array_flip( $trans_tbl );
$ret = strtr( $string, $trans_tbl );
return preg_replace( '/&#(\d+);/me' , "chr('\\1')" , $ret );
}
// Enlève les sauts de ligne
function nonl($txt) {
return str_replace("\n","",$txt);
}
// Transforme les url ou adresses email en liens cliquables
function insertlinks($txt) {
$NotAnchor = '(?<!"|href=|href\s=\s|href=\s|href\s=|img=)';
$Protocol = '(http|ftp|https):\/\/';
$Domain = '[\w]+(.[\w]+)';
// Les url qui commencent par http:// ou autre ftp ou https
$Subdir = '([\w\-\.,;@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#]?)';
$Expr = '/' . $NotAnchor . $Protocol . $Domain . $Subdir . '/i';
$txt = preg_replace( $Expr, "<a href=\"$0\" title=\"$0\" target=\"_blank\">$0</a>", $txt );
$NotHTTP = '(?<!:\/\/)';
$Domain = 'www(.[\w]+)';
// Les url qui commencent par www.
$Expr = '/' . $NotAnchor . $NotHTTP . $Domain . $Subdir . '/i';
$txt = preg_replace( $Expr, "<a href=\"http://$0\" title=\"http://$0\" target=\"_blank\">$0</a>", $txt );
// Et les adresses email
$Expr = '/' . '(\s)([\w.-]+@+[\w.-]+)' . '/i';
return preg_replace( $Expr, "$1<a href=\"mailto:$2\" title=\"mailto:$2\" target=\"_blank\">$2</a>", " ".$txt );
}
// Gestion des pseudo-tags [tag=param]texte[/tag]
function tag($txt) {
$reg = "/" . "\[" . "([^\]=]+)" . "=?" . "([^\]]*)" . "\]" . "([^\[]*)" . "\[\/\\1\]" . "/i";
while(preg_match($reg,$txt,$tag)) {
$ordre = $tag[1];
$param = $tag[2];
$content = $tag[3];
switch(strtolower($ordre)) {
case "b":
$res = "<strong>".$content."</strong>";
break;
case "i":
$res = "<i>".$content."</i>";
break;
case "u":
$res = "<u>".$content."</u>";
break;
case "col":
case "color":
$color = (@$param) ? " color='".$param."'" : "";
$res = "<font ".$color.">".$content."</font>";
break;
case "size":
$size = (@$param) ? " size='".$param."'" : "";
$res = "<font ".$size.">".$content."</font>";
break;
case "center":
$res = "<div align=\"center\">".$content."</div>";
break;
case "quote":
$res = "<blockquote><strong>Citation :</strong><br><table bgcolor=white border=1 cellspacing=0 cellpadding=5><tr><td>".$content."</td></tr></table></blockquote>";
break;
case "code":
$res = "<blockquote><strong>Code :</strong><br><table bgcolor=white border=1 cellspacing=0 cellpadding=5><tr><td nowrap>".nonl(highlight_string(nonl(unhtmlentities($content)),true))."</td></tr></table></blockquote>";
break;
case "img":
$res = "<A href=\"".$content."\" target=\"_blank\"><img src=\"".$content."\" border=0></A>";
break;
}
if(@$res) $txt=str_replace($tag[0],$res,$txt);
else break;
}
return $txt;
}
// Ecrit le corps des messages et le détail du topic
function ecrit_detail($txt) {
$txt = htmlentities($txt);
$txt = emoticon_replace($txt);
$txt = tag($txt);
$txt = insertlinks($txt);
return $txt;
}
// === ENVOI DES MAILS ===
function sendMail($from,$to,$sujet,$body) {
global $isLocal;
if(!$isLocal)
return mail($to,$sujet,$body,"From: ".$from);
else return false;
}
// Ajoute des \ si magic_quotes_gpc est à off
function myaddslashes($txt) {
return (!get_magic_quotes_gpc()) ? addslashes($txt) : $txt ;
}
// Enlève les \ si magic_quotes_gpc est à on
function mystripslashes($txt) {
return (get_magic_quotes_gpc()) ? stripslashes($txt) : $txt ;
}
// Liste d'emoticons pour les formulaires
function emoticon($champ) {
global $emoticons;
$temp = "";
foreach( $emoticons as $code => $image ){
$temp.= "<img src=\"images/emoticons/".$image.".gif\" width=19 height=19 style=\"cursor:hand\""
. " onclick=\"addtext(".$champ.",'[','".addslashes($code)."',']',false)\" alt=\"[".$code."]\">\n";
}
return $temp;
}
// Recuperation de la date du jour
function date_du_jour(){
setlocale(LC_TIME, 'fr_FR','fra');
$date_complete = strftime('%d %B %Y');
return $date_complete;
}
// Liste des tags pour formulaires
function taglist($champ) {
$temp = "";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"addtext(".$champ.",'[b]','...','[/b]',true)\" title=\"[b]...[/b]\">"
. "<strong> B </strong></A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"addtext(".$champ.",'[i]','...','[/i]',true)\" title=\"[i]...[/i]\">"
. "<i> I </i></A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"addtext(".$champ.",'[u]','...','[/u]',true)\" title=\"[u]...[/u]\">"
. "<u> U </u></A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"addtext(".$champ.",'[color=red]','...','[/color]',true)\" title=\"[color=red]...[/color]\">"
. "<font color=red> A </font></A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"addtext(".$champ.",'[size=4]','...','[/size]',true)\" title=\"[size=4]...[/size]\">"
. "<font size=4><strong> A </strong></font></A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"addtext(".$champ.",'[center]','...','[/center]',true)\" title=\"[center]...[/center]\">"
. " Center </A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"addtext(".$champ.",'[quote]','...','[/quote]',true)\" title=\"[quote]...[/quote]\">"
. " Citation </A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"addtext(".$champ.",'[code]','...','
',true)\" title=\"...
\">". " Code </A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"addtext(".$champ.",'','http://monsite.com/image.jpg','',true)\" title=\"
. " Image </A>\n";
$temp.= "<A href=\"javascript:;\" class=\"tagbox\""
. " onclick=\"alert('Il suffit d\'entrer les url ou adresses email\\nnormalement pour qu\'elles soient reconnues

. " Liens </A>\n";
return $temp . "<br>";
}
// Redirections
function redir($url) {
@mysql_close;
Header("Location: ".$url);
exit();
}
?>[/code]
Je ne sais pas si le problème relève de php ou javascript. Merci d'avance
Modifié par Boubou57 (09 Jun 2009 - 01:15)