PHP și formulare. Forme HTML Schimbător simplu de pagini în php

În acest tutorial vom crea un comutator simplu de șabloane de design folosind variabile PHP și CSS.

Există multe comutatoare similare și am tradus deja lecții pe acest subiect de câteva ori. Puteți schimba complet designul folosind scripturi PHP speciale sau puteți utiliza JavaScript. În acest caz, scripturile schimbă pur și simplu foile de stil. Ce se întâmplă dacă trebuie să schimbăm doar câteva stiluri de pe pagină? Din această cauză, nu vom crea mai multe fișiere CSS diferite.

Din fericire, există o cale de ieșire din această situație. Variabilele PHP ne vor ajuta în acest sens, vor schimba unele linii din foaia de stil și, în consecință, designul nostru se va schimba.

În primul rând, trebuie să creăm un fișier PHP pentru conținutul paginii noastre. O vom face extrem de simplă, dar puteți dezvolta scheme de aplicații mai complexe. Vă rugăm să rețineți că foaia noastră de stil are o extensie .php și se află în folderul CSS.


< html >

Variabile PHP în Demo CSS
< meta http -equiv="Content -Type" content="text /html; charset = utf-8" />










Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.





Am creat ceva conținut cu o mică navigare care ne va permite să schimbăm șablonul (în cazul nostru antetul se va schimba).

Vom folosi un șir de interogare pentru a schimba tema curentă, pasând valoarea numelui în același fișier PHP. De asemenea, avem nevoie de script pentru a ne aminti ce design folosim în prezent și rămâne pe tot site-ul.

Introduceți următorul cod înainte de doctype:

sesiune_start();


$_SESSION[„șablon”] = $_GET[„șablon”];

) elseif (isset($_SESSION[„șablon”])) (
$template = "?template=".$_SESSION["șablon"];
) altfel (
$template = "";
}
?>

Deci, iată ce face acest cod. Deoarece folosim sesiuni, mai întâi trebuie să începem o sesiune. Apoi, verificăm dacă șirul de interogare conține valoarea unei variabile șablon. Dacă nu, atunci setăm variabila de sesiune la valoarea șablonului. Apoi creăm o variabilă locală cu un șir pe care îl vom adăuga la locația fișierului CSS. Ne va permite să trecem numele șablonului pe care vrem să-l folosim în fișierul PHP, să creăm stiluri CSS.

Acum putem crea un comutator de șabloane. Folosim numerele 1-3 pentru a identifica modelul dorit:

schimba tema:
1
2
3

De asemenea, trebuie să schimbăm locația fișierului PHP care este responsabil pentru generarea CSS-ului.

Acum suntem gata să creăm fișierul PHP care va fi responsabil pentru crearea șablonului nostru. Trebuie să anunțăm browserului chiar la începutul fișierului că stilurile CSS vor fi conținute aici. Următoarea linie de cod ne va ajuta în acest sens:

Antet("Tip conținut: text/css; set de caractere: UTF-8");

Acum puteți utiliza pur și simplu acest fișier ca o foaie de stil obișnuită cu posibilitatea de a insera variabile PHP. Acest lucru vă oferă oportunități grozave nu numai de a schimba aspectul paginii, ci și de a înlocui dinamic conținutul.

Deoarece avem doar 3 modele posibile, trebuie să ne asigurăm că numai acele 3 cifre pot fi folosite. Dacă dintr-o dată cineva încearcă să treacă o valoare diferită în șirul de interogare, șablonul implicit se va deschide în fața ochilor (în cazul nostru, este „1”).

$numardesabloane = 3;
dacă (isset($_GET[„șablon”])) (
$șablon = $_GET[„șablon”];
if ((!este_numeric($șablon)) || ($șablon > $numărde șabloane) || ($șablon< 0)) {
$şablon = 1;
) altfel (
$șablon = rotund($șablon);
}
) altfel (
$şablon = 1;
}

Acum avem o variabilă locală $template care conține numărul șablonului de utilizat. Pentru claritate, puteți verifica acest lucru folosindu-l ca comentariu la codul CSS:

Echo „/*====== șablon folosit: „.$șablon.” ======*/”;

După aceasta, puteți face referire la fișierul style.php și puteți vedea următoarea inscripție în codul sursă: „/*====== șablon folosit: 1 ======*/”. Dacă accesați style.php?template=2 în browser, atunci va exista o altă valoare.

Deoarece nu creăm o foaie de stil separată pentru fiecare șablon, trebuie doar să indicăm diferențele dintre modelele noastre într-un singur fișier. Putem scrie aceste modificări într-o matrice:

