-
ciao,allora io adesso sono riuscito a trovare un buon codice bbcode solo ke ho un problemino:in sostanza nn mi funziona
il codice è questo:
Codice PHP:
<?
function bbcode_format($testoesterno) {
$search = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[u\](.*?)\[\/u\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/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>'
);
$testosterno = preg_replace ($search, $replace, $testoesterno);
return $testoesterno;
}
?>
in pratica se scrivo [b]testo[b] (ho omesso di proposito lo slash) mi compare di nuovo testo
per caso può dipendere dagli attrivuti ke ho dato alla tabella in cui salvo il testo?
gli ho dato l'attributo text e altri ke nn ricordo! ma se nn dovesse dipendere da questo significa ke ho sbagliato il codice quindi vi posto anche quello(ho cercato di togliere il testo html dal codice,se nn capite kiedete)
Codice PHP:
<?
function bbcode_format($testoesterno) {
$search = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[u\](.*?)\[\/u\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/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>'
);
$testosterno = preg_replace ($search, $replace, $testoesterno);
return $testoesterno;
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<?
$username = "furion";
$password = "password";
$host = "localhost";
$database = "my_furion";
$db=mysql_connect($host, $username, $password) or die("Errore durante la connessione al database");
mysql_select_db($database, $db) or die("Errore durante la selezione del database");
if (isset($_POST['testoesterno'])):
$testoesterno = $_POST['testoesterno'];
$sql = "UPDATE alleanze SET
testoesterno ='$testoesterno'";
if (mysql_query($sql)) {
echo '</textarea>';
echo "<textarea name=testoesterno rows=15 cols=70>
$testoesterno";
} else {
exit('<p>Errore nel modificare il testo esterno: '.
mysql_error() . '</p>');
}
?>
</textarea>
<? else:
$alleanze = @mysql_query(
"SELECT testoesterno FROM alleanze");
if(!$alleanze) {
exit('<p>Error fetching alleanze details: '.
mysql_error() . '</p>');
}
$alleanze = mysql_fetch_array($alleanze);
$testoesterno = $alleanze['testoesterno'];
$testoesterno = htmlspecialchars($testoesterno);
?>
<textarea name="testoesterno" cols=70 rows=15>
<? echo $testoesterno; ?>
</textarea>
<? endif; ?>
<input type=submit value="Salva">
</form>
-
Ci credo che non ti funziona, non richiami la funzione bbcode_format.
Al posto di:
Codice PHP:
$testoesterno = htmlspecialchars($testoesterno);
Metti:
Codice PHP:
$testoesterno = bbcode_format(htmlspecialchars($testoesterno));
-
allora nella pagina dove compare il testo ho richiamato la funzione allo stesso modo di come ho fatto prima(forse ho sbagliato?) ma il testo si vede ancora con i tag del bbcode, come risolvo?
-
Dove compare il testo devi inserire la funzione bbcode_format e utilizzarla come ti ho scritto nel messaggio precedente.
-
è quello ke ho fatto solo ke nn funziona!
-
Guarda bene dentro la funzione bbcode_format: l'ultima volta che cambi il valore di $testoesterno con un preg_replace, sbagli a scrivere il nome della variabile ($testosterno al posto di $testoesterno)
:wink:
-