Registrul lateral formular php. PHP _SELF în atributul de acțiune al formularului

Adesea, pe site-urile Web puteți găsi pagini cu formulare HTML plasate pe ele. Formularele web sunt o modalitate convenabilă de a primi informații de la vizitatorii site-ului dvs. Un exemplu în acest sens este cartea de oaspeți, care oferă feedback vizitatorilor și dezvoltatorilor site-ului. Formularele sunt, de asemenea, convenabile pentru dezvoltatorii de site-uri atunci când dezvoltă un CMS, ceea ce le permite să mențină proprietatea principală a site-ului - relevanța. Acest articol este dedicat elementelor de bază ale creării formularelor HTML, procesării acestora și modalităților de a transfera date din formularele de ecran în scripturile PHP.

1) Creați un formular simplu

Etichete Și definiți începutul și sfârșitul formularului. Eticheta formular de pornire contine doua atribute: acțiuneȘi metodă. Atributul acțiune conține adresa URL a scriptului care trebuie apelată pentru a procesa scriptul. Atribut metodă spune browserului ce tip de solicitare HTTP să folosească pentru a trimite formularul; valori posibile POSTȘi OBȚINE.

cometariu

Principala diferență dintre metodele POST și GET este modul în care sunt transferate informațiile. În metoda GET, parametrii sunt trecuți prin bara de adrese, adică. în esență în antetul cererii HTTP, în timp ce în metoda POST parametrii sunt transmisi prin corpul solicitării HTTP și nu se reflectă în niciun fel în bara de adrese.

Sarcină: Să presupunem că trebuie să creați o listă derulantă cu ani de la 2000 la 2050.
Soluție: Trebuie să creați un formular HTML cu un element SELECT și un script PHP pentru procesarea formularului.

Discuţie:

Mai întâi, să creăm două fișiere: form.html și action.php. Fișierul form.html va conține un formular html cu o listă derulantă. În plus, valorile din listă pot fi specificate în două moduri:

I. Introducerea manuală a datelor:


2000
2001
2002
……………………………………………
2050

II. Introducerea datelor printr-o buclă:



După cum puteți vedea, al doilea exemplu cu o buclă este mai compact. Cred că nu este nevoie să furnizați scriptul de gestionare pentru acest formular, deoarece este procesat exact la fel ca un câmp de text, de exemplu. valorile listei pot fi preluate dintr-o matrice superglobală $_POST.

Descriere:

Să creăm un formular HTML pentru a trimite un fișier către server.




Acest formular html conține un element naviga, care deschide o casetă de dialog pentru selectarea unui fișier de încărcat pe server. Când apăsați butonul „Transferați fișierul”, fișierul este transmis scriptului de gestionare.

Apoi trebuie să scrieți scriptul pentru handler action.php . Înainte de a scrie handler-ul, trebuie să decidem în ce director vom copia fișierul:

cometariu

Dacă aveți încredere în utilizatorii să încarce orice fișiere pe serverul dvs., trebuie să fiți extrem de atenți. Atacatorii pot încorpora codul „rău” într-o imagine sau într-un fișier și îl pot trimite la server. În astfel de cazuri, trebuie să controlați strict descărcarea fișierelor.

Acest exemplu demonstrează crearea unui director și copierea unui fișier în acel director pe server.

De asemenea, aș dori să demonstrez un exemplu cu elementul Caseta de bifat. Acest element este ușor diferit de alte elemente, dacă nu unul dintre elemente Caseta de bifat’a nu este selectată, atunci variabila superglobală $_POST va returna valoarea goala:


Albastru
Negru
alb




Dacă aveți alte întrebări sau ceva nu este clar - bine ați venit la pagina noastră

Astăzi vom lucra la crearea unui formular HTML frumos de feedback pentru site, rulând în PHP și având încorporată protecție împotriva spamului. Nu aveți nevoie de cunoștințe speciale, elementele de bază ale html și logica de bază vor fi suficiente. Vă voi furniza fișiere gata făcute pe care le puteți introduce în site fără modificări sau adaptați nevoilor dumneavoastră.

Am scris recent un articol despre cum să faci unul folosind pluginul Contact Form 7. De asemenea, poți face cu ușurință un formular de feedback pe Joomla și alte CMS populare.

Dar ce ar trebui să facă site-urile care nu folosesc CMS popular? – Rămâne doar să faci totul manual.

În plus, utilizarea feedback-ului fără pluginuri este posibilă și pentru WordPress. Pluginurile inutile creează o sarcină semnificativă pe servere, iar eliminarea acestora vă permite să accelerați site-ul.

Puteți comanda instalarea și configurarea formularului finit pentru 500 de ruble aici (aceasta este pentru cei care sunt prea leneși să lucreze cu mâinile lor sau au abilități insuficiente).

Cum funcționează formularul de feedback HTML

