Web proqramlaşdırma sahəsində çalışan mütəxəssislər və bu sahəyə yeni başlayaraq ilk addımlarını atmaq
istəyən şəxslər, “Kompüter elmləri” ixtisasında və informasiya texnologiyaları ilə əlaqədar olan digər
ixtisaslarda təhsil alan ali məktəb tələbələri, magistrantları üçün dərs vəsaiti.
İlk addımlar
PHP necə işləyir?
Adi HTML səhifə üçün serverə sorğu
PHP skriptin icrası üçün serverə sorğu
Hazır Web Server paketləri
http:// vs file://
Adi fayl sistemi
Web Server
Apache HTTP Server (Web Server)
httpd.conf faylı
.htaccess faylı
Laboratoriya işi #01 (.htaccess-lə iş)
PHP-nin quraşdırılması
Windows sistemində PHP-nin quraşdırılması
Linux sistemində PHP-nin quraşdırılması
php.ini
Serverə altdomen əlavə etmək
PHP- ni yeniləmək
Laboratoriya işi #02 (İlk PHP Skript)
PHP-yə giriş
PHP teqlər
Short Tag
Klassik üsul
ASP Tags
Script tag
phpinfo()-da Local və Master qiymətləri
PHP-nin Xüsusiyyətləri
PHP-də şərhlər
Məlumatların çap edilməsi
print ilə yazıların ekrana çıxarılması
echo ilə yazıların ekrana çıxarılması
print və echo yazılışının fərqləri
PHP-də dəyişənlər
Dəyişənlərə qiymət verilməsi və silinməsi
camelCase, PascalCase və snake_case
Camel Style (camelCase)
PascalCase
Snake Style (snake_case)
PHP-də xətalar haqqında
Sintaksis səhvlər
Fatal error
Warning
Notice
Laboratoriya işi #03 (Dəyişənlərlə iş)
Verilənlərin tipləri
Məntiqi tiplər
Integer və Float tipi
String tipi
Laboratoriya işi #04 (Dəyişən tipləri ilə iş)
String tipində heredoc və nowdoclar
NULL tipi
Dəyişənlərin ekrana çıxarılması qaydası
Sətirdəki simvolun ekrana çıxarılması
Hesablama operatorları
Hesablama əməliyyatları ilə bəzi məsələlər
Laboratoriya işi #05 (Riyazi əməliyyatlar)
Sətir operatorları
Yararlı funksiyalar
Dəyişənin tipinin dəyişdirilməsi
Konstantlar
Laboratoriya işi #06 (Konstantlarla iş)
PHP-də Şərtlər
Tutuşdurma operatorları
Məntiqi operatorlar
if şərt operatoru
else operatoru
elseif
Laboratoriya işi #08 (if-elseif-else konstruksiyası)
Switch case
Laboratoriya işi #09 (switch konstruksiyası) 2
PHP – dövrlər
İnkrement və dekrement operatorları
PRE inkrement/dekrement
PRE İnkrement nümunəsi
POST inkrement/dekrement
POST İnkrement nümunəsi
For dövru
Laboratoriya işi #10 (For dövrü ilə iş)
While dövru
Laboratoriya işi #11 (while dövrü ilə iş)
Do...while dövru
Laboratoriya işi #12 (Dövrlərlə iş)
Dövrlərin idarə edilməsi
Break arqumenti
Continue arqumenti
Laboratoriya işi #13 (Dövrlərin praktik istifadəsi)
Foreach dövru
Foreach dövrü (uzun)
Laboratoriya işi #14 (Dövrlərlə iş)
Laboratoriya işi #15 (Foreach dövrünün praktik istifadəsi) 2
İstifadəçi funksiyaları
Funksiyanın yazılması
Funksiyanın çağırılması
Funksiyanın arqumentləri
Laboratoriya işi #16 (Funksiyalarla iş)
Funksiyanın susmaya görə arqumentləri
Laboratoriya işi #17 (Funksiyalarla işin davamı: Susmaya görə qiymətlər)
Dəyişənlərin görünmə əhatəsi, qlobal və lokal dəyişənlər
Statik dəyişənlər
Funksiyada qiymətin qaytarılması
Laboratoriya işi #18 (Funksiyaların praktik istifadəsi)
Rekursiv funksiya
Hazır funksiyalar
Dəyişənlərlə işləyən funksiyalar
Riyazi funksiyalar
Sətirlərlə işləyən funksiyalar
Laboratoriya işi #19 (Sətirlərlə işləyən funksiyalar)
Massivlərlə işləyən funksiyalar
Vaxt və tarixlə işləyən funksiyalar
int time()
Laboratoriya işi #20 (Tarix və vaxtla işləyən funksiyaların istifadəsi)
PHP Manual
PHP manualın istifadə qaydaları
Əvvəlcədən təyin edilmiş kontantlar
Əvvəlcədən təyin edilmiş dəyişənlər
SSI (Server Side Includes) emulyasiya edən funksiyalar
Include_once
require və require_once
Laboratoriya işi #21 (Saytın yığılması)
HTTP protokolu ilə iş – formalar
HTTP/1.1 protokolu
Serverdən gələn cavab kodları
Formalarla iş
GET və POST metodları
GET Metodu
POST Metodu
Metodların fərqləri
Sorğuların emalı
Massivlərdən məlumatların verilməsi və emalı
Laboratoriya işi #22 (GET metodu və onun emalı)
Laboratoriya işi #23 (Onlayn kalkulyator)
Serverin başlığının cavabı və cookie
Sesiya və daimi Cookielər (kukilər)
Cookie (kuki) Necə işləyir?
Kukinin yazılması, oxunması və silinməsi
Laboratoriya işi #24 (Cookilərin istifadəsi)
Serialize və Json
Serialize
JSON - JavaScript Object Notation
HEAD sorğusu
Səhifənin yenidən yüklənməsi (Refresh başlığı)
Digər səhifələrə keçid (Yönlənmə və Location başlığı)
Sənədin tipinin təyin edilməsi (Content-Type başlığı)
Keşlənmə və onun qadağan olunması (Cache-Control və Expires başlıqları)
Xeşlənmə, Şifrələnmə
Regular Expressions
Regular Expressionsun sintaksisi
Regular Expressionsa Nümunələr
Regular Expressionsun PHP-də istifadəsi
Sesiyalar. Fayl və qovluqlarla iş
Sessiyaların işləməsi
Sesiyalar: Yaradılması, yazılması, oxunması və silinməsi
Laboratoriya işi #25 (Sesiyaların istifadəsi)
PHP-nin fayllarla işləyən funksiyaları
Fayllarla əməliyyatlar: oxuma, köçürmə, adını dəyişmə, silmə
Fayllarla işləmə rejimi
Faylların açılması və bağlanması
Faylların oxunması
Fayllara məlumat yazılması
Faylda kursorla iş (Fayl daxili mövqe)
Fayllarla birbaşa işləmək üçün funksiyalar
Faylların idarə edilməsi
Laboratoriya işi #26 (Fayllarla iş)
Fayllarla işləmək üçün CURL funksiyaları
Qovluqlarla iş: Yaradılma, oxuma və silmə
Faylın HTTP protokolu ilə sayta yüklənməsi
Faylların serverdə qəbulu
Faylın serverə yükənməsi vaxtı olan səhvlər
Verilənlər bazasının əsasları. MySQL verilənlər bazası.
Verilənlər bazası haqqında ümumi məlumat
Verilənlər bazasının layihələşməsi
Verilənlər bazasının strukturuna tələblər
Cədvəllər
SQL haqqında ümumi məlumat
SQL Sorğular
SELECT sorğusu
SELECT sorğusunda cədvəllərin birləşməsi
INSERT sorğusu ilə məlumatların cədvələ əlavə edilməsi
Məlumatların cədvəldən silinməsi üçün DELETE sorğusu
Cədvəldəki məlumatların dəyişdirilməsi, UPDATE sorğusu
İndekslər
Unikal indekslər
Birləşmiş İndekslər
Əsas açar indeksi (Primary Key)
MySQL verilənlər bazası
MySQL-də Verilənlər Bazası və Cədvəllərin yaradılması
MySQL Serveri
Konfiqurasiya faylı (my.ini, my.cnf)
MySQL verilənlər bazası ilə işləyən utilitlər
Komand sətiri ilə işləyən utilitlər
MySQL Workbench
Navicat
phpMyAdmin
MySQL utilitinin istifadəsi
mysqldump utilitinin istifadəsi
Laboratoriya işi #27 (MySQL)
MySQL verilənlər bazasının PHP-də istifadəsi.
PHP-də verilənlər bazası ilə işləməyin alqoritmi
MySQLi əlavəsi
MySQLi əlavəsinin xüsusiyyətləri
MySQLi əlavəsi ilə əlaqədar xəbərdarlıq
MySQL verilənlər bazasına qoşulma
Sorğunun cavabını massivə verilməsi
MySQL verilənlər bazası ilə işləyən PHP funksiyalar
MySQL sorğuların indeksləşmiş massiv kimi qaytarılması
MySQL sorğuların assosiativ massiv kimi qaytarılması
MySQL sorğuların bir bir seçimi
MySQL sorğuları ilə olan faydalı nəticələr
Laboratoriya işi #28 (Məlumatları MySQL bazasında saxlayan qonaq kitabı)
Hazırlanmış sorğuların istifadə edilməsi
Laboratoriya işi #29 (İnternet maqazin)
PHP-də obyekt yönümlü proqramlaşdırma
OYP giriş
Klaslar
Klasın inisializasiyası (Obyektin yaradılması)
Xassə və metodlar
Klasın xassələri
Klasın xassələrinə yol
Laboratoriya işi #30 (OYP-ın praktik istifadəsi: xassələrlə olan klasın yaradılması, klasın mümunəsinin
yaradılması, obyektin nəticəsinin inisiallaşması)
Klasın metodları
Metodun çağırılması
$this cari obyekti
__METHOD__, __CLASS__ psevdo-konstantları
Laboratoriya işi #31 (Metod və klaslarla iş)
Konstruktor və destruktorlar
Konstruktorun yazılışı və çağırılması
Destruktorun yazılışı və çağırılması
Laboratoriya işi #32 (Klasın konstruktoru ilə iş)
Obyektlərin klonlaşdırılması
__clone() metodu
Laboratoriya işi #33 (__clone() metodunun istifadəsi)
Varislik (Polimorfizm)
Laboratoriya işi #34 (Varis klasın yaradılması)
Metodların yüklənməsi
Laboratoriya işi #35 (Varis klasın konstruktoru və metodların yüklənməsi)
Parent açar sözü
Laboratoriya işi #36 (Əsas metodun yüklənmiş metodda istifadə edilməsi)
Daxilolma metodları
public modifikatoru
protected modifikatoru
private modifikatoru
Daxil olma spesifikatorları: bu necə işləyir?
İstisnaların işlənməsi sxemi try/catch/throw
Laboratoriya işi #37 (Səhvlərin generasiya olunması və tapılması)
Şəxsi istisnaların yaradılması
Obyektin xassəsinin pereboru (yığılması)
Klasın konstantları
Laboratoriya işi #38 (Klasın konstantları: Yarazılması və istifadəsi)
Abstrakt klas və metodlar
Laboratoriya işi #39 (Abstrakt klas və metodlar: Cağırılma və istifadəsi)
İnterfeyslər
Abstrakt və İnterfeys klasların fərqi
Laboratoriya işi #40 (İnterfeyslər: Cağırılma və istifadəsi)
Final metodlar
Final klaslar
Klasın statik xassə və metodları
Laboratoriya işi #41 (Klasın statik xassələri: Çağırılma və istifadə)
Instanceof açar sözü
Laboratoriya işi #42 (Instanceof açar sözü: Obyektin tipinin yoxlanılması)
__autoload() funksiyası
Laboratoriya işi #43 (__autoload() funksiyası: Çağırılma və istifadə)
Obyektin xassələrinə keçmə metodları
Mövcud olmayan metodların yüklənməsi
Mövcud olmayan statik metodların yüklənməsi
__toString() metodu
Laboratoriya işi #44 (__toString() metodu: obyektin sətirə dəyişdirilməsi)
Qrafika ilə iş
PHP-də qrafika ilə iş. GD2 kitabxanası
Şəklin yaradılması və generasiyası
Şəklin yaradılması
Sənədin tipi
Şəklin generasiyası
Şəklin çəkilməsi
Şəkli hamarlamaq
Şəkil üçün rəngin təyin edilməsi
Xəttin çəkilməsi
Düzbucağın çəkilməsi
Çoxbucaqlının çəkilməsi
Ellipsin çəkilməsi
Ellipsin sektorunun çəkilməsi (Duqa)
Mətnin yazılması
TryType fontları istifadə edərək mətnin sətirinin çəkilməsi
Mövcud faylın əsasında yeni şəklin yaradılması
Laboratoriya işi #45 (CAPTCA yaradılması və istifadəsi)
Təhlükəsizlik
Boşluqlar hardan ola bilər
Təhlükə mənbələri
OWASP Top 10
Təhlükə mövzuları
Damn Vulnerable Web Application (DVWA)
DVWA quraşdırılması
XSS - Cross Site Scripting
Aşağı səviyyəli XSS (low level)
Funksiyanı yaratdıqdan sonra daxil olunan məlumatları filterdən keçirtmək lazımdır.
Orta səviyyəli XSS (medium level)
Çətin səviyyəli XSS (high level)
Mümkünsüz XSS (impossible level)
SQL Injection
SQL Injection nədir?
Aşağı səviyyəli SQL Injection (low level)
Orta səviyyəli SQL Injection (medium level)
Çətin səviyyəli SQL Injection (high level)
SQL Injection qorunma
Kitab: PHP Web proqramlaşdırma dili Ali məktəblər üçün dərs vəsaiti: Bakı Dövlət Universitetinin Rektorunun 16.12.2021 tarixli R-156
saylı əmri ilə təsdiq olunmuşdur. Nəşriyyat:Şərq Qərb Kitabın dili: Azərbaycan Səhifə sayı: 280 Cild: Yumşaq Nəşr tarixi: 2023-cü il Məkan: Bakı, Azərbaycan ISBN: 9789952567014 Praktik tapşırıqlar: 45 Laboratoriya işi Müəlliflər:Rəşad Namiq oğlu Əliyev və Ələkbər Əliağa oğlu Əliyev Elmi redaktor: Ramin Əlinazim oğlu Mahmudzadə Rəyçilər: Hicran Bahadır oğlu Mehdiyev və Ramin Rza oğlu Rzayev Qrup: PHP Proqramlaşdırma, Təhlükəsiz Proqramlaşdırma, SQL, MySQL təlimat, Obyekt Yönümlü
Proqramlaşdırma, WEB Proqramlaşdırma