Seguendo varie guide su internet sono riuscito a creare questo script
http://freegameweb.altervista.org/fo...BCODE/form.php
Fin ora tutti i tag (grassetto, sottolineato, corsivo quote code ecc ecc ecc...) funzionano, tranne le smile!
Lo script è strutturato in questa maniera
bbcode.php
Codice PHP:
<?php
//CODE BY MATTEOIAMMA - WWW.MATTEOIAMMARRONE.COM
function bbcode($var){
$search = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[u\](.*?)\[\/u\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/is',
'/\[quote\](.*?)\[\/quote\]/is',
'/\[youtube\](.*?)\[\/youtube\]/is',
'/\[code\](.*?)\[\/code\]/is',
'/\[marquee\](.*?)\[\/marquee\]/is',
);
$replace = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<u>$1</u>',
'<img src="$1" />',
'<a href="$1">$1</a>',
'<a href="$1">$2</a>',
'<div class="forum_quote">$1</div>',
'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0">
<param name="movie" value="$3" />
<param name="quality" value="best" />
<param name="play" value="true" />
<embed pluginspage="http://www.macromedia.com/go/getflashplayer" src="$1" type="application/x-shockwave-flash" quality="best" play="true"></embed>
</object>',
'<div class="forum_code">$1</div>',
'<marquee>$1</marquee>'
);
$var = preg_replace ($search, $replace, $var);
//SISTEMABBCODE
//SISTEMA SMILE
$sel_smile = opendir("smiles/");
while($smile=readdir($sel_smile)){
$smile_value = str_replace(".gif", "", $smile);
$var_nw = str_replace($smile_value, "<img src='smiles/$smile'/>", $var);
}
// SYSTEMA SMILE
return $var_nw;
}
?>
bbcode2.php
Codice PHP:
<?php
function textarea($name, $value, $form){
?>
<center>
Basic:
<a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='[b][/b]'">Grassetto</a>
<a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='[u][/u]'" >Sottolineato</a>
<a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='[i][/i]'" >Corsivo</a>
<p></p></center>
<?php
echo "
<textarea name='$name' rows='8′ cols='40′ id='$name'>$value</textarea>";
?>
<p></p>
<a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='[img][/img]'"><b>IMMAGINE</b></a>
<a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='[url=quiurl]quitesto[/url]'"><b>URL</b></a>
<a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='[youtube][/youtube]'" >Youtube Video</a>
<?php
echo "<p></p>";
$smile_op = opendir("smiles/");
while($smile=readdir($smile_op)){
$smile_value = str_replace(".gif", "", $smile);
?>
<a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='<?php echo $smile_value;?>'"><img src="smiles/<?php echo $smile;?>"/></a>
<?php
}
?>
<p></p>
<div class="code">
<a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='[code][/code]'" >CODE</a></div>
<div class="code"><a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='[quote][/quote]'" >QUOTE</a></div>
<div class="code"><a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='[marquee][/marquee]'" >MARQUEE</a></div>
<?php
}
?>
form.php
Codice PHP:
<?php
include("bbcode.php");
include("bbcode2.php");
echo "<form action='form.php' method='post' name='nomeform'>";
textarea("prova", "Qui contenuto di default", "nomeform");
echo "<input type='submit' name='send' value='Invia Form'/>";
echo "</form>";
if ($_POST['send']){
$contenuto_textarea=bbcode($_POST['prova']);
echo "$contenuto_textarea";
}
?>
Allora...
Come potete vedere provando il form e selezionando una smile qualsiasi, viene inserito nella textarea il nome della smile...
Questa è la parte di codice interessata
Codice PHP:
<?php
echo "<p></p>";
$smile_op = opendir("smiles/");
while($smile=readdir($smile_op)){
$smile_value = str_replace(".gif", "", $smile);
?>
<a Onclick="document.<?php echo $form; ?>.<?php echo $name; ?>.value+='<?php echo $smile_value;?>'"><img src="smiles/<?php echo $smile;?>"/></a>
Il problema si crea inviando i dati del form...
Infatti, come potete notare, mi viene restituito il nome della gif che avevo inserito nella textarea, e non la gif vera e propria con il suo codeice html (<img src="...)
Quindi il problema dovrebbe essere qui
Codice PHP:
$sel_smile = opendir("smiles/");
while($smile=readdir($sel_smile)){
$smile_value = str_replace(".gif", "", $smile);
$var_nw = str_replace($smile_value, "<img src='smiles/$smile'/>", $var);
}
Solo che non riesco a capire dove!
Qualche anima pia mi può aiutare??
Grazie a tutti...