Buon pomeriggio...
ho riscontrato il problema delle lettere accentate inserite in una tabella nel db.
Ho un modulo sul sito esterno che inserisce ed invia "Titolo, messaggio etc", su un db.
Su intranet ho un modulo per rispondere a questi messaggi.
Non mi spiego com'è possibile come lo script su sito esterno inserisce le lettere accentate senza problemi, il secondo modulo invece, inserisce caratteri codificati come questi "Ã,è etc..." sul primo campo Titolo(varchar)
I campi Titolo e messaggio nella tabella sono rispettivamente: varchar e blob.
Questi sono i moduli e gli script:
Codice PHP:
//modulo esterno
<form name="frmPopUp" method="post" action="FormVostreSegnalazioni.php" enctype="multipart/form-data">
<label>Titolo(facoltativo)<input type="text" name="txtTitolo" size="42" class="large" value="<?php echo $txtTitolo;?>" /></label>
<label for="segnalazione" class="req">[b]* [/b]Testo segnalazione
<textarea name="txtSegnalazioneOri" cols="42" rows="10"><?php echo $txtSegnalazioneOri;?></textarea>
</label>
</form>
//script invio esterno
$sql = "UPDATE TBSEGNALAZIONI SET "
." dSegnalazione='". $dSegnalazione ."'"
.", cTitolo='". str_replace($arrTagB,"",trim(addslashes($_POST['txtTitolo']))) ."'"
.", cSegnalazioneOri='". trim(addslashes($_POST['txtSegnalazioneOri'])) ."'";
$sql .= " WHERE nIdSegnalazione = ".$hidIdSegnalazione."";
$MyError = cExeQuery($sql, $Connessione, "Errore di esecuzione dell'Update: ".$sql."
");
in quello interno
Codice PHP:
//modulo per le risposte
<form name="frmPopUp" method="post" action="" enctype="multipart/form-data">
Titolo</p>
<?php
echo "<textarea name='txtTitolo' cols='1' rows='3' style=\"width:288px; font-size:11\">";
echo $txtTitolo;//html_entity_decode()
echo "</textarea> ";
?>
Testo Segnalazione</p>
<?php
echo "<textarea readonly name='txtSegnalazioneOri' cols='1' rows='6' style=\"width:288px; font-size:11\">";
echo htmlentities($txtSegnalazioneOri,ENT_COMPAT,'iso-8859-1');
echo "</textarea> ";
?>
</form>
//script interno
$txtTitolo = trim(addslashes($_POST['txtTitolo']));
$txtSegnalazioneOri = trim(addslashes($_POST['txtSegnalazioneOri']));
$sql = "UPDATE TBSEGNALAZIONI SET"
." cTitolo=\"".htmlentities($txtTitolo,ENT_COMPAT,'UTF-8')."\""
.", cRisposta=\"".htmlentities($txtRisposta,ENT_COMPAT,'UTF-8')."\"";
$sql .= " WHERE nIdSegnalazione = ".$hidIdSegnalazione."";
$MyError = cExeQuery($sql, $Connessione, "Errore di esecuzione dell'Update: ".$sql."
");
1) C'è qualche errore?
2) con la situazione che ho postato, praticamente nei rispettivi campi troverò le lettere accentate codificate in questo modo :"à - è - ì - ò - ù"
Domanda: va bene cosi?oppure nel db devo comunque visualizzare le lettere accentate?
Grazie mille...