Perché perdo parte dei dati trasmessi da un form

Da WikiGT di Giorgiotave.it

Spesso si commette l'errore, forse meglio chiamarla svista, di non includere il valore della variabile dentro gli apici o doppie virgolette.
Infatti se abbiamo il seguente script:
<?
  $string="ciao sono uno script";
?>
<form action="page.php" method="post">
<input type="text" name="testo" value=<? echo $string; ?>>
.....
</form>

Il risultato del nostro script sarà il seguente codice HTML:

<form action="page.php" method="post">
<input type="text" name="testo" value=ciao sono uno script>
.....
</form>

Come potrai ben immaginare per lo script il value sarà solo ciao, dato che lo spazio verrà inteso come fine vecchio attributo (value appunto) e inizio nuova occorrenza (o nuovo attributo), occorrenza che non verra' interpretata dato che "sono", "uno" e "script" non sono attributi HTML. Pertanto, lasciando così il form, il valore inviato alla pagina page.php sarà solo ciao: page.php:

<?
  $testo=$_POST['testo'];
  echo $testo; // risultato: ciao
?>

Per risolvere basterà, così come aviene per gli altri attributi, includere il valore di $string dentro apici o doppie virgolette:

<?
  $string="ciao sono uno script";
?>
<form action="page.php" method="post">
<input type="text" name="testo" value="<? echo $string; ?>">
.....
</form>

Il risultato del nostro script sarà il seguente codice HTML:

<form action="page.php" method="post">
<input type="text" name="testo" value="ciao sono uno script">
.....
</form>

E finalmente nella nostra page.php riusciremo ad ottenere quanto ci aspettavamo:

<?
  $testo=$_POST['testo'];
  echo $testo; // risultato: ciao sono uno script 
?>


FAQ Correlate

FAQ PHP - MySQL
Immagine:php_GTa.jpg
Approfondimenti?
WikiGT Locuzioni Categoria FAQ PHP (http://www.giorgiotave.it/wikigt/os/Categoria:FAQ_Php)
Domande?
Apri un Thread nella sezione PHP-MySQL (http://www.giorgiotave.it/forum/newthread.php?do=newthread&f=9)
Accedi alla home del Forum GT (http://www.giorgiotave.it/forum/)
Personal tools