form salva testo spezzato in mysql

  • Creatore Discussione Creatore Discussione asevenx
  • Data di inizio Data di inizio

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Da form inserisco e modifico dei testi che vengono salvati su DB mysql. Però questi vengono "spezzati" al momento del salvataggio. Faccio un esempio:

testo digitato
Offerta 1 -
Cena del 24 dicembre, pernotto in camera doppia, pranzo di Natale - 150 euro a persona.

Offerta 2 -
Cena del 24 dicembre, pernotto in camera doppia, pranzo di Natale, pernotto del 25 - 185 euro a persona.

Extra offerta -
4° notte con pernotto in doppia - 35 euro a persona.

testo salvato nel DB
Offerta 1 -
Cena del 24
dicembre, pernotto
in camera doppia,
pranzo di Natale -
150 euro a persona.

Offerta 2 -
Cena del 24
dicembre, pernotto
in camera doppia,
pranzo di Natale,
pernotto del 25 -
185 euro a persona.

Extra offerta -
4° notte con
pernotto in doppia -
35 euro a persona.

Ovviamente quest'ultimo viene visualizzato così dato che ho inserito la funzione nl2br nella pagina dove devono essere letti, e visto che vorrei visualizzare gli "a capo" digitati dall'utente.

Come posso risolvere?

Grazie a tutti
 
Com'è la query INSERT?

Dovresti scrivere il codice che stai utilizzando!:)
 
il form...
HTML:
<form id="eventi" action="form.php?rl=Crea-Evento" name="eventi" method="post" enctype="multipart/form-data">
  
     <div>Titolo:</div>
     <input class="input" name="titolo" type="text" value="">

     <div>Descrizione:</div>
     <textarea class="textarea" name='descrizione' wrap='hard'></textarea>
		
     <div>Carica immagine:</div>
     <input class="input" name="img" type="file" value="" />
						
     <div>Data:</div>
     <input id="data" name="data" type="text" value="">

     <input class="bottom" type="reset"  value="Cancella">				
     <input class="bottom" type="submit"  value="Aggiungi Offerta">
     
     <div class="clear"></div>
</form>

la quary...
PHP:
$titolo = addslashes($_POST['titolo']);
$descrizione = addslashes($_POST['descrizione']);
$data = $_POST['data'];
$img = strtolower($_FILES['img']['name']);

$query_events = "INSERT INTO $tab_events VALUES ('', '$titolo', '$descrizione', '$file_renamed', '$data')";
mysql_query($query_events) or die('Errore nella quary 3'.mysql_error());
 
prova è un supposizione con
PHP:
$titolo = addcslashes(mysql_real_escape_string($_POST['titolo'])); 
$descrizione = addcslashes(mysql_real_escape_string($_POST['descrizione'])); 
$data = $_POST['data']; 
$img = strtolower($_FILES['img']['name']);
 
Ti ringrazio ma ora il testo viene scritto così:
Offerta 1 -\r\nCena del 24\r\ndicembre, pernotto\r\nin camera doppia,\r\npranzo di Natale -\r\n150 euro a persona.\r\n\r\nOfferta 2 -\r\nCena del 24\r\ndicembre, pernotto\r\nin camera doppia,\r\npranzo di Natale,\r\npernotto del 25 -\r\n185 euro a persona.\r\n\r\nExtra offerta -\r\n4° notte con\r\npernotto in doppia -\r\n35 euro a persona.
:crying:

Anche togliendo addcslashes il testo viene spezzato
 
però forse riesco ad usare str_replace per confertire \r\n in <br/>.. ci provo e ti faccio sapere. Grazie mille per l'aiuto che mi stai dando
 
ho notato ora che \r\n appare anche dove non dovrebbe spezzando le frasi, ad esempio "Cena del 24\r\ndicembre, pernotto\r\nin camera doppia,\r\npranzo di Natale -\r\n150 euro a persona." deve essere tutta unita, e non spezzata
 
Ti ringrazio, sicuramente lo proverò ma prima voglio risolvere dal form che ho creato.
 
Ok ho un idea
su titolo e descrizione prova questa funzione

PHP:
function bonifica($txt){
	
$mod1 = str_replace("\r\n\r\n", "<br />", $txt);
$mod2 = str_replace("°", "&deg;", $mod1);

$esatto = str_replace("\r\n", "&nbsp;", $mod2);

return $esatto;
}

PHP:
$titolo = bonifica(addslashes($_POST['titolo'])); 
$descrizione = bonifica(addslashes($_POST['descrizione'])); 
$data = $_POST['data']; 
$img = strtolower($_FILES['img']['name']); 

$query_events = "INSERT INTO $tab_events VALUES ('', '$titolo', '$descrizione', '$file_renamed', '$data')"; 
mysql_query($query_events) or die('Errore nella quary 3'.mysql_error());
 
Ultima modifica:

Discussioni simili