Formularul nostru va avea 5 câmpuri pentru introducerea datelor - nume, adresa de e-mail, număr de telefon, adresa site-ului web, textul mesajului (le puteți șterge sau modifica singur).

Toate câmpurile, cu excepția adresei site-ului web, vor fi obligatorii (puteți configura acest lucru singur).

Pentru câmpurile cu adresa de e-mail și site-ul web, se va efectua o verificare obligatorie a corectitudinii introducerii datelor.

Forma finală de comunicare va arăta astfel:


Un formular de contact creat în html necesită 3 elemente pentru a funcționa.

Primul este responsabil pentru structura formularului în sine, tipul și numărul câmpurilor de introducere a datelor. Acesta este un cod HTML normal.

Al doilea este responsabil de prelucrarea datelor pe care utilizatorul le introduce în câmpurile formularului. Acesta stabilește ce, unde și sub ce formă să trimiți după ce butonul de trimitere este apăsat. Pentru implementare este folosit un script PHP special.

Al treilea este responsabil de aspect. Setează dimensiunea și locația câmpurilor de introducere a datelor, adaugă diferite culori și efecte. Toate acestea sunt stabilite de stilurile CSS.

Versiunea demo a formularului

Vă vom ghida prin configurarea fiecăruia dintre aceste elemente pas cu pas.

Crearea unui layout HTML

Pentru a nu face articolul prea lung și pentru a nu adăuga fiecare element separat, voi furniza codul html complet, iar mai jos voi descrie fiecare bloc și posibilele modificări.

Pentru a desemna formulare în HTML, se folosește o etichetă, în interiorul căreia sunt completați parametrii necesari.

Nume:

E-mail: format corect" [email protected]"

Telefon: format corect „+7-123-4567890”

Site: format corect „http://someaddress.com”

Mesaj text:

Trimite un mesaj

Nume:

E-mail:

Telefon:

Formatul corect este „+7-123-4567890”

Site:

Formatul corect este „http://someaddress.com”

Mesaj text:

Trimite un mesaj

Să începem cu prima linie.

class="contact_form" – specificați clasa pentru a seta stiluri CSS în viitor.

action=”contact-form.php” – specificați numele fișierului cu scriptul care va procesa datele formularului și va trimite mesajul. Dacă fișierul se află în același folder cu pagina cu formularul, atunci este suficient să indicați doar numele fișierului dacă se află într-un folder diferit, atunci va trebui să indicați calea către fișier.

Urmează 4 blocuri

Responsabil pentru afișarea câmpurilor pentru introducerea datelor, numele indică clar cine este responsabil pentru ce. Câmpurile în sine sunt afișate folosind etichete, în cadrul cărora sunt setate următoarele caracteristici:

Tip – responsabil pentru tipul de date introduse, text – text simplu, e-mail – adresa de e-mail, astfel de câmpuri sunt verificate automat pentru corectitudine (@ trebuie să fie prezente), tel – număr de telefon, url – adresa site-ului web.

Nume este numele propriu al elementului în sine, este necesar ca scriptul să știe să folosească datele fiecărui câmp. Dacă creați mai multe câmpuri de același tip, atunci trebuie să atribuiți fiecărui câmp propriul nume.

Substituent este un tooltip situat în interiorul câmpului, text care înlocuiește câmpul gol al elementului. Poate fi schimbat sau șters, nu afectează funcționarea formularului.

Necesar – acest parametru indică faptul că câmpul este obligatoriu. Puteți decide singur ce elemente sunt necesare și care nu.

pattern="(http|https)://.+” – această construcție este folosită pentru a verifica corectitudinea câmpului site-ului, indicând faptul că adresa trebuie să conțină http://text sau https://text, în caz contrar va exista eroare.

Unele câmpuri au un sfat explicativ care apare atunci când selectați un articol. Este afectat de , unde form_hint este clasa elementului (proprietățile sale sunt scrise în CSS). Puteți seta orice text în sfatul cu instrumente pentru fiecare câmp al formularului de contact. Dacă nu aveți nevoie de o astfel de caracteristică, eliminați întreaga etichetă.

Câmpul de introducere a mesajului în sine este marcat cu o etichetă, în care cols specifică numărul de caractere din lățimea câmpului, iar rândurile numărul de linii.

Anti-spam – câmp invizibil numit name=bezspama. Are stilul display:none - asta înseamnă că câmpul este invizibil pentru oameni, dar roboții îl vor completa automat.

Iar elementul final al oricărui formular este butonul pentru a trimite un mesaj, acesta este specificat de etichetă, care are propria sa clasă de personalizare a aspectului și a tipului „submit”.

Pentru a adăuga sau elimina câmpuri, eliminați-le pe cele inutile sau introduceți altele noi prin analogie cu cele existente, specificând toate proprietățile și numele acestora.

