Salve ragazzi.
Propongo un problema che mi è capitato oggi. Ho un sito con area di amministrazione. All'interno dell'area di amministrazione ho un form che mi permette di inserire degli articoli con tutti i vari campi (titolo, sottotitolo, testo, immagini ecc...).
Il form è chiaramente in html ed i campi sono indicizzati come text (titolo e sottotitolo) o come textarea (testo). Chiaro che in questa fase posso controllare le righe e le colonne.
Ma ho notato una cosa. Che inserendo il testo (in text area) invece che andare a capo automaticamente mi continua a scrivere tutto nella stessa riga anche se scrivo diecimila caratteri.
Il risultato è il seguente. E qui entra in gioco il php. Ho un file che si chiama "news.php" all'interno del quale, tramite script php, richiamo i vari campi dell'articolo inserito, connettendomi appunto al database.
Posto il codice per capirci:
Codice PHP:
<?php
function multi_array_search($search_value, $the_array)
{
if (is_array($the_array))
{
foreach ($the_array as $key => $value)
{
$result = multi_array_search($search_value, $value);
if (is_array($result))
{
$return = $result;
array_unshift($return, $key);
return $return;
}
elseif ($result == true)
{
$return[] = $key;
return $return;
}
}
return false;
}
else
{
if ($search_value == $the_array)
{
return true;
}
else return false;
}
}
include("config.php");
mysql_connect($db_host, $db_user, $db_password, $db_name) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
$query = mysql_query("select *, date_format(data,'%d-%m-%Y %H:%i') AS 'dataora' from articoli where pub != '' order by art_id") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)){
$array[] = $row;
}
?>
<td bgcolor="#FFFFFF" id='center'>
<div id='contenutocentrale'>
<div id='primanotizia'>
<div id='categprima'>[url='reportages/archive.php?type=topic&id=2']Ultima notizia[/url]</div>
<h1 id='titolocatprima'> <?php $result = multi_array_search('1', $array); echo "[b]".$array[$result[0]]['titolo']."[/b]";
?></h1>
<div id='autoreprimacat '>di [url='reportages/archive.php?type=author&id=Ivan+Gaddari']Ivan Gaddari[/url]</div>
<h2 id='sottotitoloprimacat'> <?php $result = multi_array_search('1', $array); echo $array[$result[0]]['sottotitolo'];?></h2>
<div id='primoarticolo' style='min-height: 146px; height: auto !important; height: 146px'>
<div class='textimage'>
<div class='img' style='width: 202px'>
[img]show.php?id=<?php $result = multi_array_search('1', $array); echo $array[$result[0]]['art_id']; ?>[/img]</a>
</div>
</div>
<?php
$result = multi_array_search('1', $array);
$swap = explode(" ", $array[$result[0]]['testo'], 91);
foreach($swap as $key => $val) if($key < 90) echo $val." ";
echo ".....<a href=\"page.php?id=".$array[$result[0]]['art_id']."\">leggi</a>";
?>
<div id="pubblicatoil"><?php
$result = multi_array_search('1', $array);
echo "Pubblicato il ".substr($array[$result[0]]['dataora'],0,10)." alle ". substr($array[$result[0]]['dataora'],11,5);
?>
</div>
</div>
</div>
Ora, quello che vorrei ottenere è semplice. Un controllo sulla lunghezza delle righe relative al campo "testo". Infatti senza questo controllo il testo inserito mi sfasa tutta la struttura della pagina perchè come detto, al momento dell'inserimento nel form, se metto 10000 caratteri me li scrive senza andare a capo. Nella pagina html mi riporta i 10000 caratteri tutti su un'unica riga, allargandomi la pagina stessa a dismisura!!! Come potrete notare c'è già quello relativo alla lunghezza delle colonne. Ossia, raggiunti 90 caratteri viene troncato il testo.
Come posso fare per controllare la lunghezza delle righe? In modo che ad esempio dopo 50 caratteri vada a capo su un'altra riga nuova?
Spero di essere stato abbastanza chiaro. Grazie mille