Salve, passo subito al nocciolo...
Duqnue, prendo un valore da un campo e lo metto in una variabile che poi passo al database. la variabile la inizializzo così:
$text1 = mysql_escape_string($_POST['text1']);
e quando la devo stampare la richiamo in questo modo:
$text1 = stripslashes($myrow["text1"]);
Ho visto che nel database il testo premette un backslash ad apici e doppi apici. Cosa che credo sia giusta. Mi incuriosisce però il fatto che al momento di inviare i valori al database, cioè subito dopo aver cliccato sul pulsante submit, nelle caselle del form si vedano tre backslashes. cioè, credo, uno per gli apici e l'altro forse per un backslash che credo aggiunga il server. Ho fatto un controllo ed ho visto che l'opzione magic quotes è così settata:
magic_quotes_gpc On On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
Cosa mi conviene fare dunque? lascio o tolgo mysql_escape_string?
Altra questione... in un campo input di tipo text, pur assegnando alla variabile il record del database filtrato con stripslashes (cioè: $titolo = stripslashes($myrow["titolo"]) quando il testo incontra un doppio apice si interrompe. L'unico modo per poterlo vedere completo è utilizzare htmlentities. Questo mi succede soltanto nel campo "text" e non per esempio nella textarea (forse perché la textarea è quella dell'editor tinymce, ma non andiamo troppo fuori argomento). E' normale che debba utilizzare htmlentities?
E DOVE è meglio utilizzarlo? Direttamente nel input ( <input type="text" name="title" id="title" value="<?php echo htmlentities($title) ?>" /> oppure quando inizializzo la variabile?

Rispondi quotando