Proiectare cu stiluri CSS

Dacă te uiți la rezultat în browser, vei vedea ceva neîndemânatic și neatrăgător. Pentru a avea un formular frumos de feedback, va trebui să lucrăm la stilurile acestuia (html nu va fi suficient).

Dacă cunoașteți CSS, atunci puteți seta designul pentru toate elementele de formular fără probleme, nici măcar nu aveți nevoie de ajutorul meu.

Dacă nu sunteți familiarizat cu stilurile, atunci vă voi oferi pur și simplu un fișier gata făcut în care totul este deja scris în așa fel încât forma dvs. să fie identică cu cea din exemplu.

Puteți conecta stiluri în două moduri:

  • Copiați conținutul fișierului în fișierul style.css care este deja pe site-ul dvs. (adăugați la sfârșit)
  • Puneți fișierul pe care l-am dat pe hosting și conectați-l.
  • Fișierele de stil sunt conectate folosind următorul cod plasat în interior. Dacă fișierul cu stiluri (styles.css) nu se află în același folder cu pagina html, atunci scrieți calea completă către acesta.

    În fișierul de stil pe care l-am dat, fiecare element este etichetat, astfel încât să puteți face orice modificări - schimbați culorile, dimensiunile, formele, efectele. Având cele mai de bază cunoștințe, le puteți edita cu ușurință.

    Configurarea codului PHP (protecție anti-spam adăugată)

    Ca și în cazul stilurilor, vă voi oferi cod gata făcut care procesează formularul de feedback HTML și protejează împotriva spam-ului. Acest fișier este personalizat pentru o anumită configurație și dacă doriți să setați câmpuri noi sau să le eliminați pe cele existente, va trebui să-i faceți modificări. Prin urmare, vă voi spune cum funcționează, astfel încât să înțelegeți ce trebuie schimbat.

    Pentru site-urile care utilizează codificarea Windows-1251 și versiunea php 5.4+, va trebui să adăugați o adăugare la cod legată de funcția htmlspecialchars. Îl voi arăta mai jos. În caz contrar, câmpurile goale vor apărea în locul alfabetului chirilic.

    Rețineți, în proprietățile formularului (în fișierul html) am specificat parametrul action=”contact-form.php”. Trebuie să creați un fișier numit contact-form.php și să plasați codul de mai jos în el.

    În acest script, primim datele primite din formular folosind metoda POST (din matricea $_POST, deși am putea obține la fel de ușor aceste date de la $_REQUEST). Apoi verificăm numele de utilizator și parola și afișăm: „Bună, Admin!” sau „Acces refuzat”. Desigur, pentru a crea un sistem de autorizare a utilizatorilor pe site, trebuie să înveți și despre cookie-uri sau sesiuni (în principiu, și cookie-uri), dar despre ele vom vorbi puțin mai târziu, pentru că mai avem multe subiecte importante pe viitor.

    Acest articol intră în detaliu despre utilizarea variabilei PHP _SELF.

    Ce este variabila PHP _SELF?

    Variabila PHP _SELF returnează numele și calea fișierului curent (relativ cu rădăcina documentului). Puteți utiliza această variabilă în atributul de acțiune al formularului. Există și câteva nuanțe pe care ar trebui să le cunoașteți. Desigur, nu putem ignora aceste nuanțe.

    Să ne uităm la câteva exemple.

    Echo $_SERVER["PHP_SELF"];

    1) Să presupunem că fișierul dvs. php se află la următoarea adresă:

    Http://www.yourserver.com/form-action.php

    În acest caz, variabila PHP _SELF va conține:

    „/form-action.php”

    2) Să presupunem că fișierul dvs. php se află la această adresă:

    Http://www.yourserver.com/dir1/form-action.php

    PHP_SELF va fi:

    „/dir1/form-action.php”

    PHP _SELF în atributul de acțiune al formularului. De ce era nevoie de ea acolo?

    În mod obișnuit, variabila PHP _SELF este utilizată în atributul de acțiune al etichetei formular. Atributul acțiune specifică adresa la care va fi trimis conținutul formularului după confirmare (utilizatorul dă clic pe butonul cu tip="submit"). De regulă, aceasta este aceeași pagină din care a plecat formularul.

    Cu toate acestea, dacă redenumiți fișierul la care face referire formularul, va trebui să redenumiți numele fișierului în atributul acțiune, altfel formularul nu va funcționa.

    Variabila PHP _SELF vă va scuti de corecții inutile, deoarece adresa paginii va fi generată automat pe baza numelui fișierului.

    Să presupunem că aveți un fișier formular numit form-action.php și doriți ca formularul să fie trimis în același fișier după confirmare. De obicei ei scriu astfel:

    Dar puteți folosi variabila PHP _SELF în loc de form-action.php. În acest caz, codul va arăta astfel: