Ultimo aggiornamento: 1.11.2015
Uno dei principali modi in cui i dati vengono trasmessi a un sito Web è attraverso l'elaborazione di moduli. I moduli sono speciali elementi di markup HTML che contengono vari elementi di input: campi di testo, pulsanti e così via. E con l'aiuto dei dati del modulo, possiamo inserire alcuni dati e inviarli al server. E il server sta già elaborando questi dati.
La creazione di moduli comprende i seguenti aspetti:
Crea un elemento
L'attributo action="login.php" dell'elemento del modulo indica che i dati del modulo verranno elaborati dallo script. login.php, che sarà con il file form.php in una cartella. E l'attributo method="POST" indica che il metodo POST verrà utilizzato come metodo di trasferimento dei dati.
Ora creiamo un file login.php, che avrà il seguente contenuto:
La tua password: $password"; ?>
Per ottenere i dati del modulo, viene utilizzata la variabile globale $_POST. Rappresenta un array associativo di dati inviati utilizzando il metodo POST. Usando le chiavi, possiamo ottenere i valori inviati. Le chiavi in questo array sono i valori degli attributi del nome dei campi di input del modulo.
Poiché l'attributo del nome del campo di input di accesso è impostato su login ( ), quindi nell'array $_POST il valore di questo campo rappresenterà la chiave "login": $_POST["login"]
E poiché ci sono situazioni in cui il campo di input non verrà impostato, ad esempio, quando si passa direttamente allo script: http://localhost:8080/login.php. In questo caso, è opportuno verificarne la presenza prima di elaborare i dati utilizzando la funzione isset(). E se la variabile è impostata, la funzione isset() restituirà true .
Ora possiamo passare al modulo:
E premendo il pulsante, i dati inseriti con il metodo POST verranno inviati allo script login.php:
Non è necessario inviare i dati del modulo a un altro script, è possibile elaborare i dati del modulo nello stesso file del modulo. Per fare ciò, cambia il file form.php nel seguente modo:
Entra nel sito
La sicurezza dei dati
L'organizzazione della sicurezza dei dati è di grande importanza in PHP. Diamo un'occhiata ad alcuni semplici meccanismi che possono migliorare la sicurezza del nostro sito web.
Ma prima, prendiamo il modulo dall'ultimo argomento e proviamo a inserire alcuni dati in esso. Ad esempio, inserisci nel campo di accesso "", e nel campo della password il testo "
parola d'ordine
":Dopo aver inviato i dati al markup html, verrà iniettato un codice javascript che visualizza una finestra di messaggio.
Per evitare questi problemi di sicurezza, dovresti usare la funzione htmlentities():
If(isset($_POST["login"]) && isset($_POST["password"]))( $login=htmlentities($_POST["login"]); $password = htmlentities($_POST["password" ]); echo "Il tuo login: $login
La tua password: $password"; )
E anche dopo aver inserito il codice html o javascript, tutti i tag verranno sottoposti a escape e otterremo il seguente output:
Un'altra funzione: la funzione strip_tags() ti consente di escludere completamente i tag html:
If(isset($_POST["login"]) && isset($_POST["password"]))( $login=strip_tags($_POST["login"]); $password = strip_tags($_POST["password" ]); echo "Il tuo login: $login
La tua password: $password"; )
Il risultato del suo lavoro con lo stesso input sarà il seguente output.
Buona giornata. Alexey Gulynin è in contatto. Nell'ultimo articolo, hai appreso della serializzazione in php . In questo articolo vorrei parlare di come lavorare con moduli in PHP. Il linguaggio PHP è progettato per la programmazione di script web e l'elaborazione dei moduli è forse il luogo più importante in questo processo. Ora non ci sono siti che non avrebbero, ad esempio, la registrazione o un modulo di feedback, o un questionario. Forum, negozi online, aggiunta di un commento, invio di un messaggio su un social network: tutto questo è l'elaborazione dei dati inseriti nei campi del modulo. Vediamo con un esempio come moduli di processo in PHP.
Attueremo un semplice compito: devi creare 2 campi (nome e cognome), passare questi dati allo script action.php, di conseguenza dovrebbe apparire un saluto "Benvenuto, cognome nome". Chi ha dimenticato come vengono creati i moduli e quali campi ci sono, puoi vedere. Creiamo un file test.html:
Attiro la vostra attenzione sul fatto che il file action.php (nel nostro caso) deve trovarsi nella stessa cartella del file test.html. Qui puoi specificare percorsi relativi e assoluti. Fai attenzione, molti errori sono correlati al percorso errato dello script del gestore del modulo.
Creiamo un file action.php con il seguente contenuto:
Se ora apriamo il file test.html, riempiamo i campi del modulo e clicchiamo sul pulsante, finiremo nel file action.php, dove verrà visualizzato un messaggio. In questo caso, il browser accede allo script action.php e lo passa attraverso il "?" tutti i valori degli attributi del nome che si trovano all'interno dei tag , divisi da & . Nota cosa viene sostituito da $_SERVER .
Possiamo risolvere il nostro problema analizzando la stringa QUERY_STRING usando le funzioni standard di manipolazione delle stringhe PHP, ma è meglio usare un altro meccanismo: questo è l'uso dell'array $_REQUEST. Tutti i dati ricevuti dai campi del modulo, PHP li inserisce nell'array $_REQUEST, indipendentemente da come i dati sono stati inviati: POST o GET (puoi scoprirlo tramite $_SERVER["REQUEST_METHOD"] ). Lascia che ti ricordi come differiscono questi metodi:
Il metodo GET è pubblico, il metodo POST è privato, cioè differiscono nel modo in cui i parametri vengono passati. Esempio:
1) Se utilizziamo il metodo post: mysite.ru/request.php.
2) Se utilizziamo il metodo get: mysite.ru/request.php?myname="Alex"&surname="Gulynin".
Inoltre, oltre all'array $_REQUEST, PHP crea gli array $_GET e $_POST. Attuiamo ora il nostro compito, sulla base delle conoscenze acquisite:
Se ora compiliamo il modulo e clicchiamo sul pulsante, vedremo che lo script action.php ci saluta per cognome e nome. Tutto funziona correttamente.
Qui va tutto bene, ma se cambiamo il nome dello script, dovremo apportare modifiche al file test.html. Modifichiamo il file action.php in modo che, accedendovi, o venga visualizzato un form quando non abbiamo inviato nulla, oppure un saluto quando abbiamo premuto il pulsante:
Ora non dipendiamo dal nome dello script, perché impostalo tramite la variabile di ambiente $_SERVER["SCRIPT_NAME"]. La costruzione =$_SERVER["SCRIPT_NAME"]?> equivale alla costruzione .
Oltre alla variabile di ambiente SCRIPT_NAME, ce ne sono molte altre.
Oggi lavoreremo alla creazione di un bellissimo modulo di feedback HTML per un sito Web che funziona su PHP e dispone di una protezione antispam integrata. Non sono necessarie conoscenze particolari, saranno sufficienti le basi dell'html e della logica elementare. Fornirò file già pronti che potrai inserire nel sito senza modifiche o adattarti alle tue esigenze.
Di recente ho scritto un articolo su come creare un plug-in Contact Form 7. Puoi anche creare facilmente un modulo di feedback su Joomla e altri CMS popolari.
Ma che dire dei siti che non utilizzano CMS popolari? - Resta da fare tutto a mano.
Inoltre, per WordPress è possibile utilizzare il feedback senza plug-in. Plugin extra creano un carico notevole sul server e il loro rifiuto permette di velocizzare il sito.
Puoi ordinare l'installazione e la configurazione del modulo finito per 500 rubli qui (questo è per coloro che sono troppo pigri per lavorare con le mani o l'abilità non è sufficiente).
Il principio del modulo di feedback su html
Il nostro modulo avrà 5 campi di inserimento dati: nome, indirizzo e-mail, numero di telefono, indirizzo del sito Web, testo del messaggio (puoi eliminarli o modificarli tu stesso).
Tutti i campi, ad eccezione dell'indirizzo del sito Web, saranno obbligatori (puoi anche configurarlo tu stesso).
Per i campi con un indirizzo email e un sito web verrà effettuata una verifica obbligatoria della correttezza dei dati inseriti.
La forma finale di comunicazione sarà simile a questa:
Un modulo di contatto creato in html richiede 3 elementi per funzionare.
Il primo è responsabile della struttura del form stesso, del tipo e del numero dei campi di inserimento dati. Questo è il normale codice html.
Il secondo è responsabile del trattamento dei dati che l'utente inserisce nei campi del modulo. Determina cosa, dove e in quale forma inviare dopo aver premuto il pulsante di invio. Per l'implementazione viene utilizzato uno speciale script PHP.
Il terzo è responsabile dell'apparenza. Imposta la dimensione e la posizione dei campi di immissione dati, aggiunge vari colori ed effetti. È tutto impostato dagli stili CSS.
Versione demo del modulo
Ti guideremo passo dopo passo nella configurazione di ciascuno di questi elementi.
Creazione di un layout HTML
Per non rendere l'articolo troppo lungo e per non aggiungere ogni elemento separatamente, fornirò il codice html completo e di seguito descriverò ogni blocco e le possibili modifiche.
Il tag viene utilizzato per designare i moduli in html.
, all'interno del quale vengono inseriti i parametri necessari.Cominciamo con la prima riga.
classe="modulo_contatto"- specificare la classe per impostare gli stili CSS in futuro.
action="contact-form.php"- specificare il nome del file con lo script che elaborerà i dati del modulo e invierà il messaggio. Se il file si trova nella stessa cartella della pagina con il modulo, è sufficiente specificare solo il nome del file, se si trova in un'altra cartella, sarà necessario specificare il percorso del file.
Seguono 4 blocchi.
Responsabile della visualizzazione dei campi di immissione dei dati, i nomi chiariscono chi è responsabile di cosa. I campi stessi vengono visualizzati utilizzando i tag , all'interno del quale sono specificate le seguenti caratteristiche:
genere– è responsabile del tipo di dati inseriti, il testo è in chiaro, l'e-mail è un indirizzo e-mail, la correttezza di tali campi viene automaticamente verificata (@ deve essere presente), tel è un numero di telefono, url è l'indirizzo di un sito web.
Nome- il nome dell'elemento stesso, è necessario che lo script sappia utilizzare i dati di ogni campo. Se crei più campi dello stesso tipo, devi assegnare un nome a ciascun campo.
segnapostoè un suggerimento all'interno del campo, testo che sostituisce il campo vuoto dell'elemento. Può essere modificato o cancellato, non pregiudica il funzionamento del modulo.
Necessario- Questo parametro indica che il campo è obbligatorio. Puoi decidere tu stesso quali elementi sono necessari e quali no.
modello="(http|https)://.+"- questa costruzione serve per verificare la correttezza del campo del sito, indica che l'indirizzo deve contenere http: // testo o https: // testo, altrimenti ci sarà un errore.
Alcuni campi hanno una descrizione comando che appare quando viene selezionato un elemento. È ferita , dove form_hint è la classe dell'elemento (le sue proprietà sono scritte in CSS). Puoi specificare qualsiasi testo nella descrizione comando per ogni campo del modulo di contatto. Se non hai bisogno di tale funzionalità, elimina l'intero tag.
I campi per l'inserimento del messaggio stesso sono contrassegnati da un tag
Protezione da spam- un campo invisibile chiamato name=bezspama. Ha lo stile display:none, il che significa che il campo è invisibile alle persone, ma i bot lo riempiranno automaticamente.
E l'elemento finale di qualsiasi modulo è il pulsante per l'invio di un messaggio, è impostato dal tag , che dispone di una propria classe per la personalizzazione dell'aspetto e del tipo di "invio".
Per aggiungere o rimuovere campi, è sufficiente rimuovere quelli non necessari o inserirne di nuovi per analogia con quelli esistenti, specificando per essi tutte le proprietà e i nomi.
Stile CSS
Se guardi nel browser cosa è successo, vedrai qualcosa di goffo e poco attraente. Per poter ottenere un bel modulo di feedback, dovremo lavorare sui suoi stili (l'html non sarà sufficiente).
Se possiedi CSS, puoi impostare il design per tutti gli elementi del modulo senza problemi, non hai nemmeno bisogno del mio aiuto qui.
Se non hai familiarità con gli stili, ti darò semplicemente un file già pronto in cui tutto è già scritto in modo tale che il tuo modulo sia identico a quello nell'esempio.
Gli stili possono essere aggiunti in due modi:
- Copia il contenuto del file nel file style.css che è già sul tuo sito (aggiungi fino alla fine)
- Carica il file che ho dato al tuo hosting e collegalo.
I file di stile sono inclusi nel codice seguente posto all'interno
. Se il file di stile (styles.css) non si trova nella stessa cartella della pagina html, scrivici il percorso completo.Nel file di stile che ho fornito, ogni elemento è firmato, quindi puoi apportare modifiche ad esso - cambiare colori, dimensioni, forme, effetti. Avendo le conoscenze di base, puoi facilmente modificarlo.
Configurazione del codice PHP (protezione antispam aggiunta)
Come per gli stili, ti fornirò un codice già pronto che elabora il modulo di contatto HTML e protegge dallo spam. Questo file è personalizzato per una configurazione specifica e se vuoi impostare nuovi campi o rimuovere quelli esistenti, dovrai modificarlo. Pertanto, ti dirò come funziona in modo che tu capisca cosa deve essere cambiato.
Per i siti che utilizzano la codifica Windows-1251 e php versione 5.4+, sarà necessario aggiungere al codice un'aggiunta relativa alla funzione htmlspecialchars. Lo mostrerò di seguito. Altrimenti, al posto del cirillico, arriveranno campi vuoti.
Ricorda, nelle proprietà del modulo (nel file html) abbiamo specificato il parametro action="contact-form.php". Devi creare un file chiamato contact-form.php e inserire il codice qui sotto.
\r\n Risposta a: $email \r\n"; if (mail($indirizzo, $sub, $mes, $da)) ( header("Aggiorna: 5; URL=https://sito") ; eco "
";) else ( header("Aggiorna: 5; URL=https://sito"); echo " ";) ) exit; /* Esce senza un messaggio se il campo bezspama è pieno di spam bot */ ?>/* Imposta variabili */ $nome = caratteri htmlspeciali ($_POST ["nome"]); $email = caratteri htmlspeciali ($_POST ["email"]); $tel = caratteri htmlspeciali ($_POST ["tel"]); $sito web = caratteri htmlspeciali ($_POST ["sito web"]); $messaggio = caratteri htmlspeciali ($_POST ["messaggio"]); $bezspama = caratteri htmlspeciali ($_POST ["bezspama"]); /* Il tuo indirizzo e oggetto del messaggio */ $sottotitoli = "Messaggio dal sito XXX"; /* Formato lettera */ $mi = "Messaggio dal sito XXX.\n Nome mittente: $nome Indirizzo email del mittente: $email Telefono del mittente: $tel Sito del mittente: $sito web Messaggio di testo: $messaggio" ; se (vuoto ($bezspama ) ) /* Valutazione del campo bezspama - deve essere vuoto */ /* Invia un messaggio utilizzando la funzione mail() */ $da = "Da: $nome<$email>\r\n Risposta a: $email \r\n"; if (mail ($indirizzo , $sub , $mes , $da ) ) ( intestazione(); eco "
La lettera è stata inviata, in 5 secondi verrai riportato alla pagina XXX" ; } altro( intestazione( "Aggiorna: 5; URL=https://sito") ; eco "
La lettera non è stata inviata, dopo 5 secondi tornerai alla pagina AAAA" ; } Uscita; /* Esci senza un messaggio se il campo bezspama è pieno di bot spam */ |
Prima di tutto, dobbiamo impostare le variabili che verranno elaborate dal codice php. Per non confonderci, assegniamo loro gli stessi nomi che avevano nel modulo stesso, solo tutte le variabili iniziano con il segno $. Il comando di assegnazione stesso si presenta così:
$titolo = caratteri htmlspeciali($_POST["titolo"]);
$titolo=htmlcaratteri speciali($_POST ["titolo"]); |
Se hai aggiunto altri campi di dati, aggiungi i loro nomi nel blocco delle variabili.
Non tutte le variabili sono prese dal modulo. Come minimo, l'indirizzo e-mail a cui verrà inviata la lettera (il tuo indirizzo) è indicato separatamente. In questo caso, questa è la variabile $address: inserisci il tuo indirizzo email nel suo valore.
Inoltre, in questo esempio, il valore della variabile $sub è impostato in modo esplicito: fornirà l'oggetto della lettera. Puoi aggiungere l'oggetto del messaggio al modulo HTML come campo di testo (come il nome) e prendere il valore di questa variabile da lì.
Nel blocco formato lettera puoi configurare il messaggio che riceverai. Può differire da quanto scritto nel campo textarea chiamato messaggio. Ho appena creato un'altra variabile $mes e ho incluso testo aggiuntivo e dettagli importanti sul mittente (nome, e-mail, telefono, sito Web). Puoi configurare questa parte come preferisci.
Affinché le lettere che ricevi siano firmate con il nome del mittente e includano il loro indirizzo di ritorno e non l'indirizzo del server in cui si trova il tuo file php, impostiamo una nuova variabile $from, che include il nome ed e-mail del mittente della lettera.
Quindi la funzione di posta invia una lettera in base ai parametri specificati. In caso di invio corretto, viene visualizzato un messaggio che informa che la lettera è stata inviata e dopo 5 secondi l'utente viene reindirizzato a una pagina del tuo sito (è possibile modificare l'indirizzo della pagina e il tempo di ritardo). Se non è stato possibile inviare la lettera, viene visualizzato un messaggio che la lettera non è stata inviata e dopo 5 secondi si passa alla pagina del sito, allo stesso modo è possibile impostare l'indirizzo e l'ora della pagina.
Inserimento di un modulo in una pagina di un sito web
Per inserire il modulo di feedback che hai creato, devi copiare il codice html del modulo e incollarlo nella parte di codice della pagina in cui vuoi visualizzare il feedback per il sito.
Ancora una volta, voglio ricordarti che se il file con il programma PHP non si trova nella stessa cartella della pagina in cui si trova il codice html, allora devi scriverne il percorso completo nel codice del modulo stesso , altrimenti non funzionerà, poiché il modulo non troverà il file del gestore.
Scarica i file del modulo di contatto
Antispam attivo con inserimento dati in campo
Gli spammer operano utilizzando vari strumenti software e alcuni bot possono bypassare la protezione con un campo vuoto, che è integrato nella versione base. Se iniziano a infastidirti, puoi applicare invece o una semplice protezione aggiuntiva con l'inserimento dei dati in un campo speciale. Ad esempio, crea un'espressione matematica chiedendoti di inserire una risposta o poni una semplice domanda. Non richiederà un grande cambiamento nella forma.
Ti mostrerò come modificare il codice del modulo e il gestore PHP per utilizzare questo metodo anti-spam. Se lo desideri, non puoi modificare la protezione con un campo vuoto, ma aggiungi le righe appropriate al codice e avrai 2 metodi che funzionano contemporaneamente - in teoria, dovrebbe essere più efficiente.
Prima di tutto, dobbiamo aggiungere un campo di input e una domanda al codice HTML. Come base, abbiamo già la riga 25 (input name = “bezspama” ). Questo campo è invisibile. Lo trasformiamo in uno normale. Per fare ciò, cambia l'intera riga in questo blocco:
|
Invece dell'espressione matematica 2+2*2, puoi inserire qualsiasi dato: questa è una domanda visiva per l'utente. Dal campo di input, abbiamo rimosso lo stile display:none e aggiunto un riempimento obbligatorio.
Il passaggio successivo consiste nel modificare i dati nel gestore PHP in modo che controlli non la vuotezza di questo campo, ma la correttezza dei dati inseriti. Il nostro controllo è stato eseguito nella riga 25 dall'espressione empty ($bezspama ) . Cambiamo questa espressione e verificheremo l'uguaglianza del campo riempito con un numero predeterminato. Nel mio esempio, l'espressione matematica è 6, quindi l'intera stringa sarebbe simile a questa.
Non è un segreto che il modo più comune in cui una pagina html interagisce con un sito è attraverso un modulo. Il form (ovvero l'elemento html formato dal tag form) è utilizzato anche da servizi di posta elettronica gratuiti, negozi online e molti altri tipi di siti.
L'elaborazione di moduli semplici con PHP è facile. Tuttavia, di tanto in tanto è necessario elaborare un modulo contenente più campi dello stesso tipo, nonostante il loro numero possa variare in un ampio intervallo e il loro numero non sia noto in anticipo. PHP prevede in questi casi l'elaborazione di campi dello stesso tipo di un array di valori.
Diamo un'occhiata più da vicino alle opzioni per i diversi tipi di campi.
Campi di testo
Ai fini di questo articolo, i campi di testo si riferiscono a elementi creati da tag di input con un valore di parametro di tipo di testo e un tag di area di testo. È più semplice organizzare l'elaborazione di un modulo composto da diversi di questi campi. L'elenco seguente mostra il markup html per tale modulo.
Come puoi vedere dall'elenco, i nomi degli elementi del modulo, dal punto di vista di PHP, sono elementi di matrice. Pertanto, lo script PHP che elaborerà questo modulo tratterà tutti i numerosi campi di testo di questo modulo come un unico array. È possibile accedere ai singoli elementi tramite indice o enumerare utilizzando l'elenco e ciascun comando, come nell'esempio seguente.
n"; ?>
Interruttori
Le checkbox (checkbox) in questo articolo sono gli elementi creati dai tag di input con il valore del parametro type uguale a checkbox. Il modulo per l'utilizzo di un numero variabile di "interruttori" è costruito esattamente allo stesso modo. Si noti che la scelta di un particolare valore del pulsante di opzione (ovvero il valore della proprietà value) non è importante. Un esempio è mostrato nell'elenco seguente:
Tuttavia, l'elaborazione di tale modulo differisce dall'elaborazione descritta per i campi di testo. In questo caso, è necessario determinare se il visitatore del sito ha abilitato o meno l'uno o l'altro interruttore. Se incluso, esiste l'elemento corrispondente dell'array, in caso contrario è assente. Il seguente elenco è un esempio di script PHP che stampa i pulsanti di opzione abilitati:
Tasti della radio
Prima di descrivere l'elaborazione dei pulsanti di opzione, è necessario ricordare come funzionano. L'essenza dei pulsanti di opzione (elementi creati da tag di input con il valore del parametro tipo uguale a radio ) è che selezionando un pulsante, l'utente deseleziona automaticamente un altro pulsante dello stesso set. I pulsanti sono combinati in un set molto semplicemente: tutti i pulsanti del set hanno lo stesso nome.
Ma i valori (cioè i parametri del valore) dei pulsanti nel set sono diversi. E il valore del pulsante selezionato con il nome del set verrà inviato al sito. Come per i campi di testo e i pulsanti di opzione, i nomi dei set di pulsanti di opzione devono essere formattati come nomi di elementi dell'array in PHP. Un esempio di tale modulo è mostrato nel seguente elenco:
La gestione dei pulsanti di opzione combina idee, utilizzando sia i campi di testo che i pulsanti di opzione nell'elaborazione. Se l'autore della pagina html non ha impostato un valore predefinito e l'utente non ha selezionato un pulsante specifico nel set di pulsanti di opzione, questo elemento non sarà nell'array (come per i pulsanti di opzione).
Se il pulsante è selezionato, l'elemento dell'array corrispondente conterrà il suo valore (come per i campi di testo). Di seguito è riportato un elenco di un esempio che gestisce un modulo con più set di pulsanti di opzione.
n"; ?>
Pertanto, non c'è nulla di complicato nell'elaborazione di moduli complessi.
JavaScript è bloccato nel tuo browser. Consenti JavaScript per il funzionamento di questo sito!
Lavorare con i moduli
I moduli HTML vengono utilizzati per inviare dati dall'utente della pagina Web al server. PHP fornisce una serie di strumenti speciali per lavorare con i moduli.
Variabili predefinite
PHP ha un numero di variabili predefinite che non cambiano quando tutte le applicazioni vengono eseguite in un particolare ambiente. Sono anche chiamate variabili d'ambiente o variabili d'ambiente. Riflettono le impostazioni dell'ambiente del server Web Apache, nonché le informazioni sulla richiesta di questo browser. È possibile ottenere i valori dell'URL, della stringa di query e di altri elementi della richiesta HTTP.
Tutte le variabili predefinite sono contenute nell'array associativo $GLOBALS. Oltre alle variabili di ambiente, questo array contiene anche variabili globali definite nel programma.
Esempio 1
"; ?>
Di conseguenza, sullo schermo apparirà un elenco di tutte le variabili globali, comprese le variabili di ambiente. Quelli più comunemente usati sono:
Variabile | Descrizione | Contenuto |
---|---|---|
$_SERVER["HTTP_USER_AGENT"] | Nome e versione del cliente | Mozilla/5.0 (compatibile; Googlebot/2.1; +http://www.google.com/bot.html) |
$_SERVER["INDIRIZZO_REMOTO"] | indirizzo IP | 144.76.94.14 |
getenv("HTTP_X_FORWARDED_FOR") | Indirizzo IP client interno | |
$_SERVER["RICHIESTA_METODO"] | Metodo di richiesta (GET o POST) | OTTENERE |
$_SERVER["QUERY_STRING"] | Su una richiesta GET, i dati codificati sono passati insieme all'URL | |
$_SERVER["URL_RICHIESTA"] | Indirizzo client completo inclusa la stringa di query | |
$_SERVER["HTTP_REFERER"] | URL della pagina da cui è stata effettuata la richiesta | |
$_SERVER["PHP_SELF"] | Percorso del programma eseguibile | /indice.php |
$_SERVER["SERVER_NAME"] | Dominio | sito web |
$_SERVER["RICHIESTA_URI"] | Strada | /php/php_form.php |
Gestione dell'input dell'utente
Il gestore di input PHP può essere separato dal testo HTML contenente i moduli di input, oppure può essere posizionato sulla stessa pagina.
Esempio 2
Non c'è nessun pulsante di trasferimento dati qui, perché. un modulo composto da un campo viene inviato automaticamente alla pressione di un tasto
Quando si elabora un elemento con una selezione multivalore, per accedere a tutti i valori selezionati, è necessario aggiungere una coppia di parentesi quadre al nome dell'elemento. Per selezionare più elementi, tieni premuto il tasto Ctrl.
Esempio 3.1
ESEMPIO 3.1 RISULTATO:
Esempio 3.2
- "; foreach ($Elemento come $valore) echo "
- $valore"; eco "
Esempio 4. Accettazione di valori dalle caselle di controllo
$v) ( if($v) echo "Conosci il linguaggio di programmazione $k!"; else echo "Non conosci il linguaggio di programmazione $k.
"; } } ?>
ESEMPIO 4 RISULTATO:
Esempio 5
"; ?>È possibile elaborare i moduli senza preoccuparsi dei nomi dei campi effettivi.
Per fare ciò, puoi utilizzare (a seconda del metodo di trasferimento) l'array associativo $HTTP_GET_VARS o $HTTP_POST_VARS . Questi array contengono coppie nome/valore per ogni elemento del modulo inviato. Se non ti interessa, puoi usare l'array associativo $_REQUEST.
Esempio 6
"; ?>
Esempio 7. Gestione di un clic di un pulsante utilizzando l'operatore "@".
Utilizzando la funzione header(), inviando al browser l'intestazione "Location", è possibile reindirizzare l'utente ad una nuova pagina.
Per esempio:
header("Location: ex2.php"); ?>
Trasferimento di un file al server. Caricare un file. Caricamento
PHP ti consente di inviare file al server. Il modulo HTML per l'invio dei file deve contenere l'argomento enctype="multipart/form-data" .
Inoltre, il modulo deve avere un campo nascosto denominato max_file_size prima del campo di copia del file. Questo campo nascosto dovrebbe contenere la dimensione massima del file trasferito (di solito non più di 2 MB).
Il campo di trasferimento file stesso è un normale elemento INPUT con l'argomento type="file" .
Per esempio:
Dopo che un file è stato caricato sul server, gli viene assegnato un nome univoco e viene archiviato nella directory temporanea. Il percorso completo del file viene scritto in una variabile globale il cui nome corrisponde al nome del campo per il trasferimento di questo file. Inoltre, PHP memorizza alcune informazioni aggiuntive sul file passato in altre variabili globali:
Esempio 8
"; echo "dimensione: ".$_FILES["fileutente"]["dimensione"]."
"; echo "digita: ".$_FILES["fileutente"]["tipo"]."
"; } ?>
Esempi di caricamento di file sul server
In caso di problemi con la conversione del file caricato da parte del server, il simbolo con il codice 0x00 sostituito con uno spazio (carattere con codice 0x20), aggiungere al file httpd.conf dalla directory Apache (/usr/local/apache) le seguenti righe.