Moduł 1: Wprowadzenie do PHP
PHP (Hypertext Preprocessor) to skryptowy język programowania, który jest szczególnie przydatny do tworzenia dynamicznych stron internetowych. Jest to język wykonywany po stronie serwera, co oznacza, że kod PHP jest przetwarzany na serwerze, a wynik (np. HTML) jest wysyłany do przeglądarki użytkownika.
Kluczowe zagadnienia:
- Historia PHP: PHP został stworzony w 1994 roku przez Rasmusa Lerdorfa. Obecnie jest jednym z najpopularniejszych języków do tworzenia stron internetowych.
- Zastosowania: PHP jest używany do tworzenia stron internetowych, systemów zarządzania treścią (CMS), sklepów internetowych, aplikacji webowych i wielu innych.
- Pierwszy skrypt PHP: Skrypty PHP są osadzone w plikach HTML i rozpoczynają się od
<?phporaz kończą?>.
Przykład kodu:
<?php
echo "Witaj, świecie!";
?>
Ten skrypt wyświetli tekst "Witaj, świecie!" na stronie internetowej.
Ćwiczenie:
Stwórz plik index.php i umieść w nim powyższy kod. Uruchom go na lokalnym serwerze (np. XAMPP) i zobacz wynik w przeglądarce.
Moduł 2: Podstawy składni PHP
Składnia PHP jest podobna do innych języków programowania, takich jak C czy Java. Każda instrukcja kończy się średnikiem (;), a bloki kodu są otoczone nawiasami klamrowymi ({}).
Kluczowe zagadnienia:
- Zmienne: W PHP zmienne zaczynają się od znaku dolara (
$), np.$imie = "Jan";. - Typy danych: PHP obsługuje różne typy danych, takie jak ciągi znaków (string), liczby całkowite (int), liczby zmiennoprzecinkowe (float), tablice (array) i inne.
- Operatory: PHP oferuje operatory arytmetyczne (
+,-,*,/), porównania (==,!=,>,<) oraz logiczne (&&,||,!).
Przykład kodu:
<?php
$liczba1 = 10;
$liczba2 = 5;
$suma = $liczba1 + $liczba2;
echo "Suma: " . $suma;
?>
Ten skrypt oblicza sumę dwóch liczb i wyświetla wynik.
Ćwiczenie:
Napisz skrypt, który sprawdzi, czy liczba jest parzysta, i wyświetli odpowiedni komunikat.
Moduł 3: Funkcje w PHP
Funkcje w PHP pozwalają na organizację kodu i jego wielokrotne wykorzystanie. Funkcje mogą przyjmować argumenty i zwracać wartości.
Kluczowe zagadnienia:
- Definiowanie funkcji: Funkcje definiuje się za pomocą słowa kluczowego
function, np.function powitanie($imie) { ... }. - Argumenty i wartości zwracane: Funkcje mogą przyjmować argumenty i zwracać wartości za pomocą
return. - Zakres zmiennych: Zmienne wewnątrz funkcji są lokalne, chyba że użyjemy słowa kluczowego
global.
Przykład kodu:
<?php
function obliczSrednia($liczby) {
$suma = array_sum($liczby);
$ilosc = count($liczby);
return $suma / $ilosc;
}
$tablica = [10, 20, 30, 40, 50];
echo "Średnia: " . obliczSrednia($tablica);
?>
Ten skrypt oblicza średnią z tablicy liczb.
Ćwiczenie:
Napisz funkcję, która przyjmuje dwie liczby i zwraca większą z nich.
Moduł 4: Praca z tablicami
Tablice w PHP są używane do przechowywania wielu wartości w jednej zmiennej. Mogą być indeksowane numerycznie lub asocjacyjnie.
Kluczowe zagadnienia:
- Tworzenie tablic: Tablice można tworzyć za pomocą
array()lub składni krótkiej[]. - Indeksowanie tablic: Tablice numeryczne mają indeksy liczbowe, a asocjacyjne — klucze tekstowe.
- Funkcje do pracy z tablicami: PHP oferuje wiele funkcji, takich jak
array_push(),array_pop(),array_merge()i inne.
Przykład kodu:
<?php
$kolory = ["czerwony", "zielony", "niebieski"];
$kolory[] = "żółty"; // Dodanie nowego elementu
print_r($kolory);
?>
Ten skrypt tworzy tablicę kolorów i dodaje do niej nowy element.
Ćwiczenie:
Stwórz tablicę asocjacyjną, która przechowuje imiona i wiek kilku osób, a następnie wyświetl te dane.
Moduł 5: Obsługa formularzy
PHP umożliwia łatwe przetwarzanie danych z formularzy HTML. Dane mogą być przesyłane metodą GET lub POST.
Kluczowe zagadnienia:
- Metoda GET: Dane są przesyłane w adresie URL. Dostęp do nich uzyskujemy przez
$_GET. - Metoda POST: Dane są przesyłane w ciele żądania. Dostęp do nich uzyskujemy przez
$_POST. - Walidacja danych: Przed przetworzeniem danych należy je zwalidować, np. sprawdzić, czy pole nie jest puste.
Przykład kodu:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$imie = htmlspecialchars($_POST['imie']);
echo "Witaj, " . $imie . "!";
}
?>
<form method="post" action="">
Imię: <input type="text" name="imie">
<input type="submit" value="Wyślij">
</form>
Ten skrypt przetwarza dane z formularza i wyświetla powitanie.
Ćwiczenie:
Stwórz formularz z polem do wprowadzenia wieku i wyświetl komunikat, czy użytkownik jest pełnoletni.
Moduł 6: Praca z bazami danych
PHP może łączyć się z bazami danych, takimi jak MySQL, aby przechowywać i pobierać dane.
Kluczowe zagadnienia:
- Łączenie z bazą danych: Użyj funkcji
mysqli_connect()lub klasymysqli. - Wykonywanie zapytań: Użyj funkcji
mysqli_query()do wykonywania zapytań SQL. - Zabezpieczenia: Zawsze używaj przygotowanych zapytań (
prepared statements), aby uniknąć ataków SQL Injection.
Przykład kodu:
<?php
$serwer = "localhost";
$uzytkownik = "root";
$haslo = "";
$baza = "testowa";
$polaczenie = new mysqli($serwer, $uzytkownik, $haslo, $baza);
if ($polaczenie->connect_error) {
die("Błąd połączenia: " . $polaczenie->connect_error);
}
$sql = "SELECT id, imie FROM uzytkownicy";
$wynik = $polaczenie->query($sql);
while ($wiersz = $wynik->fetch_assoc()) {
echo "ID: " . $wiersz["id"] . " - Imię: " . $wiersz["imie"] . "<br>";
}
$polaczenie->close();
?>
Ten skrypt łączy się z bazą danych, pobiera dane z tabeli uzytkownicy i wyświetla je.
Ćwiczenie:
Stwórz formularz do dodawania nowych użytkowników do bazy danych.
Moduł 7: Sesje i ciasteczka
Sesje i ciasteczka są używane do przechowywania informacji o użytkowniku między różnymi stronami.
Kluczowe zagadnienia:
- Sesje: Sesje są inicjowane za pomocą
session_start()i przechowują dane na serwerze. - Ciasteczka: Ciasteczka są przechowywane po stronie klienta i można je ustawić za pomocą
setcookie(). - Bezpieczeństwo: Zawsze waliduj dane sesji i ciasteczek, aby uniknąć ataków.
Przykład kodu:
<?php
session_start();
$_SESSION['uzytkownik'] = "Jan";
echo "Sesja rozpoczęta, użytkownik: " . $_SESSION['uzytkownik'];
?>
Ten skrypt rozpoczyna sesję i przechowuje nazwę użytkownika w zmiennej sesyjnej.
Ćwiczenie:
Stwórz system logowania, który używa sesji do przechowywania informacji o zalogowanym użytkowniku.
Moduł 8: Obsługa błędów i wyjątki
PHP oferuje mechanizmy do obsługi błędów i wyjątków, które pomagają w zarządzaniu nieoczekiwanymi sytuacjami.
Kluczowe zagadnienia:
- Błędy: PHP ma wbudowane funkcje do obsługi błędów, takie jak
error_reporting()iset_error_handler(). - Wyjątki: Wyjątki są obsługiwane za pomocą bloków
try,catchifinally. - Logowanie błędów: Błędy można logować do pliku za pomocą
error_log().
Przykład kodu:
<?php
function dzielenie($a, $b) {
if ($b == 0) {
throw new Exception("Dzielenie przez zero!");
}
return $a / $b;
}
try {
echo dzielenie(10, 0);
} catch (Exception $e) {
echo "Błąd: " . $e->getMessage();
}
?>
Ten skrypt demonstruje obsługę wyjątków w przypadku dzielenia przez zero.
Ćwiczenie:
Napisz funkcję, która sprawdza, czy plik istnieje, i rzuca wyjątek, jeśli plik nie został znaleziony.
Moduł 9: Programowanie obiektowe w PHP
Programowanie obiektowe (OOP) w PHP pozwala na tworzenie klas i obiektów, co ułatwia organizację kodu i jego ponowne wykorzystanie.
Kluczowe zagadnienia:
- Klasy i obiekty: Klasy są szablonami dla obiektów, a obiekty są instancjami klas.
- Właściwości i metody: Właściwości to zmienne w klasie, a metody to funkcje.
- Dziedziczenie: Klasy mogą dziedziczyć właściwości i metody od innych klas.
Przykład kodu:
<?php
class Samochod {
public $marka;
public $model;
public function __construct($marka, $model) {
$this->marka = $marka;
$this->model = $model;
}
public function wyswietlInfo() {
return "Samochód: " . $this->marka . " " . $this->model;
}
}
$mojSamochod = new Samochod("Toyota", "Corolla");
echo $mojSamochod->wyswietlInfo();
?>
Ten skrypt definiuje klasę Samochod i tworzy obiekt tej klasy.
Ćwiczenie:
Stwórz klasę KontoBankowe, która przechowuje saldo i umożliwia wpłaty oraz wypłaty.
Moduł 10: Zaawansowane techniki PHP
Zaawansowane techniki w PHP obejmują pracę z plikami, manipulację ciągami znaków, wyrażenia regularne i tworzenie API.
Kluczowe zagadnienia:
- Praca z plikami: Użyj funkcji
fopen(),fwrite(),fclose()do pracy z plikami. - Manipulacja ciągami znaków: PHP oferuje wiele funkcji, takich jak
strlen(),substr(),str_replace(). - Wyrażenia regularne: Użyj funkcji
preg_match()do wyszukiwania wzorców w ciągach znaków.
Przykład kodu:
<?php
$plik = fopen("test.txt", "w");
fwrite($plik, "To jest testowy plik.");
fclose($plik);
echo "Plik został zapisany.";
?>
Ten skrypt tworzy plik tekstowy i zapisuje w nim dane.
Ćwiczenie:
Napisz skrypt, który odczytuje plik CSV i wyświetla jego zawartość w tabeli HTML.
Moduł 11: Bezpieczeństwo w PHP
Bezpieczeństwo jest kluczowym aspektem tworzenia aplikacji webowych. PHP oferuje wiele funkcji do zabezpieczania aplikacji.
Kluczowe zagadnienia:
- Bezpieczeństwo danych: Zawsze używaj funkcji
htmlspecialchars()do wyświetlania danych. - Ochrona przed atakami XSS: Waliduj i filtruj dane wejściowe.
- Ochrona przed atakami CSRF: Używaj tokenów CSRF w formularzach.
Przykład kodu:
<?php
$haslo = "tajne_haslo";
$hash = password_hash($haslo, PASSWORD_DEFAULT);
echo "Zahashowane hasło: " . $hash;
?>
Ten skrypt demonstruje hashowanie hasła przy użyciu funkcji password_hash.
Ćwiczenie:
Stwórz formularz logowania z zabezpieczeniem przed atakami SQL Injection i XSS.
Moduł 12: Wdrażanie aplikacji PHP
Wdrażanie aplikacji PHP na serwerze wymaga odpowiedniej konfiguracji i optymalizacji.
Kluczowe zagadnienia:
- Konfiguracja serwera: Użyj pliku
.htaccessdo konfiguracji serwera Apache. - Optymalizacja wydajności: Użyj buforowania (np.
OPcache) i minimalizuj zapytania do bazy danych. - Monitorowanie: Użyj narzędzi takich jak
New Relicdo monitorowania wydajności aplikacji.
Przykład kodu:
<?php
// Przykład konfiguracji serwera
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', '/var/log/php_errors.log');
?>
Ten skrypt konfiguruje serwer do logowania błędów zamiast wyświetlania ich użytkownikowi.
Ćwiczenie:
Przygotuj aplikację PHP do wdrożenia na serwerze produkcyjnym, włączając buforowanie i logowanie błędów.
Komentarze
Prześlij komentarz