$css = matrice(
"header-background" => matrice(
1 => „url(../images/header-bg-1.jpg) no-repeat”,
2 => „url(../images/header-bg-2.jpg) no-repeat”,
3 => „url(../images/header-bg-3.jpg) no-repeat”
),
"header-h1-colour" => matrice(
1 => "#fff",
2 => "#fff",
3 => "#666"
),
"header-h1-font" => matrice(
1 => „bold normal 35px Helvetica, Arial, sans-serif”,
2 => „bold normal 35px Trebuchet MS, Arial, sans-serif”,
3 => „normal normal 35px Georgia, serif”
);

După cum puteți vedea, am alocat 3 elemente în matrice pentru fiecare selector CSS.

Acum trebuie doar să înlocuim în locul potrivit:

Fundal:;

iar în funcție de șablon, vom avea o imagine de fundal diferită.

Asta e tot ce ai nevoie. Utilizați aceste construcții în întregul fișier. În acest fel, puteți înlocui multe elemente diferite de pe pagină. Foaie de stil completă:

* {
marja:0;
umplutura:0;
}
corp (
dimensiunea fontului:.8em;
fundal:#F3F4F9;
familie de fonturi:Arial;
text-align:center;
}
#wrap (
lățime: 990px;
margine:0 auto;
text-align:stânga;
}
#nav (
umplutură: 10px 0;
lățime: 990px;
overflow:auto;
}
#logo (
float:stânga;
}
#switcher (
float:dreapta;
lățime: 170px;
text-align:right;
umplutură:45px 20px 0 0;
}
#switcher span (
float:stânga;
umplutură: 6px 10px 0 0;
}
#switcher a (
display:bloc;
float:stânga;
umplutură: 4px 8px;
chenar:1px solid #ccc;
fundal:#eee;
margine:0 0 0 2px;
}
#switcher a:hover (
fundal:#fff;
}
#header (
clar:ambele;
fundal:;
înălțime: 206px;
}
#header h1 (
text-align:right;
umplutură: 155px 25px 0 0;
culoare:;
font:;
}
#col1 (
lățime: 450px;
float:stânga;
margine:20px 0 0 0;
}
#col2 (
lățime: 450px;
float:dreapta;
margine:20px 0 0 0;
}

Asta este! Bucurați-vă!

Toate limbile lumii au cuvântul „comutator”
și numai în rusă - „comutați”!
Mihail Zadornov

Astăzi vom vorbi despre un astfel de element de sintaxă PHP, ca întrerupătoarele. Nu trebuie confundat cu o etichetă HTML , care creează și comutatoare. Aşa,

declarație switch

Sarcină: în funcție de ceea ce alege utilizatorul, afișați opțiunea necesară. Să ne uităm la cod:

Exemplul 1. Pagina HTML cu un formular:

Sondaj social

Introduceți nota în rusă:

Și iată codul de gestionare:

Exemplul 2. Manipulator de formulare (fișier cup6.php):

dacă (! $score ) (
ecou();
) elseif ($score == 1 ) (
ecou („Horor!”);
) elseif ($score == 2 ) (
echo ("Eșec %-(");
) elseif ($score == 3 ) (
ecou („Ud...”);
) elseif ($score == 4 ) (
echo ("Bine");
) elseif ($score == 5 ) (
echo("Foarte!");
) altfel (
ecou ( "Interesanta evaluare...");
}
?>

Cred că cu toții ați înțeles cu ușurință codul și ați înțeles cum funcționează. În general, acest cod este corect și nu există erori în el (se pare...), dar este foarte incomod: o grămadă de condiții, este destul de dificil să ții evidența unde se află totul. Ce să fac? Acum vom avea nevoie de comutatorul.

Comutatorul arată astfel:

Exemplul 3. Aspectul comutatorului:

comutator (expresie) (
valoare caz 1:
// comenzi care sunt executate dacă expresie = valoare1
pauză; // optional
valoare caz 2:
// comenzi care sunt executate dacă expresie = valoare2
pauză; // optional
...
implicit:
// comenzi care sunt executate dacă nu sunt găsite
// fără meciuri
pauză; // optional
}

Cum funcționează întregul bloc:

  1. Se calculează valoarea expresiei.
  2. Valoarea expresiei este verificată cu valoarea 1.
  3. Dacă sunt egale, atunci codul situat după comanda case value1 este executat:
  4. Dacă valoarea expresiei nu este egală cu valoarea 1, aceasta este verificată cu valoarea 2, 4 și așa mai departe.

Dacă nu au fost găsite potriviri, codul din blocul implicit este executat.

Blocul implicit este opțional: poate fi omis.

comanda break(); după ce fiecare bloc de cod este necesar, astfel încât după ce codul a fost executat, toate cazurile ulterioare sunt pur și simplu sărite.

