PHP e HTML interagiscono molto: PHP può generare HTML e HTML può passare informazioni a PHP. Prima di leggere queste faq, è importante imparare come recuperare le variabili da fonti esterne. La pagina di manuale su questo argomento include anche molti esempi.

Di quale codifica/decodifica ho bisogno quando passo un valore attraverso un modulo/URL?

Ci sono diverse fasi per le quali la codifica è importante., Supponendo che tu abbia una stringa data data, che contiene la stringa che vuoi trasmettere in modo non codificato, queste sono le fasi rilevanti:

  • Interpretazione HTML. Per specificare una stringa casuale, è necessario includerla tra virgolette e htmlspecialchars () l’intero valore.

  • URL: Un URL è costituito da diverse parti. Se si desidera che i dati vengano interpretati come un unico elemento, è necessario codificarlo con urlencode ().,

Esempio #1 Un elemento di modulo HTML nascosto

<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>

Nota: è sbagliato urlencode () data data, perché è responsabilità del browser urlencode () i dati. Tutti i browser più diffusi lo fanno correttamente. Si noti che ciò avverrà indipendentemente dal metodo (ad esempio, GET o POST). Lo noterai solo in caso di richiesta GET, perché le richieste POST sono solitamente nascoste.,

Nota: I dati vengono visualizzati nel browser come previsto, perché il browser interpreterà i simboli di escape HTML. Al momento dell’invio, tramite GET o POST, i dati saranno urlencoded dal browser per il trasferimento e direttamente urldecoded da PHP. Quindi, alla fine, non è necessario eseguire autonomamente alcuna urlencoding/urldecoding, tutto viene gestito automagicamente.,

Esempio #3 In un URL

<?php
echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . '">'."\n";
?>

Nota: In realtà si sono simulando un HTML richiesta GET, quindi è necessario manualmente urlencode() i dati.

Nota: È necessario htmlspecialchars() l’intero URL, perché l’URL si verifica come valore di un attributo HTML. In questo caso, il browser prima un-htmlspecialchars() il valore, e quindi passare l’URL. PHP capirà correttamente l’URL, perché urlencode () d i dati., Noterai che &nell’URL viene sostituito da&amp;. Anche se la maggior parte dei browser si riprenderà se si dimentica questo, questo non è sempre possibile. Quindi, anche se il tuo URL non è dinamico, devi htmlspecialchars() l’URL.

Sto cercando di usare un<input type=”image”> tag, ma il tag foo.x e fo foo.le variabili y non sono disponibili. $_GET non esiste neanche. Dove sono?,

Quando si invia un modulo, è possibile utilizzare un’immagine al posto del pulsante invio standard con un tag del tipo:

<input type="image" src="https://www.php.net/manual/en/faq.html.phpimage.gif" name="foo" />

Quando l’utente fa clic da qualche parte l’immagine, la forma di accompagnamento saranno trasmessi al server con due variabili: pippo.x e foo.y.

Perché foo.x e foo.y renderebbe i nomi delle variabili non validi in PHP, vengono automaticamente convertiti in foo_x e foo_y. Cioè, i periodi vengono sostituiti con caratteri di sottolineatura., Quindi, accederesti a queste variabili come qualsiasi altra descritta nella sezione sul recupero delle variabili da fonti esterne. Ad esempio, $_GET.

Nota:

Gli spazi nei nomi delle variabili richieste vengono convertiti in caratteri di sottolineatura.

Come posso creare array in un HTML<modulo>?,

Per ottenere il vostro <form> risultato inviati come un array di PHP script di nome <ingresso> <selezionare> o <textarea> elementi come questo:

<input name="MyArray" /><input name="MyArray" /><input name="MyArray" /><input name="MyArray" />

da Notare le parentesi dopo il nome della variabile, questo è ciò che rende un array., È possibile raggruppare gli elementi in diversi array assegnando lo stesso nome a diversi elementi:

<input name="MyArray" /><input name="MyArray" /><input name="MyOtherArray" /><input name="MyOtherArray" />

Questo produce due array, myArray e MyOtherArray, che vengono inviati allo script PHP. È anche possibile assegnare chiavi specifiche ai tuoi array:

<input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" />

L’array AnotherArray ora conterrà le chiavi 0, 1, email e telefono.

Nota:

Specificare le chiavi array è facoltativo in HTML., Se non si specificano le chiavi, l’array viene compilato nell’ordine in cui gli elementi appaiono nel modulo. Il nostro primo esempio conterrà le chiavi 0, 1, 2 e 3.

Vedere anche Funzioni di array e variabili da sorgenti esterne.

Come ottengo tutti i risultati da un tag HTML multiplo selezionato?

Il tag Seleziona più in un costrutto HTML consente agli utenti di selezionare più elementi da un elenco. Questi elementi vengono quindi passati al gestore di azioni per il modulo. Il problema è che sono tutti passati con lo stesso nome del widget. Cioè.,

<select name="var" multiple="yes">

Ogni opzione selezionata arriverà al gestore di azioni come:

var=option1var=option2var=option3 

Ogni opzione sovrascriverà il contenuto della variabile var var precedente. La soluzione è usare la funzione “array from form element” di PHP. Dovrebbe essere usato quanto segue:

<select name="var" multiple="yes">

Questo dice a PHP di trattare var var come un array e ogni assegnazione di un valore a var aggiunge un elemento all’array. Il primo elemento diventa var var, il prossimo var var, ecc., La funzione count() può essere utilizzata per determinare quante opzioni sono state selezionate e la funzione sort () può essere utilizzata per ordinare l’array di opzioni se necessario.

Si noti che se si utilizza JavaScript il sul nome dell’elemento potrebbe causare problemi quando si tenta di fare riferimento all’elemento per nome. Usa invece il suo ID elemento di forma numerica, o racchiudi il nome della variabile tra virgolette singole e usalo come indice dell’array elements, ad esempio:

variable = document.forms.elements']; 

Come posso passare una variabile da Javascript a PHP?,

Poiché Javascript è (di solito) una tecnologia lato client e PHP è (di solito) una tecnologia lato server e poiché HTTP è un protocollo “stateless”, le due lingue non possono condividere direttamente le variabili.

È, tuttavia, possibile passare variabili tra i due. Un modo per ottenere ciò è generare codice Javascript con PHP e far sì che il browser si aggiorni, passando variabili specifiche allo script PHP. L’esempio seguente mostra esattamente come farlo: consente al codice PHP di catturare l’altezza e la larghezza dello schermo, qualcosa che normalmente è possibile solo sul lato client.,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *