Rezultate pentru tag: distr
Legea conservării impulsului.
Impulsul forţei. Impulsul punctului material. Legea conservării impulsului. Exemple.
Interferenţa undelor.
Interferenţa undelor mecanice. Unde staţionare. Formarea ventrelor si nodurilor.
Structura substanţei.
Structura substanţei. Ipoteza atomică. Numarul lui Avogadro. Molul.
Teoria cinetico-moleculara: fundamente.
Principiul echipartiţiei energiei pe grade de libertate. Formula fundamentală a teoriei cinetico-moleculare.
Mărimile câmpului electric. Capacitatea electrică.
Potenţialul electric, tensiunea electrică, lucrul mecanic electric. Energia potenţială electrostatică. Capacitatea electrică.
Ipotezele Planck şi Einstein.
Ipoteza Planck: cuantele de energie. Ipoteza Einstein: fotonul. Explicarea efectului fotoelectric cu formula Einstein şi modelul corpuscular.
Configurația electronică a elementelor din primele 3 perioade (Z 1-18)
Straturi electronice, substraturi electronice, orbitali. Spin electronic. Configurația electronică. Reguli de ocupare cu electroni a straturilor şi substraturilor. Principiul lui Pauli. Regula lui Hund.
Forma nucleului. Forţa nucleară.
Compoziţia, forma şi densitatea nucleului. Forţa nucleară. Defectul de masă.
Legătura covalentă şi compuşii moleculari
Legături covalente. Compuşi moleculari. Legături covalente polare. Molecule polare – molecula de apă şi molecula de acid clorhidirc.
Proprietăţile apei
Molecula de apă. Proprietățile apei. Legături de hidrogen. Dipoli. Gheța. Solubilitate, punct de topire, punct de fierbere.
Forţele dipol-dipol şi forţele de dispersie London
Forțe intermoleculare. Legătura de hidrogen, forțe dipol-dipol, forțe de dispersie London, forțe van der Waals. Punct de fierbere, punct de topire, stare de agregare, electronegativitate.
Soluţii. Dizolvarea compuşilor ionici şi moleculari în apă.
Soluţii. Amestecuri omogene şi amestecuri eterogene. Solvent/dizolvant şi solut/dizolvat/solvat. Soluţii lichide, gazoase şi solide. Solubilitate. Factorii care influenţează solubilitatea. Apa – cel mai bun solvent. Dizolvarea. Dizolvarea compuşilor ionici în apă. Dizolvarea substanţelor polare în apă.
Înmulţirea şi împărţirea numerelor întregi
Operaţii cu numere întregi. Înmulţirea numerelor întregi. Împărţirea numerelor întregi. Regula semnelor.
Înmulțirea numerelor reale (1)
Produsul numerelor reale de forma , reguli de calcul cu radicali.
Descompuneri în factori
Descompunerea în factori. Metode de descompunere în factori: metoda factorului comun, formule de calcul prescurtat și metode combinate.
Arene – nomenclatură, clasificare şi proprietăţi fizice
Hidrocarburi aromatice. Structuri de rezonanţă (structuri limită). Benzenul. Modelul Kékulé. Structura inelului benzenic. Caracter aromatic. Clasificarea arenelor. Nomenclatură. Poziţiile orto-, meta-, şi para-. Proprietăţi fizice.
Legături covalente în compuşii organici
Tipuri de catene de atomi de carbon. Tipuri de legături covalente în compuşii organici. Orbitali moleculari de legătură. Hibridizare. Orbitali hibrizi. Hibridizare sp3. Hibridizare sp2. Hibridizare sp. Caracteristicile legăturilor covalente. Legătură σ, legătură π, geometrie tetraedrică, geometrie trigonal-planară, geometrie liniară.
Proteine
Aminoacizi – structură şi nomenclatură. Peptide şi polipeptide. Reacţia de policondensare a aminoacizilor. Legătura peptidică. Clasificarea proteinelor. Funcţii. Proprietăţi fizice. Proteine simple şi proteine conjugate. Grupe prostetice. Denaturarea proteinelor. Factori denaturanţi.
Înmulțirea numerelor raționale
Înmulțirea numerelor raționale scrise sub formă de fracție ordinară.
Înmulțirea, împărțirea și ridicarea la putere a numerelor reale reprezentate prin litere
Operații cu numere reale reprezentate prin litere. Înmulțirea numerelor reale reprezentate prin litere. Împărțirea numerelor reale reprezentate prin litere. Ridicarea la putere a numerelor reale reprezentate prin litere.
Mulțimea numerelor raționale
Numere raționale. Mulțimea numerelor raționale. Forme de scriere a unui număr rațional. Transformarea fracțiilor ordinare în fracții zecimale.
Energia de activare. Teoria complexului activat.
Redistribuirea legăturilor chimice în timpul unei reacţii. Ciocniri eficace. Ciocniri ineficace. Energie de activare. Stare de tranziţie sau complex activat. Energia potenţială a complexului activat. Reprezentarea grafică a energiei de activare pentru o reacţie endotermă şi pentru o reacţie exotermă. Energia de activare a reacţiei directe şi energia de activare a reacţiei inverse. Teoria complexului activat. Condiţia geometrică şi condiţia energetică pentru ciocniri eficace.
Operații cu numere naturale. Înmulțirea
Înmulțirea numerelor naturale. Proprietățiile înmulțirii.
Înmulțirea numerelor naturale. Factor comun
Definiția factorului comun. Scoaterea factorului comun
Înmulțirea vectorilor cu scalari
Înmulțirea unui vector cu un scalar. Proprietăți ale înmulțirii vectorilor cu scalari.
Operaţii cu şiruri convergente
Operaţii cu şiruri convergente: limita sumei a două şiruri convergente, limita produsului, limita câtului, limita unei puteri.
Operaţii cu limite de funcţii
Operaţii cu limite de funcţii: adunarea, înmulţirea, câtul, ridicarea la putere.
Inele
Noţiunea de inel. Inel comutativ. Exemple de inele.
Corpuri
Noţiunea de corp. Corp comutativ. Exemple de corpuri.
Variabile aleatoare
Variabile aleatoare: tabelul de distribuţie, media, modulul, dispersia şi amplitudinea unei variabile aleatoare.
Elemente de formulare HTML
<form> Definește un formular HTML pentru introducerea utilizatorului.
Cel mai important element de formă este elementul <input>.
Elementul <input> poate fi afișat în mai multe moduri, în funcție de atributul type.
Dacă atributul type este omis, câmpul de intrare primește tipul implicit: "text".
Elementul <select> definește o listă derulantă (drop-down list).
Elementul <option> definește o opțiune care poate fi selectată.
Utilizați atributul size pentru a specifica numărul de valori vizibile.
Utilizați atributul multiple pentru a permite utilizatorului să selecteze mai multe valori.
Elementul <textarea> definește un câmp de introducere pe mai multe linii (o zonă de text).
Atributul rows specifică numărul vizibil de linii dintr-o zonă de text.
Atributul cols specifică lățimea vizibilă a unei zone de text.
Elementul <button> definește un buton pe care se poate face click.
Elementul <datalist> specifică o listă de opțiuni predefinite pentru un element <input>.
Utilizatorii vor vedea o listă derulantă (drop-down list) a opțiunilor predefinite pe măsură ce introduc date.
Atributul listei elementului <input>, trebuie să se refere la atributul id al elementului <datalist>.
Elementul <output> reprezintă rezultatul unui calcul (ca unul realizat de un script).
<form> Definește un formular HTML pentru introducerea utilizatorului
<input> Definește un control de intrare
<textarea> Definește un control de intrare multilin (zona text)
<label> Definește o etichetă pentru un element <input>
<fieldset> Grupează elemente conexe într-o formă
<legend> Definește o legendă pentru un element <fieldset>
<select> Definește o listă derulantă
<optgroup> Definește un grup de opțiuni conexe dintr-o listă derulantă
<option> Definește o opțiune dintr-o listă derulantă
<button> Definește un buton pe care se poate face clic
<datalist> Specifică o listă de opțiuni predefinite pentru controale de intrare
<output> Definește rezultatul unui calcul
Migrare în HTML5
Acest capitol se referă în întregime la modul de migrare de la HTML4 la HTML5.
Acest capitol arată cum se poate converti o pagină HTML4 într-o pagină HTML5, fără a distruge nimic din conținutul sau structura originală.
Migrarea de la HTML4 la HTML5:
<div id="header"> - <header>
<div id="menu"> - <nav>
<div id="content"> - <section>
<div class="article"> - <article>
<div id="footer"> - <footer>
Modificați doctype la doctype HTML5.
Modificați informațiile de codificare la codarea HTML5.
Adăugați HTML5Shiv.
Schimbare la elemente semantice HTML5.
CSS-ul existent conține ID-uri și clase pentru stilizarea elementelor.
Înlocuiți cu stiluri CSS egale pentru elemente semantice HTML5.
Schimbați elementele în elemente semantice HTML5.
Există o diferență confuză (lipsa) în standardul HTML5, între <article> <section> și <div>.
În standardul HTML5, elementul <secțiune> este definit ca un bloc de elemente conexe.
Elementul <article> este definit ca un bloc complet, de sine stătător, al elementelor conexe.
Elementul <div> este definit ca un bloc de elemente pentru copii.
<article> în <article>.
<div> în <article>.
<div> în <section> în <article>.
CSS Fonturi Web
Fonturi Web CSS
Regula CSS @ font-face
Fonturile web permit proiectanților web să utilizeze fonturi care nu sunt instalate pe computerul utilizatorului.
Când a-ți găsit / cumpărat fontul pe care doriți să-l utilizați, includeți doar fișierul font pe serverul dvs. web, iar acesta va fi descărcat automat la nevoie.
Fonturile dvs. proprii sunt definite în regula CSS @font-face.
Diferite formate de fonturi (Different Font Formats)
Fonturi TrueType (TTF)
TrueType este un standard de font dezvoltat la sfârșitul anilor 1980, de Apple și Microsoft. TrueType este cel mai frecvent format de font atât pentru sistemele de operare Mac OS cât și pentru Microsoft Windows.
Fonturi OpenType (OTF)
OpenType este un format pentru fonturile computerului scalabile. A fost construit pe TrueType și este marcă înregistrată a Microsoft. Fonturile OpenType sunt utilizate astăzi frecvent pe majore platforme de calculatoare.
Web Open Font Format (WOFF)
WOFF este un format de font folosit pentru paginile web. A fost dezvoltat în 2009 și este acum o recomandare a W3C. WOFF este în esență OpenType sau TrueType cu compresie și metadate suplimentare. Scopul este de a sprijini distribuirea fontului de la un server la un client printr-o rețea cu restricții de lățime de bandă.
Web Open Font Format (WOFF 2.0)
Fontul TrueType / OpenType care asigură o compresie mai bună decât WOFF 1.0.
Fonturi / forme SVG
Fonturile SVG permit SVG-ului să fie utilizat ca glife la afișarea textului. Specificația SVG 1.1 definește un modul de font care permite crearea de fonturi într-un document SVG. Puteți aplica CSS și în documentele SVG, iar regula @ font-face poate fi aplicată textului în documente SVG.
Fonturi OpenType încorporate (EOT)
Fonturile EOT sunt o formă compactă de fonturi OpenType proiectate de Microsoft pentru a fi utilizate ca fonturi încorporate pe paginile web.
Asistență browser pentru formate de fonturi
IE: formatul fontului funcționează numai atunci când este setat să fie „instalabil”.
Firefox: Nu este acceptat implicit, dar poate fi activat (trebuie să setați un steag la „true” pentru a utiliza WOFF2).
Utilizarea Bold Text
Trebuie să adăugați o altă regulă @font-face care conține descriptori pentru text bold
Descriptori de fonturi CSS (CSS Font Descriptors)
CSS object-fit
Proprietatea CSS object-fit
Proprietatea CSS object-fit este utilizată pentru a specifica modul în care un <img> sau <video> trebuie redimensionat pentru a se potrivi cu containerul său.
Această proprietate spune conținutului să umple containerul într-o varietate de moduri; cum ar fi „păstrați acel raport de aspect” sau „întindeți-vă și ocupați cât mai mult spațiu”.
Asistență browser (Browser Support)
Avem două imagini și dorim ca acestea să umple lățimea de 50% a ferestrei browserului și 100% din înălțime.
Nu folosim object-fit, așa că atunci când redimensionăm fereastra browserului, raportul de aspect al imaginilor va fi distrus.
Folosim object-fit: cover; astfel, când redimensionăm fereastra browserului, raportul de aspect al imaginilor este păstrat.
Toate valorile proprietății CSS object-fit
Proprietatea CSS object-fit poate avea următoarele valori:
fill - Aceasta este implicită. Conținutul înlocuit este dimensionat pentru a completa content box a elementului. Dacă este necesar, obiectul va fi stretched sau squished pentru a se potrivi
contain - Conținutul înlocuit este scalat pentru a-și menține raportul de aspect (aspect ratio) în timp ce se încadrează în content box a elementului
cover - Conținutul înlocuit este dimensionat pentru a-și păstra raportul de aspect (aspect ratio) în timp ce umpleți întreaga content box a elementului. Obiectul va fi tăiat (clipped ) pentru a se potrivi
none - Conținutul înlocuit nu este redimensionat
scale-down - Conținutul este dimensionat ca și cum nici un conținut nu a fost specificat (ar avea ca rezultat o dimensiune mai mică a obiectului concret).
SQL FOREIGN KEY
SQL FOREIGN KEY
SQL Constrângere FOREIGN KEY (SQL FOREIGN KEY Constraint)
O FOREIGN KEY este o cheie folosită pentru a lega două tabele între ele.
O FOREIGN KEY este un câmp (sau o colecție de câmpuri) dintr-un tabel care se referă la FOREIGN KEY dintr-un alt tabel.
Tabelul care conține cheia străină (foreign key) se numește tabel copil (child table), iar tabelul care conține cheia candidat (candidate key) este denumit referință sau tabel părinte (parent table).
Creați două tabele:
Tabelul „Persoane” (Persons):
Tabelul „Comenzi” (Orders):
Observați că coloana „PersonID” din tabelul „Comenzi” (Orders) indică coloana „PersonID” din tabelul „Persoane” (Persons).
Coloana „PersonID” din tabelul „Persoane” (Persons) este PRIMARY KEY din tabelul „Persoane” (Persons).
Coloana „PersonID” din tabelul „Comenzi” (Orders) este o FOREIGN KEY din tabelul „Comenzi” (Orders).
Limitarea FOREIGN KEY este utilizată pentru a preveni acțiunile care ar distruge legăturile dintre tabele.
Restrângerea FOREIGN KEY împiedică, de asemenea, introducerea datelor nevalide în coloana de cheie străină (foreign key), deoarece aceasta trebuie să fie una dintre valori.
SQL FOREIGN KEY în CREATE TABLE
Următorul SQL creează un FOREIGN KEY în coloana „PersonID” atunci când se creează tabelul „Comenzi” (Orders):
MySQL:
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Orders (
OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);
Pentru a permite denumirea unei restricții FOREIGN KEY și pentru a defini o restricție FOREIGN KEY pe mai multe coloane, utilizați următoarea sintaxă SQL:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID)
);
SQL FOREIGN KEY în ALTER TABLE
Pentru a crea o restricție FOREIGN KEY în coloana „PersonID” atunci când tabelul „Comenzi” (Orders) este deja creat, utilizați următorul SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
Pentru a permite denumirea unei constrângeri FOREIGN KEY și pentru a defini o restricție FOREIGN KEY pe mai multe coloane, utilizați următoarea sintaxă SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
Eliminare restricție FOREIGN KEY (DROP a FOREIGN KEY Constraint)
Pentru a elimina o restricție FOREIGN KEY, utilizați următorul SQL:
MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;
SQL Injection
Injecția SQL (SQL Injection)
Injecția SQL (SQL Injection) este o tehnică de injecție de cod (code injection) care ar putea distruge baza de date.
Injecția SQL (SQL Injection) este una dintre cele mai frecvente tehnici de hacking web.
Injecția SQL (SQL Injection) este plasarea codului rău intenționat în declarațiile SQL, prin introducerea paginii web.
SQL în paginile web
Injecția SQL (SQL Injection) are loc de obicei atunci când ceri utilizatorului o introducere, cum ar fi numele său de utilizator / userid (username/userid), iar în loc de nume / id (name/id), utilizatorul vă oferă o declarație SQL pe care o veți rula în mod neștiut pe baza de date.
Uitați-vă la următorul exemplu care creează o instrucțiune SELECT adăugând o variabilă (txtUserId) la un șir selectat. Variabila este preluată din intrarea utilizatorului (getRequestString):
txtUserId = getRequestString("UserId");
txtSQL = "SELECT * FROM Users WHERE UserId = " + txtUserId;
Restul acestui capitol descrie pericolele potențiale ale utilizării intrării utilizatorului în declarațiile SQL.
Injecția SQL pe baza 1 = 1 este întotdeauna adevărată
Privește din nou exemplul de mai sus. Scopul inițial al codului a fost crearea unei instrucțiuni SQL pentru a selecta un utilizator, cu un id de utilizator (user id) dat.
Dacă nu există nimic care să împiedice un utilizator să introducă o intrare „greșită” (wrong), utilizatorul poate introduce unele intrări „inteligente” (smart) ca aceasta:
UserId: 105 SAU 1 = 1
Apoi, instrucțiunea SQL va arăta astfel:
SELECT * FROM Users WHERE UserId = 105 OR 1=1;
SQL-ul de mai sus este valid și va întoarce TOATE (ALL) rândurile din tabelul „Utilizatori” (Users), deoarece OR 1 = 1 este întotdeauna TRUE.
Exemplul de mai sus pare periculos? Ce se întâmplă dacă tabelul „Utilizatori” (Users) conține nume și parole?
Instrucțiunea SQL de mai sus este la fel ca aceasta:
SELECT UserId, Name, Password FROM Users WHERE UserId = 105 or 1=1;
Un hacker ar putea avea acces la toate numele de utilizator și parolele (user names și passwords) dintr-o bază de date, introducând pur și simplu 105 OR 1 = 1 în câmpul de introducere.
Injecția SQL Bazată pe "" = "" este întotdeauna adevărată
Iată un exemplu de autentificare a utilizatorului pe un site web:
Nume utilizator: John Doe
Parola: myPass
Exemplu:
uName = getRequestString("username");
uPass = getRequestString("userpassword");
sql = 'SELECT * FROM Users WHERE Name ="' + uName + '" AND Pass ="' + uPass + '"'
Rezultat:
SELECT * FROM Users WHERE Name ="John Doe" AND Pass ="myPass"
Un hacker ar putea avea acces la numele de utilizator și parolele (user names și passwords) dintr-o bază de date, introducând pur și simplu "OR" "=" în caseta de text a numelui de utilizator sau a parolei (user name sau password):
Nume utilizator: "sau" "="
Parola: "sau" "="
Codul de la server va crea o declarație SQL validă astfel:
Rezultat:
SELECT * FROM Users WHERE Name ="" or ""="" AND Pass ="" or ""=""
SQL de mai sus este valid și va returna toate rândurile din tabelul „Utilizatori” (Users), deoarece OR „„ = „„ este întotdeauna TRUE.
Injecție SQL bazată pe declarații SQL Batched (SQL Injection Based on Batched SQL Statements)
Majoritatea bazelor de date acceptă declarația SQL batched.
Un batch (lot) de instrucțiuni SQL este un grup de două sau mai multe instrucțiuni SQL, separate prin punct și virgulă.
Instrucțiunea SQL de mai jos va returna toate rândurile din tabelul „Utilizatori” (Users), apoi va șterge tabelul „Furnizori” (Suppliers).
SELECT * FROM Users; DROP TABLE Suppliers
txtUserId = getRequestString("UserId");
txtSQL = "SELECT * FROM Users WHERE UserId = " + txtUserId;
User id: 105; DROP TABLE Suppliers
SELECT * FROM Users WHERE UserId = 105; DROP TABLE Suppliers;
Utilizați parametrii SQL pentru protecție
Pentru a proteja un site web de injecția SQL, puteți utiliza parametrii SQL.
Parametrii SQL sunt valori care sunt adăugate la o interogare SQL la momentul executării, într-o manieră controlată.
Exemplu Razor ASP.NET:
txtUserId = getRequestString("UserId");
txtSQL = "SELECT * FROM Users WHERE UserId = @0";
db.Execute(txtSQL,txtUserId);
Rețineți că parametrii sunt reprezentați în instrucțiunea SQL de către un marker@.
Motorul SQL verifică fiecare parametru pentru a se asigura că este corect pentru coloana sa și sunt tratate literal, și nu ca parte a SQL-ului care trebuie executat.
txtNam = getRequestString("CustomerName");
txtAdd = getRequestString("Address");
txtCit = getRequestString("City");
txtSQL = "INSERT INTO Customers (CustomerName,Address,City) Values(@0,@1,@2)";
db.Execute(txtSQL,txtNam,txtAdd,txtCit);
Următoarele exemple arată cum să construiți interogări parametrizate în unele limbaje web comune.
SELECTAȚI DECLARAȚIA ÎN ASP.NET:
txtUserId = getRequestString("UserId");
sql = "SELECT * FROM Customers WHERE CustomerId = @0";
command = new SqlCommand(sql);
command.Parameters.AddWithValue("@0",txtUserID);
command.ExecuteReader();
INSERAȚI ÎN DECLARAȚIE ÎN ASP.NET:
txtNam = getRequestString("CustomerName");
txtAdd = getRequestString("Address");
txtCit = getRequestString("City");
txtSQL = "INSERT INTO Customers (CustomerName,Address,City) Values(@0,@1,@2)";
command = new SqlCommand(txtSQL);
command.Parameters.AddWithValue("@0",txtNam);
command.Parameters.AddWithValue("@1",txtAdd);
command.Parameters.AddWithValue("@2",txtCit);
command.ExecuteNonQuery();
INSERAȚI ÎN DECLARAȚIE ÎN PHP:
$stmt = $dbh->prepare("INSERT INTO Customers (CustomerName,Address,City)
VALUES (:nam, :add, :cit)");
$stmt->bindParam(':nam', $txtNam);
$stmt->bindParam(':add', $txtAdd);
$stmt->bindParam(':cit', $txtCit);
$stmt->execute();
PHP Sesiuni
Sesiuni PHP
O sesiune este o modalitate de a stoca informații (în variabile) pentru a fi utilizate în mai multe pagini.
Spre deosebire de un cookie, informațiile nu sunt stocate pe computerul utilizatorilor.
Ce este o sesiune PHP?
Când lucrați cu o aplicație, o deschideți, faceți unele modificări și apoi o închideți. Aceasta seamănă foarte mult cu o sesiune. Calculatorul știe cine ești. Știe când porniți aplicația și când terminați. Dar pe internet există o problemă: serverul web nu știe cine sunteți sau ce faceți, deoarece adresa HTTP nu menține starea.
Variabilele de sesiune (session variables) rezolvă această problemă prin stocarea informațiilor utilizatorului care vor fi utilizate pe mai multe pagini (de exemplu, numele de utilizator, culoarea preferată etc.). În mod implicit, variabilele de sesiune durează până când utilizatorul închide browserul.
Așa deci; Variabilele de sesiune (session variables) conțin informații despre un singur utilizator și sunt disponibile pentru toate paginile dintr-o singură aplicație.
Dacă aveți nevoie de o stocare permanentă, poate doriți să stocați datele într-o bază de date.
Porniți o sesiune PHP
O sesiune este pornită cu funcția session_start().
Variabilele de sesiune sunt setate cu variabila globală PHP: $_SESSION.
Acum, hai să creăm o nouă pagină numită "demo_session1.php". În această pagină, începem o nouă sesiune PHP și setăm câteva variabile de sesiune:
<?php
// Începeți sesiunea
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Setați variabile de sesiune
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Variabilele de sesiune sunt setate.";
?>
</body>
</html>
Funcția session_start() trebuie să fie primul lucru din documentul dvs. Înainte de orice etichete HTML.
Obțineți valori variabile ale sesiunii PHP
În continuare, creem o altă pagină numită "demo_session2.php". Din această pagină, vom accesa informațiile de sesiune pe care le-am setat pe prima pagină („demo_session1.php”).
Observați că variabilele de sesiune nu sunt transmise individual la fiecare pagină nouă, ci sunt preluate din sesiunea pe care o deschidem la începutul fiecărei pagini (session_start()).
De asemenea, observați că toate valorile variabilei de sesiune sunt stocate în variabila globală $_SESSION:
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Variabilele de sesiune echo care au fost setate pe pagina anterioară
echo "Culoarea preferată este " . $_SESSION["favcolor"] . ".<br>";
echo "Animalul preferat este " . $_SESSION["favanimal"] . ".";
?>
</body>
</html>
Un alt mod de a arăta toate valorile variabilei de sesiune (session variable) pentru o sesiune de utilizator (user session ) este să executați următorul cod:
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
Cum functioneazã? De unde știe că sunt eu?
Majoritatea ședințelor setează o cheie de utilizator (user-key) pe computerul utilizatorului care arată așa: 765487cf34ert8dede5a562e4f3a7e12. Apoi, când o sesiune este deschisă pe o altă pagină, scanează computerul pentru o cheie de utilizator (user-key). Dacă există o potrivire, aceasta accesează sesiunea, dacă nu, începe o nouă sesiune.
Modificați o variabilă de sesiune PHP
Pentru a schimba o variabilă de sesiune, trebuie doar să o suprascrieți:
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// pentru a schimba o variabilă de sesiune, trebuie doar să o rescrieți
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>
</body>
</html>
Distrugeți o sesiune PHP
Pentru a elimina toate variabilele globale ale sesiunii și a distruge sesiunea, utilizați session_unset() și session_destroy():
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// eliminați toate variabilele de sesiune
session_unset();
// distrugeți sesiunea
session_destroy();
?>
</body>
</html>
PHP OOP - Destructor
PHP OOP - Destructor
PHP - Funcția __destruct
Se numește un destructor atunci când obiectul este distrus sau scriptul este oprit sau ieșit.
Dacă creați o funcție __destruct(), PHP va apela automat această funcție la sfârșitul scriptului.
Observați că funcția destruct începe cu două sublinieri (underscores) (__)!
Exemplul de mai jos are o funcție __construct() care se numește automat atunci când creați un obiect dintr-o clasă și o funcție __destruct() care este apelată automat la sfârșitul scriptului:
<?php
class Fruit {
public $name;
public $color;
function __construct($name) {
$this->name = $name;
}
function __destruct() {
echo "The fruit is {$this->name}.";
}
}
$apple = new Fruit("Apple");
?>
Alt exemplu:
<?php
class Fruit {
public $name;
public $color;
function __construct($name, $color) {
$this->name = $name;
$this->color = $color;
}
function __destruct() {
echo "Fructul este {$this->name} și culoarea este {$this->color}.";
}
}
$apple = new Fruit("Apple", "red");
?>
Deoarece constructorii și distrugătorii (constructors and destructors) ajută la reducerea cantității de cod, sunt foarte utili!
PHP OOP - Trăsături
PHP OOP - Trăsături (PHP OOP - Traits)
PHP - Ce sunt trăsăturile? (PHP - What are Traits?)
PHP acceptă numai moștenirea unică (single inheritance): o clasă copil (child class) poate moșteni doar de la un singur părinte (parent).
Deci, dacă o clasă trebuie să moștenească mai multe comportamente? Trăsăturile OOP (OOP traits) rezolvă această problemă.
Trăsăturile (Traits) sunt utilizate pentru a declara metode care pot fi utilizate în mai multe clase. Trăsăturile pot avea metode (methods) și metode abstracte (abstract methods) care pot fi utilizate în mai multe clase, iar metodele (methods) pot avea orice modificator access (public, privat sau protejat).
Trăsăturile (Traits) sunt declarate cu ajutorul cuvântului cheie trait (trait keyword):
Sintaxă
<?php
trait TraitName {
// ceva cod...
}
?>
Pentru a utiliza o trăsătură (trait) într-o clasă, utilizați cuvântul cheie de utilizare (use keyword):
<?php
class MyClass {
use TraitName;
}
?>
Să ne uităm la un exemplu:
<?php
trait message1 {
public function msg1() {
echo "OOP este distractiv! ";
}
}
class Welcome {
use message1;
}
$obj = new Welcome();
$obj->msg1();
?>
Exemplu explicat
Aici, declarăm o singură trăsătură (trait): message1. Apoi, creem o clasă: Welcome. Clasa utilizează trăsătura (trait) și toate metodele (methods) din trăsătură (trait) vor fi disponibile în clasă.
Dacă alte clase trebuie să utilizeze funcția msg1(), pur și simplu folosiți trăsătura (trait) message1 din acele clase. Acest lucru reduce duplicarea codului, deoarece nu este nevoie să redeclarați din nou aceeași metodă (method).
PHP - Folosirea mai multor trăsături (traits)
Să ne uităm la un alt exemplu:
<?php
trait message1 {
public function msg1() {
echo "OOP este distractiv! ";
}
}
trait message2 {
public function msg2() {
echo "OOP reduce duplicarea codului!";
}
}
class Welcome {
use message1;
}
class Welcome2 {
use message1, message2;
}
$obj = new Welcome();
$obj->msg1();
echo "<br>";
$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>
Exemplu explicat
Aici, declarăm două trăsături (traits): message1 și message2. Apoi, creăm două clase: Welcome și Welcome2. Prima clasă (Welcome) folosește trăsături (traits) message1, iar cea de-a doua (Welcome2) folosește atât caracteristicile message1 cât și message2 (mai multe trăsături (traits) sunt separate prin virgulă).
PHP Bază de date MySQL
Bază de date PHP MySQL
Cu PHP, vă puteți conecta la și manipula bazele de date.
MySQL este cel mai popular sistem de baze de date folosit cu PHP.
Ce este MySQL?
MySQL este un sistem de baze de date utilizat pe web
MySQL este un sistem de baze de date care rulează pe un server
MySQL este ideal atât pentru aplicații mici cât și pentru aplicații mari
MySQL este foarte rapid, fiabil și ușor de utilizat
MySQL folosește SQL standard
MySQL compilează pe mai multe platforme
MySQL este gratuit pentru a fi descărcat și utilizat
MySQL este dezvoltat, distribuit și susținut de Oracle Corporation
MySQL poartă numele fiicei cofondatoare Monty Widenius: My
Datele dintr-o bază de date MySQL sunt stocate în tabele. Un tabel este o colecție de date conexe și este format din coloane și rânduri.
Bazele de date sunt utile pentru stocarea informațiilor categoric. O companie poate avea o bază de date cu următoarele tabele:
Angajați, Produse, Clienți, Comenzi (Employees, Products, Customers, Orders)
Sistem de baze de date PHP + MySQL
PHP combinat cu MySQL este cross-platform (puteți dezvolta în Windows și puteți lucra pe o platformă Unix)
Database Queries
Un query este o întrebare sau o solicitare (question or a request).
Putem interoga (query) o bază de date (database) pentru informații specifice și putem returna un set de înregistrări.
Uită-te la următoarea interogare (query) (folosind SQL standard):
SELECT LastName FROM Employees
Interogarea (query) de mai sus selectează toate datele din coloana „LastName” din tabelul „Employees”.
Descărcați baza de date MySQL
Dacă nu aveți un server PHP cu o bază de date MySQL, îl puteți descărca gratuit aici: http://www.mysql.com
Date despre baza de date MySQL
MySQL este sistemul de baze de date standard de facto pentru site-urile web cu volume IMPORTANTE atât de date cât și de utilizatori finali (end-users) (cum ar fi Facebook, Twitter și Wikipedia).
Un alt lucru despre MySQL este că poate fi redus pentru a sprijini aplicațiile bazei de date încorporate.
Grupa 18 sau grupa a VIII-a principală
Grupa a VIII-a principală, numerotată VIII A sau 18, cuprinde gazele rare (nobile) heliu, He, neon, Ne, argon, Ar, kripton, Kr, xenon, Xe, radon, Rn.
Grupa 17 sau grupa a VII-a principală
Grupa a VII-a principală, numerotată VII A sau 17, numită și grupa halogenilor, conține următoarele elemente: fluor, F, clor, Cl, brom, Br, iod, I, astatin, At.
Grupa 16 sau grupa a VI-a principală
Grupa a VI-a principală a sistemului periodic, numerotată VI A sau 16, cuprinde elementele oxigen, O, sulf, S, seleniu, Se, telur, Te, și poloniu, Po.
Grupa 14 sau grupa a IV-a principală
Grupa a IV-a principală a sistemului periodic, numerotată IV A sau 14, cuprinde elementele carbon, C, siliciu, Si, germaniu, Ge, staniu, Sn, și plumb, Pb.
Grupa 2 sau grupa a II-a principală
Grupa a II-a principală a sistemului periodic, numerotată II A sau 2, cuprinde elementele: beriliu, Be, magneziu, Mg, calciu, Ca, stronțiu, Sr, bariu, și radiu, Ra. Această grupă se mai numește grupa metalelor alcalino-pământoase.
Elementele de tranziție
Structura electronică a elementelor de tranziție; caracteristicile chimice ale elementelor de tranziție.