Acum să schimbăm codul celui de-al doilea exemplu pentru a fi mai convenabil!

De exemplu, așa:
Exemplul 4. Cod modificat din exemplul 2 (fișier cup6.php):
ecou ( comutator ($score) ();
cazul 0:
„Încă trebuie să introduceți o evaluare...”
ecou („Horor!”);
pauză;
echo ("Eșec %-(");
cazul 0:
cazul 1:
ecou („Ud...”);
cazul 0:
pauză; cazul 2:
echo ("Bine");
cazul 0:
cazul 3:
cazul 4: );
cazul 0:
implicit:
ecou (
"Interesanta evaluare...");
}
?>

cazul 5:

echo ("Grozav!"

Ca aceasta. Simplu și convenabil. Rezultatele acestei lucrări sunt prezentate în figuri:

Înainte După

Conexiune

Este adesea mult mai convenabil să împărțiți codul în mai multe părți și să le afișați în locurile potrivite. Pentru a include conținutul unui fișier într-un alt fișier, putem folosi două comenzi: require(); și include();

cere()

Aspectul echipei:

Exemplul 6. Aspectul comenzii require(): PHP require("nume fișier"); Înainte de a începe scenariul.

găsește toate comenzile require(); Şi

le înlocuiește (comenzi) cu conținutul fișierului specificat PHPÎnlocuirea are loc o singură dată înainte ca scriptul să înceapă să ruleze, așa că nu veți putea include comanda require(); în corpul buclei!

Fișierul pe care îl includeți cu comanda require(); poate contine

Este adesea mult mai convenabil să împărțiți codul în mai multe părți și să le afișați în locurile potrivite. Pentru a include conținutul unui fișier într-un alt fișier, putem folosi două comenzi: require(); și include();

-cod. Acest cod va fi executat.

include()

Exemplul 7. Aspectul comenzii include():

include ("nume fișier");

Cum poate ajuta acest lucru în viață: pe aproape fiecare site există părți ale paginii care nu se schimbă pe tot site-ul - de exemplu, antetul (antetul) site-ului și subsolul (de jos) al site-ului.

Pentru a nu le imprima din nou pe fiecare pagină, ar trebui să le puneți în două fișiere separate (de exemplu, header.php și footer.php) și să le includeți după cum este necesar.

Codul pentru o astfel de pagină ar putea arăta, de exemplu, astfel:

Exemplul 8. Conectarea antetului și inferioară a paginii de la fișiere externe: require("header.php");
// aici este textul paginii curente
?>

require("footer.php");

Utilizarea require() în acest exemplu este de preferat, deoarece includem aceste fișiere o singură dată.

require_once() și inlcude_once()

Dacă trebuie să vă asigurați că un anumit fișier este inclus în cod o singură dată, atunci în loc de require(); și include();

trebuie să utilizați require_once(); și require_once();

Uită-te la exemple:
Exemplul 9. Folosirea dublă a include_once(): include_once("top.php");
?>

// ceva cod aici

include_once("top.php");

În exemplul anterior, fișierul top.php va fi inclus în codul paginii o singură dată, în ciuda faptului că în cod există două comenzi. PHP Asta este...

Ei bine, asta pare să fie tot ce am vrut să-ți spun pentru azi.

Vor fi probleme cu

- scrie-mi, te voi ajuta!

Ca teme: faceți un calculator simplu. Ca indiciu, iată o poză pentru tine:

Și iată un alt lucru: merită să stabiliți deloc astfel de „teme”?

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 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. definiți începutul și sfârșitul formularului. Eticheta formular de pornire contine doua atribute: definiți începutul și sfârșitul formularului. Eticheta formular de pornire acţiune metodă 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. . Atributul acțiune conține adresa URL a scriptului care trebuie apelată pentru a procesa scriptul. Atribut.

spune browserului ce tip de cerere HTTP să folosească pentru a trimite formularul; valori posibile

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.

$text = nl2br($_POST[„textul meu”]);
?>

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 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. acțiune.php. În dosar 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:

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:




Transferați fișierul Acest formular html conține un element răsfoiește , 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” acțiune.php, fișierul este transmis scriptului de gestionare.

Apoi trebuie să scrieți un script de gestionare . Înainte de a scrie handler-ul, trebuie să decidem în ce director vom copia fișierul:
{
if(isset($_FILES [ "fișierul meu" ]))
// Dacă fișierul există $catalog = "../imagine/" ; // Catalogul nostru
{
if (este_dir($catalog)) // Dacă un astfel de director există
$myfile = $_FILES [ "myfile" ][ "tmp_name" ];
// Fișier temporar $myfile_name = $_FILES [ "fișierul meu" ][ "nume" ]; // Nume de fișier if(! copie ($fișierul meu, $catalog)) echo „Eroare la copierea fișierului”
}
. $myfile_name // Dacă copierea fișierului a eșuat
}
?>

spune browserului ce tip de cerere HTTP să folosească pentru a trimite formularul; valori posibile

else mkdir (""../imagine/" );

// Dacă nu există un astfel de director, îl vom crea

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.. Acest element este ușor diferit de alte elemente, dacă nu unul dintre elemente Acest exemplu demonstrează crearea unui director și copierea unui fișier în acel director pe server.’a nu este selectată, atunci variabila superglobală 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ă va returna valoarea goala:


Albastru
Negru
Alb

if (!empty($_POST [ "culoarea mea" ])) echo $_POST [ "culoarea mea" ]; // Dacă este selectat cel puțin 1 element
altfel ecou „Selectați valoarea”;
?>




Dacă aveți alte întrebări sau ceva nu este clar - bine ați venit pe site-ul nostru

Nu este un secret că cel mai comun mod în care o pagină HTML interacționează cu un site web este un formular. Formularul (adică elementul HTML format din eticheta form) este folosit și de serviciile de e-mail gratuite, magazinele electronice și multe alte tipuri de site-uri.

Procesarea formularelor simple folosind PHP este ușoară. Cu toate acestea, din când în când, este nevoie să se prelucreze un formular care conține mai multe câmpuri de același tip, în ciuda faptului că numărul acestora poate varia într-o gamă largă și numărul lor nu este cunoscut în prealabil. Pentru astfel de cazuri, PHP prevede prelucrarea câmpurilor de același tip ca o matrice de valori.


Să aruncăm o privire mai atentă la opțiunile pentru diferite tipuri de câmpuri.

Câmpuri de text

În acest articol, câmpurile de text se referă la elemente create de etichetele de intrare cu o valoare a parametrului de tip text și o etichetă textarea. Cel mai ușor este să organizați procesarea unui formular format din mai multe astfel de câmpuri. Lista de mai jos arată marcajul HTML pentru un astfel de formular.






După cum puteți vedea din listă, numele elementelor de formular, din punct de vedere PHP, sunt elemente de matrice. Prin urmare, scriptul PHP care va procesa acest formular va trata toate câmpurile de text ale acestui formular ca o singură matrice. Elementele individuale pot fi accesate prin index sau enumerate folosind lista și fiecare comenzi, ca în exemplul următor.

n"; ?>

Comutatoare

În acest articol, casetele de selectare sunt elemente create în etichetele de intrare cu parametrul de tip setat la casetă de selectare . Formularul pentru utilizarea unui număr variabil de „comutatoare” este construit exact în același mod. Rețineți că alegerea valorii specifice butonului radio (adică valoarea proprietății valorii) nu este importantă. Un exemplu este prezentat în lista de mai jos:






Cu toate acestea, procesarea unui astfel de formular diferă de procesarea descrisă pentru câmpurile de text. În acest caz, este necesar să se determine dacă un vizitator al site-ului a activat acest sau acel comutator. Dacă este activat, atunci elementul de matrice corespunzător există; dacă nu, atunci lipsește. Următoarea lista este un exemplu de script PHP care tipărește butoanele radio activate:

Butoane radio

Înainte de a descrie procesarea butoanelor radio, este necesar să ne amintim cum funcționează acestea. Esența butoanelor radio (elementele create de etichetele de intrare cu valoarea parametrului tip egală cu radio) este aceea că prin selectarea unui buton, utilizatorul deselectează automat un alt buton din același set. Butoanele sunt combinate într-un set foarte simplu: toate butoanele din set au același nume.

Dar valorile (adică parametrii de valoare) butoanelor din set sunt diferite. Iar valoarea butonului selectat cu numele setului va fi trimisă pe site. La fel ca în cazul câmpurilor de text și al butoanelor radio, numele seturilor de butoane radio ar trebui să fie formatate ca nume ale elementelor de matrice în PHP. Un exemplu de astfel de formă este dat în următoarea listă:

// primul set de butoane
// al doilea set de butoane
// al treilea set de butoane

Procesarea butoanelor radio combină ideile de utilizare atât a câmpurilor de text, cât și a butoanelor radio în procesare. Dacă autorul paginii html nu a setat o valoare implicită, iar utilizatorul nu a selectat un anumit buton din setul de butoane radio, atunci acest element nu va fi în matrice (ca pentru butoanele radio).

Dacă butonul este selectat, atunci elementul de matrice corespunzător va conține valoarea sa (ca și pentru câmpurile de text). Mai jos este un exemplu de listare care procesează un formular cu mai multe seturi de butoane radio.

n"; ?>

Astfel, nu este nimic complicat în prelucrarea formelor complexe.