Documente Academic
Documente Profesional
Documente Cultură
PHP
GHID DE PROGRAMARE WEB
PENTRU NCEPTORI
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
Colaboratori:
Coninuturi capitolele 1, 2 : Ralph-Mller Lucanus
Coninuturi capitolul 3 : Mihaela-Liliana Prjinariu
Coninuturi capitolul 4 : Vlad Batalan
Copert : Andra-Mlina Carda
2
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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 ieire ............................................. 19
Domeniul de vizibilitate al variabilelor ............... 20
Domeniul Global i Local ................................... 20
Specificatorul global ........................................ 21
Instruciunile echo i print ................................ 22
Stringuri PHP.................................................... 23
Constante PHP ...................................................... 23
Operatori PHP....................................................... 24
Structuri de control ............................................... 24
Instruciuni de decizie....................................... 24
Instruciuni de ciclare n PHP ............................. 25
Funcii PHP ........................................................... 25
Funcii 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 NCEPTORI
4
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
1. Introducere
Limbajele pe care se bazeaz PHP sunt :
HTML ( Hyper Text Markup Language) pentru definirea
coninuturilor paginilor web
CSS ( Cascading Style Sheets)- pentru definirea aspectului
paginilor web
JavaScript- pentru programarea evenimentelor din paginile
web, pentru a aduga 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 rspndire
n domeniul IT
gratis pentru a fi descrcat i utilizat
De ce este un limbaj att 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 reea social (Facebook)!
de asemenea, este destul de uor s fii un programator
nceptor de server-side!
PHP...
Fiierele PHP pot conine 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
Fiierele PHP au extensia ".php"
5
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
Ce avem de fcut?
Server side:
La nceput pornim serverul web (localhost).
Apoi scriem codul de mai sus ntr-un editor de text, cum ar fi
Notepad++ .
Salvm fiierul cu numele introduction.php n directorul
C:/xampp/htdocs.
Client side:
Dup salvarea fiierului l deschidem n browser
(http://localhost/introduction.php) i analizm coninutul
paginii web afiate n browser.
6
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
7
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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 NCEPTORI
/* 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 NCEPTORI
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 NCEPTORI
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 NCEPTORI
<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 NCEPTORI
Primii pai:
Creai un nou folder n directorul "C: / xampp /" (denumit
"day_1")
Copiai "basis.html" cu numele "basis.php" n directorul "C: /
xampp / htdocs / day_1"
Creai un folder denumit "css" n "C: / xampp / htdocs /
day_1" i copiai "basis.ccs" n "C: / xampp / htdocs / day_1 /
css"
Creai fiierele pe care le vei include n fiierul .php (Footer,
Content, Navigation)
Pentru a include fiierele n "basis.php", utilizai instruciunea
include.
Pentru o organizare optim a fiierelor pe disc v propunem
urmtoarea structur de directoare i fiiere :
13
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
Modul de funcionare al
interpretorului PHP este ilustrat
de figura din dreapta i de figura
din pagina urmtoare :
15
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
16
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
<?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 secvene 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, funcii i funcii definite de utilizator nu sunt sensibile la
scrierea cu litere mici sau cu litere mari.
n exemplul de mai jos, cele 3 instruciuni 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 NCEPTORI
Variabile PHP
Variabilele reprezint containere pentru memorarea informaiilor.
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 execuia instruciunilor 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
instruciune de declarare a variabilelor. Aceasta este creat n
momentul n care i se atribuie prima valoare.
Tratai variabilele ca i containere pentru stocarea informaiilor!
18
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
19
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
20
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // afieaz 15
?>
21
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
$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 NCEPTORI
Constante PHP
O constant este un identificator (nume) pentru o valoare simpl.
Valoarea nu poate fi modificat n timpul execuiei 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 funcia define().
Modul de utilizare a funciei define():
define(nume, valoare, case-insensitive)
Parametrii funciei i semnificaia acestora:
nume: specific numele constantei
valoarea: specific valoarea constantei
23
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
Operatori PHP
Operatorii sunt utilizai pentru a realiza diferite operaii cu variabile i
valori constante.
Operatorii n limbajul PHP se clasific astfel:
Operatori aritmetici (+, -, *, /, %, **)
Operatori de atribuire (=, +=, -=, *=, /=, %=)
Operatori relaionali (==, ===, !=, <>, !==, >, <, >=, <=)
Operatori de incrementare/decrementare (++$x, $x++, --$x,
$x--)
Operatori logici (and, or, xor, &&, |, !)
Operatori pe stringuri (., .=)
Operatori pe tablouri (+, ==, ===, !=, <>, !==)
Pentru mai multe informaii accesai linkul:
http://www.w3schools.com/php/php_operators.asp
Structuri de control
Instruciuni de decizie
Instruciunile condiionale (de decizie) sunt utilizate pentru a executa
anumite aciuni bazate pe condiii.
Foarte des atunci cnd scriem cod, dorim s efectum aciuni diferite
pentru diferite condiii.
n PHP exist urmtoarele instruciuni de decizie:
if execut o secven de cod dac o condiie logic este
adevrat
if...else - execut o secven de cod dac o condiie logic
este adevrat i execut alt secven de cod dac condiia
este fals
24
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
Funcii PHP
Adevrata putere a limbajului PHP deriv din funciile sale, limbajul
ncorporeaz peste 1000 de funcii predefinite.
Funcii definite de utilizator n limbajul PHP
n afar de funciile predefinite ale limbajului, ne putem crea
propriile noastre funcii.
Funcia reprezint un bloc de instruciuni care poate fi
executat n mod repetat n cadrul unui program.
Funcia nu se va executa imediat ce se ncarc pagina n
browser, aceasta se va executa doar n urma unui apel.
Crearea unei funcii definite de utilizator n PHP:
O funcie definit de utilizator ncepe cu cuvntul rezervat "function":
25
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
Sintaxa:
function functionName() {
code to be executed;
}
Not: Numele unei funcii ncepe cu o liter sau simbolul _, nu
poate ncepe cu o cifr.
Alegei nume sugestive pentru funcii care s reflecte scopul acesteia.
Numele de funcii nu sunt case-sensitive.
Pentru mai multe detalii accesai:
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 mulime de valori.
Exemplu:
<?php
$cars = array("Volvo","BMW", "Toyota");
echo "I like ".$cars[0].",".$cars[1] ."and"
.$cars[2].".";
?>
Dac avei de memorat o list de valori (de exemplu numele unor
maini), memorarea acestor date ar arta n modul urmtor:
$cars1 = "Volvo";
$cars2 = "BMW";
$cars3 = "Toyota";
Dac ar trebui s scriei un cod pentru identificarea une i anumite
maini dintr-o mulime de 3 sau 300 de maini, cum ar arta codul?
Soluia n acest caz este s creai un tablou.
Un tablou poate stoca o mulime de valori, utiliznd un nume unic, iar
regsirea unei valori se va realiza prin referirea la un anumit
index(poziia ocupat de valoare ).
Pentru crearea unui tablou n PHP se utilizeaz funcia 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 conin unul sau
mai multe tablouri
26
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
Sortarea tablourilor
sort() sorteaz tablourile n ordine cresctoare
rsort() - sorteaz tablourile n ordine descresctoare
asort() - sorteaz tablourile asociative n ordine cresctoare,
n funcie de o valoare dat
ksort() - sorteaz tablourile asociative n ordine cresctoare,
n funcie de o cheie dat
arsort() - sorteaz tablourile asociative n ordine
descresctoare, n funcie de o valoare dat
krsort() - sorteaz tablourile asociative n ordine
descresctoare, n funcie de o cheie dat
</body>
</html>
Atunci cnd utilizatorul completeaz formularul de mai sus i d clic
pe butonul de trimitere, datele din formular sunt trimise pentru
procesare ntr-un fiier PHP denumit "welcome.php". Datele din
formular sunt trimise prin metoda HTTP POST.
Metoda HTTP POST i variabila superglobal $_POST
Pentru afiarea datelor trimise prin intermediul formularu lui putem
utiliza variabila superglobal $_POST i instruciuni de afiare a
diferitelor componente ale acesteia. Fiierul "welcome.php" va arta
astfel:
<html>
<body>
28
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
</body>
</html>
</body>
</html>
29
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
30
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
31
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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 NCEPTORI
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}
}
?>
Apoi, n formularul HTML adugm un mic script dup fiecare cmp
care genereaz mesajul de eroare corespunztor. Acest mesaj va fi
afiat dac utilizatorul ncearc s trimit datele fr a completa unul
dintre cmpurile obligatorii.
Afiarea mesajelor de eroare la completarea cmpurilor 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 NCEPTORI
34
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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 informaiilor
astfel nct acestea s poat fi utilizate n mai multe pagini web. Spre
deosebire de un cookie, informaiile nu sunt stocate pe computerul
utilizatorului.
O sesiune dureaz att timp ct utilizatorul acceseaz un site i se
ncheie o dat cu nchiderea browserului. Accesarea unei pagini web
este o operaie de sine stttoare, orice accesare ulterioar a aceleiai
pagini (spre exemplu un refresh) se va face fr ca serverul "s tie" de
accesrile anterioare. La fel se ntmpl atunci cnd sunt accesate mai
multe pagini diferite una dup alta.
Variabilele sesiune rezolv aceast problem prin stocarea
informaiilor 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 NCEPTORI
<?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 NCEPTORI
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Se afieaz 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 NCEPTORI
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 NCEPTORI
?>
<html>
<body>
<h3>This is the other page</h3>
<?php
</body>
</html>
Baze de date
O baz de date reprezint o colecie de date organizat astfel nct un
program s poat selecta rapid datele necesare la un moment dat.
39
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
40
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
// Crearea conexiunii
$conn = mysqli_connect($servername, $username,
$password);
// verificarea conexiunii
If (!$conn) {
41
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
Pentru crearea sau tergerea unei baze de date sunt necesare privilegii
de tip CREATE.
3. Crearea unei baze de date MySQL utiliznd MySQLi
Comanda CREATE DATABASE este utilizat pentru crearea unei
baze de date n MySQL. n exemplul urmtor 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 NCEPTORI
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 aduga 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 interogri trebuie s fie
delimitate de ghilimele
Valorile numerice nu se scriu ntre ghilimele
Cuvntul NULL nu se scrie ntre ghilimele
Comanda INSERT INTO este utilizat pentru adugarea de noi
nregistrri 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 aduga automat valori n aceste cmpuri.
n exemplul urmtor vom aduga 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 NCEPTORI
// 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
cmp ID cu atributul AUTO_INCREMENT, putem obine valoarea
din cmpul ID al ultimei nregistrri inserate/actualizate.
7. Obinerea ID-ului ultimei nregistrri 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 NCEPTORI
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 nregistrri 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 NCEPTORI
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) {
// afieaz datele fiecrei nregistrri
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 NCEPTORI
// 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 NCEPTORI
// 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 NCEPTORI
creat.
x Fiierul este creat i deschis pentru scriere. Pointerul la
nceputul fiierului. n caz c fiierul exist se genereaz o
eroare de tip E_WARNING, iar funcia fopen() returneaz
false.
x+ Fiierul este creat i deschis pentru scriere i citire. Pointerul
la nceputul fiierului. n caz c fiierul exist se genereaz o
eroare de tip E_WARNING, iar funcia fopen() returneaz
false.
53
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
<?php
$myfile = fopen("webdictionary.txt", "r") or
die("Unable to open file!");
fclose($myfile);
?>
fclose($myfile);
?>
54
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
</body>
</html>
56
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
Not:
Atributul type="file" al tagului <input> seteaz cmpul din
formular ca fiind un control de tip file-select, care va afia n
formular un buton "Browse"
57
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
58
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
}
}
// verificm dac fiierul exist n directorul
uploads
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// verificm dimensiunea fiierului
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Verificm formatele de fiier
59
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
3. Fie de lucru
FIA DE LUCRU NR.1- instalarea produselor software
1. Download-ai pachetul web XAMPP compatibil cu sistemul de
operare instalat pe computerul vostru de la adresa
https://www.apachefriends.org/ro/download.html i acceptai
setrile implicite pentru instalare.
2. Navigai n Windows i localizai directorul C:/XAMPP cu
subdirectorul htdocs.
3. Pornii aplicaia XAMPP - Control Panel lansnd n execuie
fiierul xampp-control.exe.
60
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
include 'footer.php';
?>
</div>
</div>
</body>
</html>
62
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
<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 NCEPTORI
foreach($cars as $car)
echo "I like " . $car. "<br>";
?>
2. Declarai i iniializai un tablou numit cars n care memorai
mrcile a 3 maini. Sortai cresctor tabloul i afiai 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. tergei fiierele html.
65
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
<?php
$x = 5; //variabila global
function Mytest3() {
//utilizarea variabilei x n interiorul
funciei
//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 NCEPTORI
</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. Creai un fiier HTML care afieaz un formular cu dou cmpuri
i un buton submit, utiliznd 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 NCEPTORI
<?php
// declar i iniizeaz variabilele folosite
//pentru afiarea 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 NCEPTORI
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 NCEPTORI
?>
<?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 NCEPTORI
<?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 NCEPTORI
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
73
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
74
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
75
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
$conn=mysqli_connect($servername,$username,$pa
ssword,$dbname);
if(!$conn)
{
die("connection
failed".mysqli_connect_error());
}
76
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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 NCEPTORI
$_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 NCEPTORI
</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 NCEPTORI
Fiierul 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 NCEPTORI
.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 NCEPTORI
.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 NCEPTORI
.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
}
Fiierul 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 NCEPTORI
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;
}
Fiierul 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 NCEPTORI
}
.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);
}
Fiierul 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 NCEPTORI
.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 NCEPTORI
88
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
89
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
90
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
92
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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 NCEPTORI
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 NCEPTORI
//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 NCEPTORI
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 NCEPTORI
99
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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 NCEPTORI
101
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
cos.php
<html>
<head>
<!--se include pagina de conectare la baza de date
-->
<?php
include include_database.php;
//se include fiierul operatii_in_cos.php
include operatii_in_cos.php;
?>
</head>
<body>
<h1> Cosul meu </h1>
102
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
103
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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 NCEPTORI
105
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
106
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
</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 NCEPTORI
108
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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 NCEPTORI
<?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 NCEPTORI
<?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 NCEPTORI
112
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
<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 NCEPTORI
<?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 NCEPTORI
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 NCEPTORI
</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 NCEPTORI
</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 NCEPTORI
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, Botoani, Romania</p>
</div>
</div>
</div>
<?php
include 'include/footer.php';
?>
</body>
</html>
control_login.php
<?php
118
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
}
//daca emailul exista deja
else
119
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
{
$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 NCEPTORI
$host='localhost';
$username='root';
$password='';
$dbname='magazin';
$conn = mysqli_connect($host, $username,
$password, $dbname);
121
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
?>
<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 NCEPTORI
.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 NCEPTORI
}
?>
<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 NCEPTORI
//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 NCEPTORI
}
.menu ul{
list-style-type: none;
}
.menu ul li{
float: left;
}
.menu ul li a{
display: block;
126
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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 fiierului 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 fiierului 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 fiierului 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 fiierului este
contact.php */
if(basename($_SERVER['PHP_SELF'])=='contact.php
') echo "class='active'"?>
127
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
1. main.php
2. descriere.php
128
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
3. produse.php
4. contact.php
129
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
5. login.php
6. cos.php
130
PHP- GHID DE PROGRAMARE WEB PENTRU NCEPTORI
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