Podstawowy samouczek PHP8+
Podstawy
Wprowadzenie do języka PHP
Rozpoczęcie pracy
Wykonywanie kodu PHP
Problem z kodowaniem
Wyświetlanie błędów PHP
Pełny kod do uruchomienia PHP
Ulepszony kod do uruchomienia
Przegląd początkowych komend PHP
Komentarze w PHP
Komentarze w podręczniku
Dumpowanie zmiennych
Funkcje w PHP
Zmienne
Używanie zmiennych
Zmiana wartości zmiennych
Operacje matematyczne na liczbach
Operacje matematyczne na zmiennych
Priorytet operacji matematycznych
Równy priorytet
Nawiasy grupujące
Niuanse grupowania
Ułamki
Liczby ujemne
Reszta z dzielenia
Potęgowanie
Priorytet potęgowania
Łańcuchy znaków
Łączenie łańcuchów znaków
Spacje przy łączeniu łańcuchów
Długość łańcucha
Problem z cyrylicą
Znaczniki
Atrybuty znaczników
Wartości logiczne
Wartość null
Automatyczna konwersja typów
Automatyczna konwersja na łańcuch znaków
Niuanse konwersji na łańcuch znaków
Konwersja na liczbę
Konwersja na ułamek
Konwersja ułamka na liczbę całkowitą
Konwersja liczby na łańcuch znaków
Znaki łańcucha
Cyfry w łańcuchu znaków
Odwołanie do cyfr liczby
Niuanse pracy z operacją przypisania
Operacje skrócone
Inkrementacja
Typ przedrostkowy i przyrostkowy
Praktyka wyszukiwania błędów
Praktyka operacji
Praktyka formuł
Tablice
Wprowadzenie do tablic
Podgląd zawartości tablicy
Pojedynczy element tablicy
Tablice asocjacyjne
Sztuczka z kluczami
Kolejność elementów
Długość tablicy
Zmiana elementów
Nadpisywanie elementów tablicy
Inkrementacja elementów
Wypełnianie tablic
Jawne określanie kluczy
Klucze ze zmiennych
Praktyka w wyszukiwaniu błędów
Warunki
Konstrukcja if-else
Operatory większe i mniejsze
Sprawdzanie równości
Sprawdzanie nierówności
Porównywanie zmiennych
Typy danych i konstrukcja if-else
Liczby w cudzysłowach
Równość według wartości i typu
Nierówność według wartości i typu
Niuanse przy porównywaniu typów danych
Złożone warunki w if-else
Logiczne I
Logiczne LUB
Priorytet operacji porównania
Grupowanie warunków
Inwertowanie zdań
Konstrukcja if-else i wartości logiczne
Niescisłe porównywanie wartości logicznych
Skrócony if
Niuanse skróconych operacji
Komenda isset
Tłumienie ostrzeżeń
Sprawdzanie elementów tablicy
Komenda empty
Opcjonalność komendy else
Opcjonalność nawiasów klamrowych
Problem opcjonalności nawiasów
Kombinacje if-else
Konstrukcja elseif
Zagnieżdżone if
Konstrukcja switch
Opcjonalność default
Konstrukcja match
Opcjonalność break
Operator trójargumentowy
Operator łączenia z null
Łańcuchy operatorów łączenia z null
Operacje logiczne
Określanie części godziny
Sprawdzanie długości ciągów znaków i tablic
Sprawdzanie znaku ciągu
Sprawdzanie reszty z dzielenia
Praktyka wyszukiwania błędów
Praktyka if else
Pętle
Wprowadzenie
Pętla foreach
Pętla foreach z kluczami
Pętla while
Pętla for
Warunki w pętlach
Akumulacja sumy liczb
Akumulacja sumy elementów
Formowanie ciągów znaków w pętli
Opcjonalność klamer
Problem opcjonalności klamer
Instrukcja break
Instrukcja continue
Praca z flagami
Pętle zagnieżdżone
Pętla for dla tablic
Wypełnianie tablic w pętli
Modyfikowanie tablic w pętli
Wskazówki dotyczące pisania kodu
Praktyka - znajdowanie błędów
Praktyka - pętle
Wielowymiarowość
Wprowadzenie
Tablica trójwymiarowa
Tablice asocjacyjne
Tablice dowolne
Iteracja przez tablice wielowymiarowe
Iteracja przez tablicę trójwymiarową
Praca z kluczami
Wypełnianie tablic wielowymiarowych
Wypełnianie liczbami po kolei
Tablica tablic asocjacyjnych
Konwersja tablic wielowymiarowych
Funkcje matematyczne
Funkcje tekstowe
Długość ciągu
Wielkość liter
Wycinanie ciągów
Sprawdzanie ciągów
Wyszukiwanie w ciągach
Podział ciągów
Czyszczenie końców ciągu
Wyświetlanie ciągu z wstawianiem
Formatowanie reprezentacji liczb
Odwracanie ciągu
Wypełnianie ciągu
Praca z tagami
Kody znaków
Zliczanie podciągów
Części ciągu
Funkcje tablicowe
Wyszukiwanie w tablicach
Elementy końcowe
Wycinanie tablic
Wstawianie i usuwanie w tablicach
Zakres w tablicy
Wypełnianie tablic
Scalanie tablic
Klucze i wartości
Odwracanie
Zastępowanie
Usuwanie duplikatów
Zliczanie elementów
Podział na podtablice
Sortowanie
Operacje na zbiorach
Losowość
Czas
Praca z timestamp
Formatowanie
Analiza dat w dowolnym formacie
Weryfikacja poprawności
Strefa czasowa
Modyfikacja
Porównywanie łańcuchowe
Porównywanie dat bez roku
Sprawdzanie czy data mieści się w przedziale
Porównywanie timestamp
Funkcje użytkownika
Wprowadzenie
Parametry funkcji
Kilka parametrów
Parametry-zmienne
Parametry opcjonalne
Instrukcja return
Sekwencyjne wywołanie funkcji
Delikatny punkt return
Pętla i return
Zastosowanie return w pętlach
Sposób pracy z return
Flagi w funkcjach
Operatory logiczne w funkcjach
Porady dotyczące funkcji
Praktyka w znajdowaniu błędów
Praktyka z funkcjami
Zakres widoczności
Referencje-prymitywy
Referencje-tablice
Referencje w foreach
Zmienne wewnętrzne
Zmienne zewnętrzne
Zmienne o tej samej nazwie
Zmienne globalne
Zmiana parametrów
Parametry-referencje
Rekurencja
Rekurencja
Przykład z parametrem
Suma elementów tablicy
Rekurencja i tablice wielowymiarowe
Suma tablicy wielowymiarowej
Manipulacje elementami
Wyrażenia regularne
Wprowadzenie
Operatory powtórzeń
Nawiasy grupujące
Ekranowanie znaków specjalnych
Lista znaków specjalnych
Nawiasy klamrowe
Ograniczenie zachłanności
Grupy znaków
Zbiory znaków
Inwersja zbiorów znaków
Specyfika cyrylicy
Znaki specjalne wewnątrz zbiorów
Grupy znaków wewnątrz zbiorów
Znaki specjalne-wyjątki wewnątrz zbiorów
Symbol daszka wewnątrz zbiorów
Specyfika myślnika wewnątrz zbiorów
Początek i koniec linii
Koniec lub początek słowa
Polecenie 'lub'
Ograniczniki
Ekranowanie ograniczników
Ukośnik odwrotny
Sprawdzanie ciągu znaków
Automatyczne testowanie wyrażeń regularnych
Sprawdzanie całego ciągu znaków
Kieszenie przy wyszukiwaniu
Wyszukiwanie wszystkich dopasowań
Wszystkie dopasowania na kieszenie
Zmiana zachowania wyszukiwania
Niezachowujące nawiasy
Kieszenie przy zamianie
Kieszenie w wyrażeniu
Nazwane kieszenie
Nazwane kieszenie wewnątrz wyrażenia
Wspólny numer kieszeni
Podgląd do przodu
Podgląd do tyłu
Zamiana z callbackiem
Modyfikatory
Ignorowanie wielkości liter w wyrażeniach regularnych
Komentarze w wyrażeniu regularnym
Praca z unikodem w wyrażeniach regularnych
Zmiana zachłanności wyrażeń regularnych
Ekranowanie zwykłych znaków w wyrażeniach regularnych
Kilka modyfikatorów wyrażeń regularnych
Automatyczne ekranowanie znaków specjalnych
Filtrowanie tablicy
Podział ciągu znaków na tablicę
Tworzenie ciągów znaków
Wstawianie zmiennych
Wstawianie elementów tablicy
Wstawianie elementów tablic asocjacyjnych
Pętla i wstawianie zmiennych
Wstawianie elementów tablic w pętli
Wstawianie elementów wielowymiarowych tablic w pętli
Generowanie znaczników
Generowanie znaczników z atrybutami
Pętla i generowanie znaczników
Pętla i generowanie znaczników z tablic
Pętla i generowanie znaczników i atrybutów
Pętla i generowanie tabel HTML
Generowanie tabeli HTML za pomocą jednej pętli
Generowanie tabeli HTML za pomocą dwóch zagnieżdżonych pętli
Wstawianie kodu PHP w HTML
Krótka instrukcja echo
Wyświetlanie zmiennej w HTML
Wyświetlanie elementów tablicy w HTML
Warunki i przerwanie kodu PHP
Blok else w przerwaniu kodu PHP
Blok elseif w przerwaniu kodu PHP
Pętle i przerwanie kodu PHP
Tablica w pętli w przerwaniu kodu PHP
Formularze
Wprowadzenie do formularzy
Metoda wysyłania formularza
Pobieranie danych z formularzy
Pobieranie danych z formularzy metodą GET
Pobieranie danych z formularzy metodą POST
Obsługa formularza w jednym pliku
Ukrywanie formularza po wysłaniu
Zachowywanie wartości formularza
Zachowywanie domyślnej wartości formularza
Skrócony kod do zachowywania wartości domyślnych
Element textarea
Zachowywanie wartości textarea po wysłaniu
Checkbox
Niuanse używania checkboxów
Zachowywanie wartości w checkboxie
Przyciski radiowe
Zachowywanie wartości w przyciskach radiowych
Selekty
Atrybut value w selekach
Zachowywanie wartości w selekach
Zapytania GET
Zapytania GET za pomocą linków
Praktyka
Sesje
Wprowadzenie do sesji
Możliwe problemy
Używanie sesji na jednej stronie
Usuwanie sesji
Zakończenie całej sesji
Sesje i formularze
Zapisywanie tablic w sesjach
Cookies
Wprowadzenie do ciasteczek
Problem ustawiania ciasteczek
Natychmiastowe ustawianie ciasteczek
Licznik odświeżeń strony
Czas życia ciasteczka
Usuwanie ciasteczek
Natychmiastowe usuwanie ciasteczek
System plików
Odczyt plików
Zapisywanie plików
Kombinacja operacji
Ścieżki względne
Ścieżki bezwzględne
Zalety ścieżek bezwzględnych
Bezwzględne ścieżki do skryptu
Zmiana nazwy plików
Przenoszenie plików
Kopiowanie plików
Usuwanie plików
Określanie rozmiaru plików
Sprawdzanie istnienia plików
Tworzenie katalogów
Usuwanie katalogów
Zmiana nazwy katalogów
Przenoszenie katalogów
Odczyt zawartości katalogu
Rozróżnianie katalogu od pliku
Analizowanie zawartości katalogu
Wstawianie plików
Dzielenie znaczników na elementy
Zapisywanie wstawki do zmiennej
Dołączanie plików
Jednokrotne dołączanie plików
Zapisywanie dołączenia do zmiennej
Bazy danych
Wprowadzenie do baz danych
PhpMyAdmin
Tabela testowa users
Manipulacje przygotowawcze
Wysyłanie zapytań do bazy danych
Wyszukiwanie błędów w bazie danych
Testowanie funkcjonalności
Problemy z kodowaniem
Pełny kod testowy
Uzyskiwanie wyniku
Uzyskiwanie wyniku w postaci tablicy
Tworzenie tablicy w pętli
Wybór rekordów
Operacje logiczne
Pola wyboru
Wstawianie rekordów
Wstawianie rekordów przy brakujących kolumnach
Aktualizacja rekordów
Usuwanie rekordów
Sortowanie rekordów
Ograniczenie ilości
Liczenie ilości
Uzyskiwanie ilości
Zaawansowane zapytania
Organizacja Bazy Danych
Łączenie tabel
Pobieranie danych z połączonych tabel
Łańcuch połączonych tabel
Łączenie za pomocą tabeli łączącej
Relacje rodzinne
Kilku potomków
Podwójna relacja
Praktyka
Praktyka Bazy Danych
Tabela testowa users
Formatowanie wyjścia
Usuwanie danych
Przeglądanie danych
Dodawanie danych
Edycja danych
Praca z HTTP
Podręcznik HTTP
Metoda żądania HTTP
Nagłówki żądania HTTP
Tablica nagłówków żądania HTTP
Nagłówki odpowiedzi HTTP
Problem z nagłówkami odpowiedzi HTTP
Problem z include
Wysyłanie linii początkowej odpowiedzi HTTP
Wysyłanie statusu odpowiedzi HTTP
Przekierowania
Wprowadzenie do przekierowań
Natychmiastowe przekierowanie
Zapytania GET i przekierowanie
Samoprzekierowanie z dodawaniem parametrów
Wiadomości flash
Tablica wiadomości flash
Zapisywanie formularzy
Komunikaty o powodzeniu wysłania
Przekierowanie przy walidacji formularza
Uwierzytelnianie
Wprowadzenie
Autoryzacja
Sesje
Wylogowanie z sesji
Rejestracja
Autoryzacja od razu po rejestracji
Dodanie id do sesji
Ukrywanie hasła
Sprawdzanie zajętości loginu
Walidacja
Hashowanie
Dodanie soli do rejestracji
Dodanie soli do autoryzacji
Funkcja password_hash
Profil
Konto
Zmiana hasła
Potwierdzenie hasła
Usuwanie konta
Uprawnienia
Rejestracja z podziałem uprawnień
Uprawnienia i normalizacja bazy danych