Ho notato che i caratteri virgoletta ' doppia virgoletta " e barra inversa \ passati attraverso un campo text o textarea di un form vengono restituiti male nelle variabili php.
Esiste un modo per ovviare a questo inonveniente?


Ad esempio se ho:
<form method="post" action="recupera_form.php">
<input type="text" name="testo">
<textarea cols="60" rows="10" name="area_testo"></textarea>
<input type="submit" value="invio">
</form>

le variabili $_POST["testo"] e $_POST["area_testo"] se digito " risultano \", se digito ' risultano \' e se digito \ risultano \\.

Se inoltre voglio restituire i valori alla prima pagina, attraverso un altro form con campi hidden che reinviano i valori, questi si modificano ancora.

Ad esempio:
<form method="post" action="recupera_form.php">
<input type="text" name="testo" value="$_POST["testo"]" >
<textarea cols="60" rows="10" name="area_testo">
<?php echo $_POST["area_testo"] ?>
</textarea>
<input type="submit" value="invio">
</form>

e nella pagina che riceve:
<form method="post" action="form.php">
<input type="hidden" name="testo" value="$_POST["testo"]" >
<input type="hidden" name="testo" value="$_POST["area_testo"]" >
<?php echo $_POST["area_testo"] ?>
</textarea>
<input type="submit" value="modifica">
</form>

i valori \' \" e \\ risultano \\ \\\ e \\\\. Così via, continuando a richiamare le due pagine, fino ad avere solo una serie di barre inverse che aumenta continuamente.