Documente Academic
Documente Profesional
Documente Cultură
PHP
GHID DE PROGRAMARE WEB
PENTRU ÎNCEPĂTORI
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Colaboratori:
Conținuturi capitolele 1, 2 : Ralph-Müller Lucanus
Conținuturi capitolul 3 : Mihaela-Liliana Prăjinariu
Conținuturi capitolul 4 : Vlad Batalan
Copertă : Andra-Mălina Cardaș
2
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Cuprins
1. Introducere .............................................................. 5
Ce este PHP?...........................................................5
De ce să alegi programare în PHP?............................6
2. Programarea web în limbajul PHP ........................ 16
Elemente de sintaxă ale limbajului PHP................... 16
Variabile PHP ........................................................ 18
Crearea (declararea ) variabilelor PHP............... 18
Variabile de ieșire ............................................. 19
Domeniul de vizibilitate al variabilelor ............... 20
Domeniul Global și Local ................................... 20
Specificatorul global ........................................ 21
Instrucțiunile echo și print ................................ 22
Stringuri PHP.................................................... 23
Constante PHP ...................................................... 23
Operatori PHP....................................................... 24
Structuri de control ............................................... 24
Instrucțiuni de decizie....................................... 24
Instrucțiuni de ciclare în PHP ............................. 25
Funcții PHP ........................................................... 25
Funcții definite de utilizator în limbajul PHP ....... 25
Tablouri PHP ......................................................... 26
Sortarea tablourilor .......................................... 27
Variabile globale și superglobale în PHP .................. 27
Gestionarea formularelor în PHP ............................ 27
Formulare HTML simple.................................... 28
3
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
4
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
1. Introducere
Limbajele pe care se bazează PHP sunt :
• HTML ( Hyper Text Markup Language) – pentru definirea
conținuturilor paginilor web
• CSS ( Cascading Style Sheets)- pentru definirea aspectului
paginilor web
• JavaScript- pentru programarea evenimentelor din paginile
web, pentru a adăuga interactivitate paginilor web
Tutoriale :
• HTML Tutorial
[http://www.w3schools.com/cssref/default.asp]
• CSS Reference
[http://www.w3schools.com/cssref/default.asp]
• JavaScript Reference
[http://www.w3schools.com/jsref/default.asp]
Alte resurse utile:
• http://php.net/manual/ro/
Ce este PHP?
• … un acronim pentru “PHP: Hypertext Preprocessor”
• …un limbaj de programare open-source, cu o largă răspândire
în domeniul IT
• … gratis pentru a fi descărcat și utilizat
De ce este un limbaj atât de atractiv și popular?
• pentru că este suficient de puternic pentru a fi în centrul celui
mai mare sistem de blogging pe web (WordPress)!
• pentru că este suficient de complex pentru a rula cea mai
mare rețea socială (Facebook)!
• de asemenea, este destul de ușor să fii un programator
începător de server-side!
PHP...
• Fișierele PHP pot conține text, coduri HTML, CSS,
JavaScript și coduri PHP
• codurile PHP sunt executate pe server, iar rezult atul este
returnat în browser ca un cod HTML simplu
• Fișierele PHP au extensia ".php"
5
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Ce avem de făcut?
Server side:
• La început pornim serverul web (localhost).
• Apoi scriem codul de mai sus într-un editor de text, cum ar fi
Notepad++ .
• Salvăm fișierul cu numele „introduction.php“ în directorul
„C:/xampp/htdocs“.
Client side:
• După salvarea fișierului îl deschidem în browser
(http://localhost/introduction.php) și analizăm conținutul
paginii web afișate în browser.
6
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
7
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
font-family: Verdana,Arial,sans-serif;
}
/* General fonts */
ul, li {
margin-top: 0px;
list-style-type: none;
}
p {
font-family: Verdana,Arial,sans-serif;
font-style: normal;
font-variant: normal;
font-weight: normal;
font-size: 1em;
line-height: normal;
padding: 0px;
}
h1 {
font: 1.25em Verdana,Arial,sans-serif;
font-weight: bold;
padding-bottom: 10px;
}
h2 {
font: 1.25em Verdana,Arial,sans-serif;
font-weight: bold;
padding-bottom: 10px;
color: red;
}
h3 {
font: 1.25em Verdana,Arial,sans-serif;
font-weight: bold;
padding-bottom: 10px;
}
img {
border: none;
}
/* Container */
#container {
width: 970px;
margin-top: 20px;
margin-right: auto;
margin-bottom: auto;
margin-left: auto;
}
8
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
/* Header Components */
#header {
border: 1px solid #999999;
width: 970px;
height: 115px;
}
/* Logo */
#logo {
float: left;
}
/* Slogan */
#slogan {
position: absolute;
width: auto;
height: 30px;
margin-top: 20px;
margin-left: 280px;
font-size: 2.3em;
font-weight: bold;
}
/* Search bar */
#search {
float: right;
margin-top: 30px;
clear: right;
font-size: 0.8em;
}
/* Rootline */
#rootline {
font: normal 10px Verdana,Arial,sans-serif;
padding-top: 5px;
padding-bottom: 0px;
margin-left: 0px;
}
/* Left part */
#left {
float: left;
min-height: 590px;
padding-bottom: 0px;
padding-top: 0px;
position: relative;
9
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
width: 200px;
border: 1px solid #999999;
margin-top: 10px;
font-size: 1.1em;
}
/* Language */
#languages {
padding-top: 5px;
padding-left: 16px;
padding-bottom: 20px;
}
/* Meniu stanga */
#left-menu {
text-align: left;
margin-top: 40px;
list-style-type: none;
margin-left: 8px;
}
#left-menu a {
text-decoration: none;
}
#left-menu a:hover {
color: #666;
}
/* Right */
#right {
width: 202px;
padding-top: 5px;
padding-left: 5px;
padding-right: 5px;
padding-bottom: 0px;
10
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
min-height: 585px;
float: right;
text-align: left;
font-weight: normal;
font-family: Verdana,Arial,sans-serif;
border: 1px solid #999999;
margin-top: 10px;
position: relative;
font-size: 0.8em;
}
/* Footer */
#footer {
position: relative;
top: 15px;
font-family: Verdana,Arial,sans-serif;
clear: both;
text-align: right;
color: #333;
height: 25px;
width: 970px;
text-decoration: none;
border: 1px solid #999999;
font-size: 0.9em;
padding-top: 5px; }
basis.html
<html>
<head>
<link rel="stylesheet" type="text/css"
href="css/basis.css">
</head>
<body>
<div id="container">
<div id="header">
<div id="logo">###LOGO###</div>
<div id="slogan">###SLOGAN###</div>
<div id="search">###SEARCH###</div>
</div>
<div id="rootline">###ROOTLINE###</div>
<div id="left">
11
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<div id="languages">###LANGUAGES###</div>
<div id="left-menu">###LEFT-MENU###</div>
<div id="motto">###MOTTO### </div>
</div>
</div>
</body>
</html>
12
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Primii pași:
• Creați un nou folder în directorul "C: / xampp /" (denumit
"day_1")
• Copiați "basis.html" cu numele "basis.php" în directorul "C: /
xampp / htdocs / day_1"
• Creați un folder denumit "css" în "C: / xampp / htdocs /
day_1" și copiați "basis.ccs" în "C: / xampp / htdocs / day_1 /
css"
• Creați fișierele pe care le veți include în fișierul .php (Footer,
Content, Navigation)
• Pentru a include fișierele în "basis.php", utilizați instrucțiunea
include.
Pentru o organizare optimă a fișierelor pe disc vă propunem
următoarea structură de directoare și fișiere :
13
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Modul de funcționare al
interpretorului PHP este ilustrat
de figura din dreapta și de figura
din pagina următoare :
15
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
16
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<?php
// Acesta este un comentariu uni-linie
# Acesta este de asemenea un comentariu uni-linie
/* Acesta este format din mai multe linii de
comentariu bloc care se întinde pe mai multe linii
*/
// Comentariile pot fi folosite pentru a ”anula”
//anumite secvențe de cod
$x = 5 /* + 15 */ + 5;
echo $x;
?>
</body>
</html>
Case-sensitivity în PHP
În PHP, toate cuvintele cheie (de exemplu if, else, while, echo, etc.),
clase, funcții și funcții definite de utilizator nu sunt sensibile la
scrierea cu litere mici sau cu litere mari.
În exemplul de mai jos, cele 3 instrucțiuni echo sunt corecte (și
echivalente, ca rezultat):
Exemplu:
<!DOCTYPE html>
<html> <body>
<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
EcHo "Hello World!<br>";
?> </body>
</html>
Cu toate acestea, identificatorii de variabile sunt case-sensitive.
17
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Variabile PHP
Variabilele reprezintă ”containere” pentru memorarea informațiilor.
Crearea (declararea ) variabilelor PHP
În PHP, un identificator de variabilă începe cu simbolul $, urmat de
numele propriu-zis al variabilei:
Exemplu:
<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
?>
După execuția instrucțiunilor de mai sus, variabila $txt va memora
valoarea Hello world!, variabila $x va memora valoarea 5, iar
variabila $y va memora valoarea 10.5.
Notă: La atribuirea unei valori de tip șir de caractere, valoarea trebuie
încadrată între ghilimele.
Spre deosebire de alte limbaje de programare, în PHP nu există o
instrucțiune de declarare a variabilelor. Aceasta este creată în
momentul în care i se atribuie prima valoare.
Tratați variabilele ca și containere pentru stocarea informațiilor!
18
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
19
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
20
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // afișează 15
?>
21
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
myTest();
myTest();
myTest();
?>
22
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Constante PHP
O constantă este un identificator (nume) pentru o valoare simplă.
Valoarea nu poate fi modificată în timpul execuției scriptului.
Un identificator valid de constantă începe cu o literă sau cu simbolul
”_” (nu se utilizează simbolul $).
Notă: Spre deosebire de variabile, constantele sunt vizibile global în
cadrul scriptului.
Pentru crearea unei constante se utilizează funcția define().
Modul de utilizare a funcției define():
define(nume, valoare, case-insensitive)
Parametrii funcției și semnificația acestora:
• nume: specifică numele constantei
• valoarea: specifică valoarea constantei
23
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Operatori PHP
Operatorii sunt utilizați pentru a realiza diferite operații cu variabile și
valori constante.
Operatorii în limbajul PHP se clasifică astfel:
• Operatori aritmetici (+, -, *, /, %, **)
• Operatori de atribuire (=, +=, -=, *=, /=, %=)
• Operatori relaționali (==, ===, !=, <>, !==, >, <, >=, <=)
• Operatori de incrementare/decrementare (++$x, $x++, --$x,
$x--)
• Operatori logici (and, or, xor, &&, |, !)
• Operatori pe stringuri (., .=)
• Operatori pe tablouri (+, ==, ===, !=, <>, !==)
Pentru mai multe informații accesați linkul:
http://www.w3schools.com/php/php_operators.asp
Structuri de control
Instrucțiuni de decizie
Instrucțiunile condiționale (de decizie) sunt utilizate pentru a executa
anumite acțiuni bazate pe condiții.
Foarte des atunci când scriem cod, dorim să efectuăm acțiuni diferite
pentru diferite condiții.
În PHP există următoarele instrucțiuni de decizie:
• if – execută o secvență de cod dacă o condiție logică este
adevărată
• if...else - execută o secvență de cod dacă o condiție logică
este adevărată și execută altă secvență de cod dacă condiția
este falsă
24
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Funcții PHP
Adevărata putere a limbajului PHP derivă din funcțiile sale, limbajul
încorporează peste 1000 de funcții predefinite.
Funcții definite de utilizator în limbajul PHP
• În afară de funcțiile predefinite ale limbajului, ne putem crea
propriile noastre funcții.
• Funcția reprezintă un bloc de instrucțiuni care poate fi
executat în mod repetat în cadrul unui program.
• Funcția nu se va executa imediat ce se încarcă pagina în
browser, aceasta se va executa doar în urma unui apel.
Crearea unei funcții definite de utilizator în PHP:
O funcție definită de utilizator începe cu cuvântul rezervat "function":
25
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Sintaxa:
function functionName() {
code to be executed;
}
Notă: Numele unei funcții începe cu o literă sau simbolul ”_”, nu
poate începe cu o cifră.
Alegeți nume sugestive pentru funcții care să reflecte scopul acesteia.
Numele de funcții nu sunt case-sensitive.
Pentru mai multe detalii accesați:
http://php.net/manual/en/functions.user-defined.php
Tablouri PHP
Un tablou reprezintă o structură de date care memorează într-o singură
variabilă o mulțime de valori.
Exemplu:
<?php
$cars = array("Volvo","BMW", "Toyota");
echo "I like ".$cars[0].",".$cars[1] ."and"
.$cars[2].".";
?>
Dacă aveți de memorat o listă de valori (de exemplu numele unor
mașini), memorarea acestor date ar arăta în modul următor:
$cars1 = "Volvo";
$cars2 = "BMW";
$cars3 = "Toyota";
Dacă ar trebui să scrieți un cod pentru identificarea une i anumite
mașini dintr-o mulțime de 3 sau 300 de mașini, cum ar arăta codul?
Soluția în acest caz este să creați un tablou.
Un tablou poate stoca o mulțime de valori, utilizând un nume unic, iar
regăsirea unei valori se va realiza prin referirea la un anumit
index(poziția ocupată de valoare ).
Pentru crearea unui tablou în PHP se utilizează funcția array().
În PHP, există 3 tipuri de tablouri:
• Tablouri indexate – tablouri indexate numeric
• Tablouri asociative – tablouri în care identificarea unui
element se realizează pe baza unei chei
• Tablouri multidimensionale – tablouri care conțin unul sau
mai multe tablouri
26
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Sortarea tablourilor
• sort() – sortează tablourile în ordine crescătoare
• rsort() - sortează tablourile în ordine descrescătoare
• asort() - sortează tablourile asociative în ordine crescătoare,
în funcție de o valoare dată
• ksort() - sortează tablourile asociative în ordine crescătoare,
în funcție de o cheie dată
• arsort() - sortează tablourile asociative în ordine
descrescătoare, în funcție de o valoare dată
• krsort() - sortează tablourile asociative în ordine
descrescătoare, în funcție de o cheie dată
</body>
</html>
Atunci când utilizatorul completează formularul de mai sus și dă clic
pe butonul de trimitere, datele din formular sunt trimise pentru
procesare într-un fișier PHP denumit "welcome.php". Datele din
formular sunt trimise prin metoda HTTP POST.
Metoda HTTP POST și variabila superglobală $_POST
Pentru afișarea datelor trimise prin intermediul formularu lui putem
utiliza variabila superglobală $_POST și instrucțiuni de afișare a
diferitelor componente ale acesteia. Fișierul "welcome.php" va arăta
astfel:
<html>
<body>
28
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
</body>
</html>
</body>
</html>
29
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
30
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
31
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$website = test_input($_POST["website"]);
$comment = test_input($_POST["comment"]);
$gender = test_input($_POST["gender"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
32
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}
}
?>
Apoi, în formularul HTML adăugăm un mic script după fiecare câmp
care generează mesajul de eroare corespunzător. Acest mesaj va fi
afișat dacă utilizatorul încearcă să trimită datele fără a completa unul
dintre câmpurile obligatorii.
Afișarea mesajelor de eroare la completarea câmpurilor unui
formular
Exemplu
<form method="post" action="<?php echo
htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name:
<input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
33
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
34
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Exemplu:
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time()+
(86400 * 30), "/"); // 86400 = 1 zi
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not
set!";
} else {
echo "Cookie '" . $cookie_name . "' is
set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Sesiuni
Sesiunea reprezintă o metodă de stocare în variabile a informațiilor
astfel încât acestea să poată fi utilizate în mai multe pagini web. Spre
deosebire de un cookie, informațiile nu sunt stocate pe computerul
utilizatorului.
O sesiune durează atât timp cât utilizatorul accesează un site și se
încheie o dată cu închiderea browserului. Accesarea unei pagini web
este o operație de sine stătătoare, orice accesare ulterioară a aceleiași
pagini (spre exemplu un refresh) se va face fără ca serverul "să știe" de
accesările anterioare. La fel se întâmplă atunci când sunt accesate mai
multe pagini diferite una după alta.
Variabilele sesiune rezolvă această problemă prin stocarea
informațiilor legate de utilizator și utilizarea lor în cadrul mai multor
pagini vizitate de acesta. (de exemplu: username, favorite color, etc).
35
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<?php
// Atribuirea de valori variabilelor de tip sesiune
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>
</body>
</html>
<?php
session_start();
36
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Se afișează valorile variabilelor sesiune setate
în pagina anterioară
echo "Favorite color is " . $_SESSION["favcolor"] .
".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"]
. ".";
?>
</body>
</html>
37
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
session_destroy();
$_SESSION = array();
?>
<html>
<body>
<h3>Login-Pages</h3>
<form action="intro.php" method="post">
<p><input name="name" /> Name</p>
<p><input type="password" name="password" />
Password</p>
<p><input type ="submit" value="login" /></p>
</form>
</body>
</html>
<html><body>
<h3>Intro Page</h3>
<?php
echo "<p>Hello " . $_SESSION['name'] . "</p>";
?>
38
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
?>
<html>
<body>
<h3>This is the other page</h3>
<?php
</body>
</html>
Baze de date
O bază de date reprezintă o colecție de date organizată astfel încât un
program să poată selecta rapid datele necesare la un moment dat.
39
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
40
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
// Crearea conexiunii
$conn = mysqli_connect($servername, $username,
$password);
// verificarea conexiunii
If (!$conn) {
41
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Pentru crearea sau ștergerea unei baze de date sunt necesare privilegii
de tip CREATE.
3. Crearea unei baze de date MySQL utilizând MySQLi
Comanda CREATE DATABASE este utilizată pentru crearea unei
baze de date în MySQL. În exemplul următor se creează o bază de date
cu numele “myDB“:
<?php
$servername = “localhost“;
$username = “root“;
$password = ““;
// Crearea conexiunii
$conn = mysqli_connect($servername, $username,
$password);
// verificarea conexiunii
If (!$conn) {
die (“Connection failed: “ .
mysqli_connect_error());
}
// Crearea bazei de date
$sql = “CREATE DATABASE myDB“;
if (mysqli_query($conn, $sql)) {
echo “Database created successfully“;
} else {
echo “Error creating database: “ .
mysqli_error($conn);
}
mysqli_close($conn);
?>
// crearea conexiunii
$conn = mysqli_connect($servername, $username,
$password, $dbname);
// verificarea conexiunii
if (!$conn) {
die("Connection failed: " .
mysqli_connect_error());
}
43
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
if (mysqli_query($conn, $sql)) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " .
mysqli_error($conn);
}
mysqli_close($conn);
?>
După crearea bazei de date și a tabelei, putem adăuga date.
6. Inserarea datelor în tabele MySQL
Reguli care trebuie respectate la inserarea datelor în tabele:
• Interogarea SQL trebuie să fie încadrată între ghilimele în
PHP
• Stringurile din interiorul unei interogări trebuie să fie
delimitate de ghilimele
• Valorile numerice nu se scriu între ghilimele
• Cuvântul NULL nu se scrie între ghilimele
Comanda INSERT INTO este utilizată pentru adăugarea de noi
înregistrări într-o tabelă MySQL:
Sintaxa:
INSERT INTO table_name (column1, column2,
column3,...)
VALUES (value1, value2, value3,...)
Notă: Dacă o coloană are unul dintre atributele AUTO_INCREMENT
sau TIMESTAMP nu este necesar ca aceste coloane să apară în
interogare; MySQL va adăuga automat valori în aceste câmpuri.
În exemplul următor vom adăuga o nouă înregistrare în tabela
"MyGuests" creată în scriptul precedent.
<?php
$servername = "localhost";
$username = „root";
$password = "";
$dbname = "myDB";
44
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
// Create connection
$conn = mysqli_connect($servername, $username,
$password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " .
mysqli_connect_error());
}
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" .
mysqli_error($conn);
}
mysqli_close($conn);
?>
Dacă se execută o comandă INSERT sau UPDATE într-o tabelă cu un
câmp ID cu atributul AUTO_INCREMENT, putem obține valoarea
din câmpul ID al ultimei înregistrări inserate/actualizate.
7. Obținerea ID-ului ultimei înregistrări inserate în tabelă
<?php
$servername = "localhost";
$username = „root";
$password = "";
$dbname = "myDB";
// Crearea conexiunii
$conn = mysqli_connect($servername, $username,
$password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " .
mysqli_connect_error());
}
45
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
if (mysqli_query($conn, $sql)) {
$last_id = mysqli_insert_id($conn);
echo "New record created successfully. Last
inserted ID is: " . $last_id;
} else {
echo "Error: " . $sql . "<br>" .
mysqli_error($conn);
}
mysqli_close($conn);
?>
8. Inserarea unui grup de înregistrări în MySQL
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Crearea conexiunii
$conn = mysqli_connect($servername, $username,
$password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " .
mysqli_connect_error());
}
if (mysqli_multi_query($conn, $sql)) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" .
mysqli_error($conn);
}
46
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
mysqli_close($conn);
?>
<?php
$servername = "localhost";
$username = „root";
$password = "";
$dbname = "myDB";
// Crearea conexiunii
$conn = mysqli_connect($servername, $username,
$password, $dbname);
// Verificarea conexiunii
if (!$conn) {
die("Connection failed: " .
mysqli_connect_error());
}
if (mysqli_num_rows($result) > 0) {
// afișează datele fiecărei înregistrări
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " .
$row["firstname"]. " " . $row["lastn ame"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
47
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
// Crearea conexiunii
$conn = mysqli_connect($servername, $username,
$password, $dbname);
// Verificarea conexiunii
if (!$conn) {
die("Connection failed: " .
mysqli_connect_error());
}
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " .
mysqli_error($conn);
}
mysqli_close($conn);
?>
48
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
// Crearea conexiunii
$conn = mysqli_connect($servername, $username,
$password, $dbname);
// verificarea conexiunii
if (!$conn) {
die("Connection failed: " .
mysqli_connect_error());
}
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " .
mysqli_error($conn);
}
mysqli_close($conn);
?>
50
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
creat.
x Fișierul este creat și deschis pentru scriere. Pointerul la
începutul fișierului. În caz că fișierul există se generează o
eroare de tip E_WARNING, iar funcția fopen() returnează
false.
x+ Fișierul este creat și deschis pentru scriere și citire. Pointerul
la începutul fișierului. În caz că fișierul există se generează o
eroare de tip E_WARNING, iar funcția fopen() returnează
false.
53
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<?php
$myfile = fopen("webdictionary.txt", "r") or
die("Unable to open file!");
fclose($myfile);
?>
fclose($myfile);
?>
54
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
</body>
</html>
56
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Notă:
• Atributul type="file" al tagului <input> setează câmpul din
formular ca fiind un control de tip file-select, care va afișa în
formular un buton "Browse"
57
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
58
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
}
}
// verificăm dacă fișierul există în directorul
uploads
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// verificăm dimensiunea fișierului
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Verificăm formatele de fișier
59
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
3. Fișe de lucru
FIȘA DE LUCRU NR.1- instalarea produselor software
1. Download-ați pachetul web XAMPP compatibil cu sistemul de
operare instalat pe computerul vostru de la adresa
https://www.apachefriends.org/ro/download.html și acceptați
setările implicite pentru instalare.
2. Navigați în Windows și localizați directorul C:/XAMPP cu
subdirectorul htdocs.
3. Porniți aplicația XAMPP - Control Panel lansând în execuție
fișierul xampp-control.exe.
60
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
include 'footer.php';
?>
</div>
</div>
</body>
</html>
62
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<body>
<?php
$color = "red";
echo " My car is " . " . $color . ";
echo " My house is" . " . $COLOR. ";
echo " My boat is" . " . $CoLoR.";
?>
</body>
</html>
63
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
foreach($cars as $car)
echo "I like " . $car. "<br>";
?>
2. Declarați și inițializați un tablou numit cars în care memorați
mărcile a 3 mașini. Sortați crescător tabloul și afișați datele.
<?php
$cars = array("Volvo", "BMW", "Toyota");
sort($cars);
foreach($cars as $car)
{
echo $car;
echo "<br>";
}
?>
if(basename($_SERVER['PHP_SELF'])=="team.php")
echo " class='selected'";
echo "><a href='team.php'>Team und
Kontakt</a></li>";
echo "<li";
if(basename($_SERVER['PHP_SELF'])=="impressum.
php")
echo " class='selected'";
echo "><a
href='impressum.php'>Impressum</a></li>";
echo "</ul>";
?>
3. Ștergeți fișierele html.
65
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<?php
$x = 5; //variabila globală
function Mytest3() {
//utilizarea variabilei x în interiorul
funcției
//va genera o eroare
echo "<p>Variable x inside function is : $x
</p>";
}
Mytest3();
echo "<p>Variable x outside function is:
$x</p>";
?>
66
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
</html>
Exemplul nr. 2
<html>
<body>
<form action = "welcome.php" method="post">
Name: <input type="text" name="name" ><span
style="color:red">*</span><br>
E-mail: <input type="text" name="e-mail"><span
style="color:red">*</span><br>
WebSite: <input type="text"
name="website"><br>
Comment: <textarea name="comment" rows="5"
cols="40"></textarea><br>
<input type="radio" name="gender"
value="female">Female
<input type="radio" name="gender"
value="male">Male<br>
<input type="submit">
</form>
<p style="color:red">* required field</p>
</body>
</html>
2. Creați un fișier HTML care afișează un formular cu două câmpuri
și un buton submit, utilizând metoda GET pentru transmiterea
datelor.
Exemplul nr.1
<html>
<body>
Welcome <?php echo $_GET["name"];?> <br>
Your e-mail address is: <?php echo $_GET["e-
mail"]; ?>
</body>
</html>
Exemplul nr.2
<html>
<body>
<form action = "welcome_get.php" method="get">
Name: <input type="text" name="name" ><br>
E-mail: <input type="text" name="e-mail"><br>
<input type="submit">
</form>
</body> </html>
67
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<?php
// declară și inițizează variabilele folosite
//pentru afișarea mesajelor de eroare
$name = $email = $gender = $comment = $website
= "";
$nameErr = $emailErr = $genderErr =
$websiteErr = $commentErr ="";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if(empty($_POST["name"]))
{
$nameErr="Name is required";
}
68
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
else
{
$name=test_input($_POST["name"]);
}
if(empty($_POST["email"]))
{
$emailErr="Email is required";
}
else
{
$email=test_input($_POST["email"]);
}
if(empty($_POST["website"]))
{
$websiteErr="Website is required";
}
else
{
$website=test_input($_POST["website"]);
}
if(empty($_POST["comment"]))
{
$commentErr="Comment is required";
}
else
{
$comment=test_input($_POST["comment"]);
}
if(empty($_POST["gender"]))
{
$genderErr="Gender is required";
}
else
{
$gender=test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
69
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
?>
<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>
</html>
70
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<?php
setcookie("test_cookie", "test", time() +
3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE)>0) {
echo "Cookies are enabled.";
}
else {
echo "Cookies are disabled.";
}
?>
</body>
</html>
<html>
<body>
<?php
// Setarea datelor sesiunii
$_SESSION["favcolor"] = "none";
$_SESSION["favanimal"] = "dog (Golden
Retriever)";
echo "Session variables are set.";
?>
</body>
</html>
72
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
73
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
74
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
75
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
$conn=mysqli_connect($servername,$username,$pa
ssword,$dbname);
if(!$conn)
{
die("connection
failed".mysqli_connect_error());
}
76
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
lastname, email)
VALUES ('Julie', 'Dooley',
'julie@example.com')";
if (mysqli_multi_query($conn, $sql)) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" .
mysqli_error($conn);
}
mysqli_close($conn);
?>
$result=mysqli_query($conn, $sql);
if(mysqli_num_rows ($result) > 0){
$row = mysqli_fetch_assoc($result);
$_SESSION["name"] = $_POST["name"];
$_SESSION["firstname"]=$row["firstname"
];
$_SESSION["role"]=$row["role"];
$_SESSION["gender"]=$row["gender"];
77
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
$_SESSION["email"]=$row["email"];
}
?>
<?php
include 'control.inc.php';
?>
<html>
<body>
<h3>Intro page</h3>
<?php
echo "<p>Hello ". $_SESSION["name"]. " !
</p>";
echo "<h3>You are a ". $_SESSION['role'].
"</h3>";
echo "<h3>And you are a " .$_SESSION['gender']
. "</h3>";
echo "<h3>Your email is " . $_SESSION['email']
. "</h3>";
?>
<p><a href="http://localhost/Day_5/other.php">
Go to another page </a></p>
<p><a
href="http://localhost/Day_5/logoff.php"> Log off
</a></p>
</body>
</html>
78
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
</head>
<body style='background-image:
url("img/background.jpg");'>
<?php
include 'include/user-bar.php';
?>
<div class='container'>
<?php
include 'include/menu.php';
?>
<div class='content'><img src='img/main.jpg'></div>
</div>
<?php
include 'include/footer.php';
?>
</body>
</html>
.container {
margin-bottom:100px;
overflow:hidden;
margin-top: 40px;
}
.content {
width: 900px;
height: 480px;
margin: auto;
margin-top: 10px;
}
.content img{
width:900px;
height: 480px;
}
80
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Fișierul style-produse.css:
body{
margin: 0px;
padding: 0px;
}
.container {
margin-bottom:100px;
overflow:hidden;
margin-top: 40px;
}
.search {
width: 400px;
margin-top: 10px;
margin-left: 20px;
.search input{
width: 100%;
font-family:Verdana, Geneva, sans-serif;
padding: 5px;
}
.left-bar {
float: left;
width: 300px;
background-color: #E6E6E6;
margin-top: 50px;
margin-left: 50px;
display: inline-block;
}
.left-bar ul{
margin-left: 0px;
}
.left-bar ul li{
padding: 5px;
border-bottom: 1px solid white;
}
.left-bar ul li a{
text-decoration: none;
color: black;
}
81
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
.left-bar ul li a:hover {
color: blue;
padding: 10px;
font-size: 20px;
}
.category-header{
background-color: #11A1D1;
height: 30px;
line-height: 40px;
color: white;
padding-left: 30px;
}
.content {
background-color: #D3F5BC;
float: right;
width: 800px;
margin-right: 50px;
margin-top: 50px;
display: inline-block;
}
.imagine-produs{
width: 234px;
height: 300px;
padding: 5px;
margin: 10px;
float: left;
border: 1px solid black;
}
.imagine-produs img{
width: 228px;
height: 228px;
margin: 5px;
}
.imagine-produs a{
text-decoration: none;
color: black;
}
82
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
.login{
float: left;
background-color: #3AE8B7;
width: 300px;
height: 200px;
margin-top: 40px;
margin-bottom: 100px;
padding: 20px;
}
.sign-up{
float: right;
background-color: #3AE8B7;
width: 300px;
height: 350px;
margin-top: 40px;
margin-bottom: 100px;
padding: 20px;
}
h1 {
text-align: center;
color: black;
}
.form {
width: 250px;
margin: auto;
}
.error {
color: red;
text-align: center;
}
83
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
.container{
background-color: #9BF2D8;
margin: auto;
width: 1000px;
margin-top: 100px;
height: 500px;
margin-bottom: 100px;
}
.image{
float: left;
width: 300px;
height: 300px;
margin: 20px;
}
.image img{
width: 100%;
height: 100%;
border: 1px solid black;
}
.content {
padding-top: 50px;
padding-left: 400px;
padding-bottom: 120px
}
Fișierul style-descriere.css:
html, body{
padding: 0px;
margin: 0px;
}
.content{
width: 800px;
background-color: #b3ffcc;
margin: auto;
height: 400px;
84
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
margin-top: 50px;
border: 5px dotted black;
}
.descriere{
padding: 30px;
}
.descriere h1{
color: #ff3300;
font-family:"Lucida Sans Unicode", "Lucida
Grande", sans-serif;
text-align: center;
}
descrie ul{
list-style-type: circle;
}
.descriere li{
color: #00cc44;
margin-top: 20px;
font-family:"Lucida Sans Unicode", "Lucida
Grande", sans-serif;
}
.descriere p{
font-family:"Lucida Sans Unicode", "Lucida
Grande", sans-serif;
float: right;
bottom: 0px;
font-size: 15px;
color: #ff3300;
}
Fișierul style-cos.css:
html, body{
margin: 0;
padding: 0;
}
.container{
margin-bottom: 100px;
}
.content{
width: 740px;
background-color: rgb(189,249,136);
margin: auto;
margin-bottom: 100px;
margin-top: 50px;
padding-bottom: 30px;
85
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
}
.obiect {
background-color: rgb(241,248,203);
margin-top: 10px;
height: 200px;
border: 1px solid rgb(159,159,159);
}
.imagine {
float: left;
height: 200px;
width: 200px;
}
.imagine img{
height: 100%;
width:100%;
}
.descriere {
float:right;
width: 480px;
height: 180px;
padding-top: 3px;
}
.total {
height: 100px;
background-color: #AFC3F0;
margin-top: 50px;
text-align: center;
padding-top: 2px;
margin-bottom: 0px;
border: 1px solid rgb(159,159,159);
}
Fișierul style-contact.css:
html, body{
padding: 0px;
margin: 0px;
}
.content{
width: 800px;
background-color: #b3ffcc;
margin: auto;
height: 400px;
margin-top: 50px;
border: 1px solid rgb(159,159,159);
}
86
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
.descriere{
float: right;
width: 340px;
height: 340px;
padding: 30px;
background-color: white;
border-left: 1px solid rgb(159,159,159);
}
.descriere h1{
color: #ff3300;
font-family:"Lucida Sans Unicode", "Lucida
Grande", sans-serif;
text-align: center;
}
.descriere p{
font-family:"Lucida Sans Unicode", "Lucida
Grande", sans-serif;
bottom: 0px;
font-size: 15px;
color: #ff3300;
}
.descriere img{
width: 40px;
haight: 40px;
}
.map{
width:399px;
height:400px;
float: left;
}
87
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
88
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
89
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
90
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
92
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
include_database.php
<?php
session_start();
$servername = „localhost‟;
$username = „root‟;
$password = „‟;
$dbname = „magazin‟;
$conn = mysqli_connect($servername, $username,
$password, $dbname);
?>
93
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
produse.php
<html>
<head>
//includem pagina de conectare la baza de date
<?php
include “include_database. php”;
?>
</head>
<body>
<h1> acestea sunt produsele noastre: </h1>
<?php
/*afisam continutul tabelei folosind comanda sql,
select*/
$sql = “SELECT * FROM produse”;
94
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
//executam cerinta
$result = mysqli_query($conn, $sql);
//afisam detaliile fiecarui produs
while($row = mysqli_fetch_assoc($result)){
echo “<img src=‟img/”.$row[„imagine‟].”‟><br>
Nume: “.$row[„nume‟].”<br> Pret:
“.$row[„pret‟].”<br> Descriere:
“.$row[„descriere‟].” <br> Stoc: “.$row[„stoc‟].”
<br> Categorie: “.$row[„categorie‟].””;
}
?>
</body>
</html>
<?php
include “include_database.php”;
//verificam existenta contului in baza de date
include “control_login.php”;
?>
</head>
<body>
control_login.php
<?php
<!--verificam daca a fost trimis vreun formular de
logare, testand daca exista variabila $_POST[„send‟]
-->
if(isset($_POST[„send‟]))
{
<!--verificam daca au fost completate campurile
trimise si nu au fost vide -->
if($_POST[„email‟] != „‟ && $_POST[„parola‟] !=
„‟)
{
//verificam daca exista contul dat
$sql = “SELECT * FROM utilizator WHERE email
= „”.$_POST[„email‟].”‟ AND parola =
„”.$_POST[„parola‟].”‟”;
97
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
produse.php
<html>
<head>
<!--includem pagina de conectare la baza de date-->
<?php
include “include_database.php”;
//includem pagina pentru adaugarea de produse in cos
include “adauga_cos.php”;
?>
</head>
<body>
<!--bara de cautare-->
<form action=‟produse.php‟ action=‟post‟>
<input type=‟text‟ name=‟cauta‟
placeholer=‟Cauta produse‟>
</form>
<h1> acestea sunt produsele noastre </h1>
<?php
//se afiseaza tabela
$sql = “SELECT * FROM produse”;
//se verifica daca bara de cautare nu este goala
if(isset($_POST[„cauta‟]) &&
$_POST[„cauta‟] != „‟)
{
//se adauga criterii de cautare
$sql .= “ WHERE nume LIKE
„%”.$_POST[„cauta‟].”%‟ OR descriere LIKE
„%”.$_POST[„cauta‟].”%‟ OR categorie LIKE
„”.$_POST[„cauta‟].”‟”;
98
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
99
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
adauga_cos.php
<?php
/*verificam daca utilizatorul este logat, daca s-a
trimis formularul si id-ul produsului adaugat in
cos*/
if(isset($_SESSION[„id‟]) &&
isset($_GET[produs_id]) && isset($_POST[„adauga‟]))
{
//interogam tabela cautand produsul adaugat in cos
$sql = “SELECT * FROM produse WHERE id =
„”.$_GET[„produs_id‟].”‟”;
cos.php
<html>
<head>
<!--se include pagina de conectare la baza de date
-->
<?php
include “include_database.php”;
?>
</head>
<body>
<h1> Cosul meu </h1>
100
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
101
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
cos.php
<html>
<head>
<!--se include pagina de conectare la baza de date
-->
<?php
include “include_database.php”;
//se include fișierul operatii_in_cos.php
include “operatii_in_cos.php”;
?>
</head>
<body>
<h1> Cosul meu </h1>
102
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
103
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
operatii_in_cos.php
<?php
/*se verifica daca s-a trimis formularul pentru
stergerea unui obiect din cos*/
if(isset($_POST[„delete‟]) &&
isset($_GET[„produs_id‟]))
{
//daca e cazul,se sterge obiectul din cos
$sql e ca = “DELETE FROM cos WHERE id_produs =
„”.$_GET[„produs_id‟].”‟ AND id_user =
„”.$_SESSION[„id‟].”‟ AND comanda = „0‟”;
//se memoreaza rezultatul
$res = mysqli_query($conn, $sql);
}
?>
104
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
105
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
106
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
</form>”;
}
?>
</body></html>
operatii_in_cos.php
<?php
/*se verifica daca s-a trimis formularul pentru
stergerea unui obiect din cos */
if(isset($_POST[„delete‟]) &&
isset($_GET[„produs_id‟]))
{
//se sterge obiectul din cos
$sql = “DELETE FROM cos WHERE id_pro dus =
„”.$_GET[„produs_id‟].”‟ AND id_user =
„”.$_SESSION[„id‟].”‟ AND comanda = „0‟”;
//se memoreaza rezultatul
$res = mysqli_query($conn, $sql);
}
//daca este actionat butonul comenzii finale
if(isset($_POST['comanda']))
{
/*se cauta toate produsele din cosul utilizatorului
care nu au fost comandate inca si se marcheaza ca
fiind trimise*/
$sql = "SELECT * FROM cos WHERE id_user =
'".$_SESSION['id']."' AND comanda = '0'";
//se memoreaza rezultatul
$result = mysqli_query($conn, $sql);
/*pentru fiecare produs din cos variabila $row preia
datele */
while($row = mysqli_fetch_assoc($result))
{
//se realizeaza un update in campul comanda
$sql = "UPDATE cos SET comanda = '1' WHERE
id_comanda = '".$row['id_comanda']."'";
//se memoreaza rezultatul
$res = mysqli_query($conn, $sql);
/*se calculeaza cat a mai ramas stocul produsului
comandat, se cauta produsul comandat cu ajutorul id -
ului*/
$sql = "SELECT * FROM produse WHERE id =
'".$row['id_produs']."'";
//se memoreaza rezultatul
$rezultat = mysqli_query($conn, $sql);
107
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
108
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
login.php
<html>
<head>
<title> magazinonline.ro </title>
<link rel='stylesheet' href='css/login.css'>
<?php
include 'include/include_start.php';
include 'include/control_login.php'
?>
</head>
<body style='background-image:
url("img/background.jpg");padding-top: 40px;'>
<?php
include 'include/user-bar.php';
include 'include/menu.php';
?>
<div class='container'>
<div class='login'>
<?php
/*verificarea datelor de autentificare memorate in
baza de date */
if(isset($login))
echo $login;
?>
109
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<?php
if(isset($done))
echo $done;
?>
<!-- la crearea contului se vor memora datele
introduse: email, nume, parola, adresa, numar de
telefon -->
<h1> Creaza un nou cont </h1>
<div class='form'>
<form method='post' action=''>
</div>
110
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<?php
include 'include/footer.php';
?>
</body>
</html>
<script>
/*cod javascript pentru a calcula pretul total al
comenzii*/
function get_number(){
var $valoare =
document.getElementById('numar').value;
var $pret =
document.getElementById('pret').value;
var $total = $pret * $valoare;
document.getElementById("total").innerHTML =
"Pret total achizitie: "+ $total +" lei";
}
</script>
</head>
<body style='background-image:
url("img/background.jpg");'>
<!--Codul urmator verifica daca a fost trimis id-ul
elementului cautat. In caz afirmativ, il cauta in
baza de date si ii afiseaza toate proprietatile:
imagine, nume, descriere, pret, stoc, etc.-->
<?php
include 'include/user-bar.php';
?>
<div class='container'>
<?php
//daca a fost trimis un id
if(isset($_GET['id']))
{
111
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
112
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<form
action='?id=".$_GET['id']."' method='post'>
<input type='number' min=1
max=".$stoc_ramas." name='numar' id='numar'
onchange='get_number();'>
<input type='submit'
name='submit' value='Adauga in cos'>
</form>
<p id='total'> Pret total
achizitie: 0 lei </p>
</div>";
} }
?>
</div>
<?php
include 'include/footer.php';
?>
</body>
</html>
<?php
include 'include/user-bar.php';
?>
<div class='container'>
113
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
<?php
include 'include/menu.php';
include 'include/left-bar.php';
?>
<div class='content'>
<div class='search'>
<!--bara de cautare pentru produse -->
<form action='produse.php' method='post'>
<input type='text' name='search'
placeholder='Cauta obiect in functie de nume sau de
categorie'>
</form>
</div>
<?php
//se afiseaza toate produsele
$sql = "SELECT * FROM produse";
/*se verifica daca utilizatorul a ales categoria sau
s-a realizat o cautare */
if(isset($_GET['categorie']) ||
isset($_POST['search'])){
if(isset($_GET['categorie']))
//se verifica daca s-a ales o categorie
$sql .= " WHERE categorie =
'".$_GET['categorie']."'";
if(isset($_POST['search']) &&
$_POST['search'] != ''){
//se verifica daca s-a facut o cautare
$sql .= " WHERE categorie LIKE
'".$_POST['search']."' OR
nume LIKE '%".$_POST['search']."%' OR
descriere LIKE
'%".$_POST['search']."%'";
/*se cauta secvente de text prin intermediul
structurii %string% */
}
}
//se executa cerinta
$result = mysqli_query($conn, $sql);
114
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
echo "
<div class='imagine-produs'>
<a href='item.php?id=".$row['id']."'
target='_blank'>
<img src='img/".$row['imagine']."'
alt='".$row['categorie']."'>
<p>".$row['nume']."</p>
<p>Pret: ".$row['pret']." Stoc ramas:
".$row['stoc']."</p>
</a>
</div>";
}
?>
</div>
</div>
<?php
include 'include/footer.php';
?>
</body>
</html>
115
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
</body>
</html>
<div class='container'>
<?php
include 'include/user-bar.php';
include 'include/menu.php';
?>
<div class='content'>
<div class='descriere'>
<h1> Descrierea site-ului
magazinonline.com </h1>
<ul>
<li>
Magazinonline.com a fost creat in cadrul proiectului
Erasmus+ Actiunea Cheie 102 „ Acquisition of
professional web programming skills for an earlier
integration in the labor market” nr. ref. 2015 -1-
RO01-A102-014297.
</li>
<li>
Acesta are ca scop oferirea utilizatorului unei
platforme cat mai simple pentru a viziona produse si
chiar pentru a le cumpara.
</li>
<li>
Site-ul magazinonline.com ofera o gama variata de
rechizite pentru scolarii de pretuti ndeni la preturi
accesibile tuturor categoriilor sociale.
</li>
</ul>
116
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
</div>
<?php
include 'include/footer.php';
?>
</body>
</html>
function initialize()
{
var mapProp = {
center:myCenter,
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map= new
google.maps.Map(document.getElementById("googleMap")
,mapProp);
var marker=new google.maps.Marker({
position:myCenter,
});
marker.setMap(map);
117
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
google.maps.event.addDomListener(window, 'load',
initialize);
</script>
</head>
<body style='background-image:
url("img/background.jpg");padding-top: 40px;'>
<div class='container'>
<?php
include 'include/user-bar.php';
include 'include/menu.php';
?>
<div class='content'>
<div id="googleMap"
class='map'></div>
<div class='descriere'>
<h1>Contact</h1>
<p><img
src='img/phone.jpg'>Contacteaza -ne la numarul de
telefon: 0740 112 112</p>
<p><img src='img/email.ico'>Sau
trimite-ne un email la adresa:
proiect@phpinatl.org</p>
<p><img
src='img/location.png'>Vizitati -ne la adresa: Strada
Nicolae Iorga 19, Botoșani, Romania</p>
</div>
</div>
</div>
<?php
include 'include/footer.php';
?>
</body>
</html>
control_login.php
<?php
118
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
}
//daca emailul exista deja
else
119
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
{
$done = "<span
class='error'>Email deja utilizat!</span>";
}
}
//se verifica daca sunt campuri necompletate
else
{
$done = "<span class='error'>Toate
campurile trebuie completate!</span>";
}
}
//daca a fost trimis un formular de autentificare
if(isset($_POST['login']))
{
//se verifica daca sunt completate campurile
if($_POST['email']!='' &&
$_POST['parola']!='')
{
//se verifica daca exista un astfel de cont
$sql = "SELECT * FROM utilizator
WHERE email = '".$_POST['email']."' AND parola =
'".$_POST['parola']."'";
//se executa cerinta
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result)>0)
{
/*contul exista in baza de date, se salveaza contul
in sesiune, mai exact id-ul contului */
$row = mysqli_fetch_assoc($result);
/* se salveaza in sesiune variabila $row (vector)
care memoreaza tot randul cu utilizatorul gasit */
$_SESSION['id'] = $row['id_user'];
//se afiseaza mesaj de confirmare a inregistrarii
$login = "<span class='error'>Ai fost inregistrat cu
succes!</span>";
//dupa inregistrare se deschide pagina home
header( 'Location: produse.php' )
;
}
//daca nu este gasit contu l in baza de date
else{
$login = "<span
class='error'>Email sau parola gresite!</span>";
}
}
120
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
$host='localhost';
$username='root';
$password='';
$dbname='magazin';
$conn = mysqli_connect($host, $username,
$password, $dbname);
121
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
?>
<div class='category-header'>
CATEGORII
</div>
<ul>
<li><a
href='produse.php?categorie=birotica'>Produse de
birotica</a></li>
<li><a
href='produse.php?categorie=caiete'>Caiete</a></li>
<li><a
href='produse.php?categorie=rigle'>Rigle</a></li>
<li><a
href='produse.php?categorie=penare'>Penare si
ghiozdane</a></li>
<li><a
href='produse.php?categorie=hartie'>Hartie si
etichete</a></li>
</ul>
</div>
}
122
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
.user-bar li{
float: right;
margin-left: 30px;
height: 100%;
padding: 5px;
}
.user-bar li a{
text-decoration: none;
display: block;
color: #FCFC9F;
font-size: 20px;
}
.user-bar li a:hover {
color: #FCFC00;
font-size: 25px;
}
.user-bar img{
width: 30px;
height: 30px;
}
.left{
float: left;
font-family:"Lucida Sans Unicode", "Lucida
Grande", sans-serif;
}
</style>
<div class='user-bar'>
<?php
/*se verifica daca utilizatorul este logat si
afiseaza emailul in stanga */
if(isset($_SESSION['id']))
{
/*se cauta utilizatorul in baza de date dupa id pt a
se identifica emailul */
$sql = "SELECT * FROM utilizator
WHERE id_user = '".$_SESSION['id']."'";
//se executa cerinta
$result = mysqli_query($conn, $sql);
//este memorat de session, $row memoreaza randul
$row = mysqli_fetch_assoc($result);
//se afiseaza emailul
echo "<spam
class='left'>".$row['email']."</spam>";
123
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
}
?>
<ul>
<li>
<a href='cos.php'>
<img src='img/cart.jpg'>Cosul meu
</a>
</li>
<li>
<?php
/*daca utilizatorul este logat, se verifica daca a
fost creata sesiunea */
if(isset($_SESSION['id']))
{
echo "<a
href='login.php'>Delogare</a>";
}
else
{
echo "<a href='login.php'>Autentificare</a>";
}
?>
</li> </ul></div>
124
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
//realizarea comenzii
//daca este actionat butonul comenzii
if(isset($_POST['comanda']))
{
/*se cauta toate produsele din cosul utilizatorului
care nu au fost comandate inca si se marcheaza ca
fiind trimise*/
$sql = "SELECT * FROM cos WHERE id_user =
'".$_SESSION['id']."' AND comanda = '0'";
//se executa cererea
$result = mysqli_query($conn, $sql);
/*pentru fiecare produs din cos variabila $row preia
datele, se seteaza comanda cu valoarea 1 si se
adauga in tabela comanda*/
while($row = mysqli_fetch_assoc($result))
{
//se actualizeaza campul comand a
$sql = "UPDATE cos SET comanda = '1'
WHERE id_comanda = '".$row['id_comanda']."'";
//se executa cerinta
$res = mysqli_query($conn, $sql);
/*se calculeaza cat a ramas stocul produsului
comandat, se cauta produsul comandat cu ajutorul id -
ului*/
$sql = "SELECT * FROM produse WHERE
id = '".$row['id_produs']."'";
//se executa cerinta
$rezultat = mysqli_query($conn, $sql);
//se preiau datele produsului in $produs
$produs = mysqli_fetch_assoc($rezultat);
//se calculeaza stocul ramas in $stoc_ramas
$stoc_ramas = $produs['stoc'] - $row['stoc'];
//se actualizeaza produsul
$sql = "UPDATE produse SET stoc =
'".$stoc_ramas."' WHERE id = '".$produs['id']."';";
//se executa cerinta
$resultat_final = mysqli_query($conn, $sql);
}
/*se afiseaza mesaj de confirmare pentu finalizarea
operatiei */
$done = "<span style='color: red;'>Comanda
dumneavoastra a fost realizata cu succes!</span>";
}
?>
125
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
}
.menu ul{
list-style-type: none;
}
.menu ul li{
float: left;
}
.menu ul li a{
display: block;
126
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.menu ul li a:hover:not(.active) {
color: #aaaaaa;
}
.active{
background-color: #4CAF50;
}
</style>
<div class='menu'>
<ul>
<li><a href='home.php'
<?php
//se verifica daca numele fișierului este home.php
if(basename($_SERVER['PHP_SELF'])=='home.php')
echo "class='active'"?>
> Home </a></li>
<li><a href='descriere.php'
<?php
/*se verifica daca numele fișierului este
descriere.php */
if(basename($_SERVER['PHP_SELF'])=='descriere.p
hp') echo "class='active'"?>
> Descriere </a></li>
<li><a href='produse.php'
<?php
/*se verifica daca numele fișierului este
produse.php */
if(basename($_SERVER['PHP_SELF'])=='produse.php
') echo "class='active'"?>
> Produse </a></li>
<li><a href='contact.php'
<?php
/*se verifica daca numele fișierului este
contact.php */
if(basename($_SERVER['PHP_SELF'])=='contact.php
') echo "class='active'"?>
127
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
1. main.php
2. descriere.php
128
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
3. produse.php
4. contact.php
129
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
5. login.php
6. cos.php
130
PHP- GHID DE PROGRAMARE WEB PENTRU ÎNCEPĂTORI
Webografie
• http://www.w3schools.com/html/default.asp
• http://www.w3schools.com/css/default.asp
• http://www.w3schools.com/sql/default.asp
• http://www.w3schools.com/php/default.asp
• https://secure.php.net/manual/ro/
• http://www.learn-php.org/
• http://www.homeandlearn.co.uk/php/php.html
131