Come passare un array tramite form con PHP

Per trasferire una variabile vettore tramite una form in HTML è necessario preparare l'array tramite il linguaggio PHP.

Attenzione. Non è possibile passare l'array semplicemente inserendolo nella form, occorre prima serializzarlo e codificarlo prima del trasferimento.

La serializzazione e la codifica dell'array

Come prima cosa serializzo l'array tramite l'istruzione SERIALIZE().

$array2=serialize($array);

In questo modo tutti gli elementi del vettore sono disposti in serie, separati tra loro da un carattere separatore, come un'unica informazione.

Il secondo passo consiste nella codifica della variabile serializzata tramite l'istruzione URLENCODE().

$array3=urlencode($array2);

Così facendo evito che alcuni caratteri siano confusi con i simboli di separazione degli elementi dell'array.

L'inserimento dell'array nella form

A questo punto posso inserire la variabile serializzata e codificata nel parametro VALUE di un modulo input.

<form>
...
<input type="hidden" value="<? echo($array3); ?>">
...
</form>

Quando si dà invio alla form, il modulo input passa l'informazione serializzata e codificata alla pagina di destinazione.

Attenzione. Il passaggio dell'informazione tramite la FORM trasferisce la variabile array nella forma codificata e serializzata. Per poterla elaborare devo prima decodificarla e deserializzarla.

La decodifica e la deserializzazione dell'array

Una volta ricevuta l'informazione nella pagina di destinazione, devo compiere le operazioni inverse, ossia decodificare e deserializzare la variabile array utilizzando le istruzioni URLDECODE() e UNSERIALIZE().

$array=unserialize(urldecode($array3)):

Queste istruzioni ripristinano l'array nella forma originale e mi consentono di procedere con l'elaborazione dei dati.

In questo modo ho trasferito il vettore da una pagina a un'altra tramite la form.



Per scrivere un commento

knowledge base

Il linguaggio Php

FAQ