Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 08:49
  • Data zakończenia: 8 czerwca 2026 09:12

Egzamin zdany!

Wynik: 26/40 punktów (65,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

W systemie MySQL przyznanie roli o nazwie DBManager umożliwia użytkownikowi wykonywanie

A. zakładanie użytkowników serwera oraz definiowanie ich haseł
B. nadzór nad serwerem
C. wszystkie operacje na bazach danych serwera
D. wszystkie operacje związane z bazami danych oraz użytkownikami serwera
Odpowiedź wskazująca na to, że rola DBManager przyznaje użytkownikowi prawa do wszelkich operacji na bazach danych serwera jest poprawna, ponieważ rola ta umożliwia pełen zakres działań związanych z zarządzaniem bazami danych. Użytkownik z tą rolą ma możliwość tworzenia, modyfikowania i usuwania baz danych, a także wykonywania zapytań na tych bazach. W praktyce oznacza to, że osoba z rolą DBManager może na przykład zarządzać strukturą tabel, definiować relacje między danymi oraz optymalizować wydajność zapytań. Tego rodzaju uprawnienia są kluczowe dla administratorów baz danych, którzy muszą zapewnić, że dane są przechowywane, przetwarzane i zabezpieczone zgodnie z najlepszymi praktykami branżowymi. Ponadto, rola DBManager wspiera standardy bezpieczeństwa i integralności danych, pozwalając na stosowanie zasad dotyczących dostępu i uprawnień do danych w sposób zgodny z regulacjami prawnymi i wewnętrznymi politykami organizacji.

Pytanie 2

Aby policzyć wszystkie wiersze w tabeli Koty, należy użyć zapytania:

A.
SELECT COUNT(*) FROM Koty
B.
SELECT COUNT(ROWNUM) FROM Koty
C.
SELECT COUNT(Koty) AS ROWNUM
D.
SELECT ROWNUM() FROM Koty
Pozostałe zapytania są błędne lub używają nieistniejących elementów. ROWNUM i ROWNUM() to konstrukcje znane z innych systemów (np. Oracle), a w MySQL nie służą do liczenia wierszy w ten sposób. SELECT COUNT(Koty) AS ROWNUM nie ma klauzuli FROM i przekazuje do COUNT nazwę tabeli zamiast kolumny lub *. Liczbę wszystkich wierszy zwraca SELECT COUNT(*) FROM Koty, dlatego to ono jest poprawne.

Pytanie 3

SELECT ocena FROM oceny WHERE ocena > 2 ORDER BY ocena;
Załóżmy, że istnieje tabela oceny zawierająca kolumny id, nazwisko, imię oraz ocena. Przykładowe zapytanie ilustruje:
A. łączenie.
B. selekcję.
C. sumę.
D. rekurencję.
Zapytanie przedstawione w pytaniu nie jest przykładem łączenia ponieważ nie występuje w nim klauzula JOIN która jest podstawowym narzędziem do łączenia tabel w bazach danych. Łączenie danych jest używane gdy potrzebujemy zintegrować informacje z różnych źródeł i polega na zestawieniu wierszy z dwóch lub więcej tabel na podstawie wspólnego klucza. Zamiast tego zapytanie używa klauzuli WHERE która służy do selekcji danych. Nie jest też przykładem rekurencji. Rekurencja w kontekście baz danych dotyczy wykonywania operacji powtarzających się w określonej sekwencji lub hierarchii co jest typowe dla struktur takich jak drzewa. Wiąże się to zwykle z użyciem zapytań zawierających takie konstrukcje jak WITH RECURSIVE w SQL co nie jest obecne w tym zapytaniu. Ponadto zapytanie nie jest przykładem sumy ponieważ nie zawiera funkcji agregujących takich jak SUM które służą do zliczania wartości w kolumnie. Suma jest używana do obliczeń statystycznych a nie do filtrowania danych na podstawie kryteriów logicznych jak to ma miejsce w przedstawionym przykładzie. Zrozumienie tych różnic jest kluczowe dla poprawnego formułowania zapytań i efektywnego wykorzystania systemów bazodanowych. Poprawne identyfikowanie mechanizmów w SQL pozwala efektywnie wykorzystać możliwości języka w analizie danych i zarządzaniu bazami co jest szczególnie istotne w profesjonalnych projektach IT. Zrozumienie logicznej struktury SQL i różnic między tymi koncepcjami jest kluczowe dla skutecznego i wydajnego wykorzystania baz danych w praktyce zawodowej i biznesowej.

Pytanie 4

Aby wstawić w napisie (zmiennej typu string) złamanie linii, należy użyć znaku:

A.
\\
B.
\n
C.
\b
D.
\t
Sekwencja \n to tak zwany znak nowej linii (newline). W napisie ukośnik wsteczny rozpoczyna sekwencję sterującą, a litera po nim określa jej znaczenie - \n oznacza przejście do nowej linii. Dzięki temu można formatować wieloliniowy tekst zapisany w jednej zmiennej, bez fizycznego entera w kodzie. To powszechna konwencja w wielu językach (m.in. JavaScript, PHP, C). Dlatego do złamania linii w napisie służy właśnie \n.

Pytanie 5

Którego polecenia SQL użyć, aby utworzyć tabelę?

A.
ALTER TABLE
B.
ADD TABLE
C.
INSERT TABLE
D.
CREATE TABLE
Nową tabelę tworzy polecenie CREATE TABLE, po którym podaje się nazwę i definicje kolumn. Należy do języka definicji danych (DDL). Dlatego do utworzenia tabeli służy CREATE TABLE.

Pytanie 6

W katalogu www znajdują się podkatalogi html oraz styles, w których umieszczone są pliki o rozszerzeniu html oraz pliki z rozszerzeniem css. Aby dołączyć styl.css do pliku HTML, należy zastosować

A. <link rel="Stylesheet" type="text/css" href="styl.css" />
B. <link rel=" Stylesheet" type="text/css" href="www/style/styl. css" />
C. <link rel="Stylesheet" type="text/css" href="/style/styl.css" />
D. <link rel="Stylesheet" type="text/css" href="../style/styl.css" />
Przy analizie pozostałych odpowiedzi można dostrzec pewne powszechne błędy w rozumieniu ścieżek do zasobów w dokumentach HTML. W pierwszej odpowiedzi, użycie ścieżki 'www/style/styl.css' sugeruje, że autor zakłada, że jest to pełna ścieżka dostępu, co jest mylące, ponieważ taka ścieżka nie jest względna w kontekście pliku HTML znajdującego się w folderze 'html'. Ponadto, użycie dużych liter w atrybucie 'rel' (np. 'Stylesheet') jest niepoprawne, ponieważ HTML jest językiem case-insensitive, lecz konwencjonalnie zaleca się używanie małych liter. Druga odpowiedź, wskazująca na '/style/styl.css', implikuje, że 'style' jest umiejscowione w katalogu głównym serwera, co również jest błędne w kontekście podanej struktury folderów. Takie podejście jest typowym błędem przy zrozumieniu relatywnych i bezwzględnych ścieżek URL. Ostatnia odpowiedź, 'styl.css', zakłada, że plik CSS znajduje się w tym samym folderze co plik HTML, co nie odpowiada rzeczywistości w przedstawionym układzie folderów. Wszyscy, którzy pracują nad projektami webowymi, muszą zrozumieć, jak ważne jest precyzyjne określenie lokalizacji zasobów, ponieważ błędy te mogą prowadzić do ładowania nieprawidłowych plików, co w efekcie negatywnie wpływa na wygląd i funkcjonalność strony. Wiedza na temat struktury folderów oraz umiejętność nawigacji po nich jest kluczowym elementem w pracy programisty.

Pytanie 7

Skrypt w JavaScript, który obsługuje wynagrodzenia pracowników, powinien stworzyć raport dla tych, którzy są zatrudnieni na umowę o pracę oraz otrzymują wynagrodzenie w przedziale domkniętym od 4000 do
4500 zł. Jaki warunek należy zastosować do wygenerowania raportu?

A. umowa == 'praca' || (pensja >= 4000 || pensja <= 4500)
B. umowa == 'praca' || (pensja >= 4000 && pensja <= 4500)
C. umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)
D. umowa == 'praca' && (pensja >= 4000 || pensja <= 4500)
Odpowiedź umowa == 'praca' && (pensja >= 4000 && pensja <= 4500) jest poprawna, ponieważ precyzyjnie określa warunki, jakie muszą być spełnione, aby wygenerować raport. Warunek umowa == 'praca' zapewnia, że analizujemy tylko pracowników zatrudnionych na umowę o pracę, co jest kluczowe w kontekście raportowania. Dodatkowo zastosowanie operatora logicznego '&&' w połączeniu z zakresowym sprawdzeniem pensji (pensja >= 4000 && pensja <= 4500) skutkuje tym, że raport zostanie wygenerowany wyłącznie dla pracowników, których pensja mieści się w ścisłym przedziale od 4000 do 4500 zł. To podejście jest zgodne z dobrymi praktykami programistycznymi, gdzie ważne jest, aby warunki były ściśle zdefiniowane, co pozwala uniknąć nieporozumień i błędów w danych. Przykładowo, jeżeli stworzymy funkcję generującą raport, możemy ją łatwo zaimplementować w systemie hr, co pozwoli na automatyzację procesów związanych z płacami oraz raportowaniem, a także zwiększy przejrzystość i precyzję w zarządzaniu danymi finansowymi.

Pytanie 8

Mamy tabelę firm, która zawiera takie kolumny jak: nazwa, adres, NIP, obrot (obrót w ostatnim miesiącu), rozliczenie, status. Wykonanie zapytania SQL SELECT spowoduje wyświetlenie

SELECT nazwa, NIP FROM firmy WHERE obrot < 4000;
A. wszystkie dane o firmach, które w ostatnim miesiącu miały obrót na poziomie co najmniej 4000 zł
B. tylko nazwę i numer NIP przedsiębiorstw, które w poprzednim miesiącu miały obrót wynoszący przynajmniej 4000 zł
C. tylko nazwę i numer NIP przedsiębiorstw, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł
D. wszystkie informacje o firmach, które w minionym miesiącu osiągnęły obrót poniżej 4000 zł
Prawidłowa odpowiedź odwołuje się do kwerendy SQL SELECT która wybiera jedynie kolumny nazwa oraz NIP z tabeli firmy pod warunkiem że kolumna obrot jest mniejsza niż 4000 Kwerenda ta jest przykład zastosowania filtracji danych w celu wyodrębnienia specyficznych informacji z bazy danych co jest kluczowe w analizie biznesowej Dzięki tej operacji można uzyskać listę firm które w ostatnim miesiącu osiągnęły niski obrót co może być istotne dla działów finansowych i marketingowych w celu identyfikacji klientów wymagających dodatkowego wsparcia Tego rodzaju selektywne przetwarzanie danych jest częścią codziennej pracy analityków danych oraz specjalistów od zarządzania relacjami z klientami W praktyce w infrastrukturze bazodanowej tego typu zapytania mogą być stosowane do generowania raportów okresowych lub alertów biznesowych Przy projektowaniu kwerend SQL ważne jest aby precyzyjnie określać które kolumny i wiersze danych są interesujące co nie tylko zwiększa efektywność zapytań ale także pozwala na lepsze zarządzanie zasobami serwera Dobra praktyka polega na optymalizacji zapytań w celu minimalizacji czasów odpowiedzi oraz obciążenia systemów bazodanowych co jest kluczowe dla utrzymania wydajności i niezawodności w dużych systemach informatycznych

Pytanie 9

W języku HTML, aby uzyskać następujący efekt formatowania, należy zapisać kod:

pogrubiony pochylony lub w górnym indeksie

A. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
B. <i>pogrubiony </i><b>pochylony</b> lub w <sub>górnym indeksie</sub>
C. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
D. <b>pogrubiony <i>pochylony</i></b> lub w <sub>górnym indeksie</sub>
Poprawna odpowiedź to: <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>. Ta odpowiedź prawidłowo wykorzystuje trzy kluczowe tagi HTML do formatowania tekstu: <b>, <i> i <sup>. Tag <b> służy do wyświetlania tekstu w pogrubionym formacie, co pozwala na podkreślenie istotnych fragmentów tekstu. Przykładem może być wyróżnienie tytułów, nagłówków lub kluczowych punktów w treści. Tag <i> jest używany do wyświetlania tekstu w formacie kursywy, co jest często używane do wyróżnienia tytułów książek, filmów, cytowań lub podkreślenia ważnych punktów. Tag <sup> jest używany do wyświetlania napisów jako tekst górnego indeksu, co jest często używane do wskazania numerów stron, przypisów, lub dla oznaczeń matematycznych lub naukowych. Pamiętaj, że prawidłowe użycie tych tagów jest kluczowe dla tworzenia jasnej, czytelnej i profesjonalnie wyglądającej strony internetowej.

Pytanie 10

W języku PHP zapisano fragment kodu. Plik cookie stworzony tym poleceniem

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. zostanie usunięty po jednej godzinie od jego utworzenia.
B. zostanie usunięty po jednym dniu od jego utworzenia.
C. będzie przechowywany na serwerze przez jeden dzień.
D. będzie przechowywany na serwerze przez jedną godzinę.
Odpowiedź, którą zaznaczyłeś, to 'zostanie usunięty po jednym dniu od jego utworzenia'. W PHP działa to tak, że funkcja setcookie() bierze pod uwagę czas, po jakim cookie ma wygasnąć. To jest dodawane do aktualnego czasu, który dostajemy z funkcji time(). Kiedy widzisz wartość 3600 * 24, to znaczy, że mamy tu 86400 sekund, a to dokładnie jeden dzień. Czyli cookie zniknie z przeglądarki po upływie doby od założenia. Wydaje mi się, że to ważna sprawa, bo dobrze wiedzieć, jak działa cykl życia cookies w PHP. Pomoże to w ogarnianiu sesji i dbaniu o bezpieczeństwo w aplikacjach internetowych.

Pytanie 11

Aby strona WWW była przesyłana do przeglądarki w postaci zaszyfrowanej, należy zastosować protokół:

A. HTTP
B. SSH
C. HTTPS
D. SFTP
HTTPS to protokół HTTP działający przez szyfrowane połączenie TLS. Dane wymieniane między serwerem a przeglądarką - treść strony, dane logowania, formularze - są szyfrowane, więc osoba podsłuchująca ruch nie odczyta ich ani nie podmieni. Certyfikat serwera pozwala też przeglądarce potwierdzić tożsamość witryny (kłódka w pasku adresu). Dlatego do bezpiecznego, zaszyfrowanego przesyłania strony WWW stosuje się właśnie HTTPS.

Pytanie 12

Wskaż wszystkie symbole, które pozwalają na komentowanie kodu w języku PHP.

A. tylko /* */
B. /* */ oraz // oraz #
C. <?php ?> oraz //
D. /* */ oraz <!-- -->
Wybór odpowiedzi wskazującej jedynie na znaki /* */ jako mechanizmy komentowania jest niekompletny i wprowadza w błąd. Komentarze są istotnym elementem każdego skryptu, ponieważ pozwalają na dodawanie uwag, które nie wpływają na wykonanie programu, ale znacząco przyczyniają się do jego zrozumienia. Ograniczanie się jedynie do komentarzy wieloliniowych oznaczonych przez /* */ pomija inne, równie istotne metody komentowania, które są dostępne w PHP. Innym błędem jest sugerowanie, że <?php ?> oraz // są metodami komentowania. Znak <?php ?> służy do otwierania bloku kodu PHP, a nie do tworzenia komentarzy, co jest fundamentalnym nieporozumieniem. Wprowadzenie znaku <!-- --> jako sposobu na komentowanie w PHP jest również mylące, ponieważ ten zapis jest używany w HTML, a nie w PHP, co prowadzi do nieporozumień dotyczących kontekstu użycia. Użycie nieodpowiednich znaków do komentowania może prowadzić do problemów w interpretacji kodu przez interpreter PHP oraz utrudniać jego konserwację. Właściwe rozumienie mechanizmów komentowania jest kluczowe dla każdej osoby programującej w PHP, ponieważ pozwala na tworzenie bardziej czytelnych, zrozumiałych i utrzymywalnych skryptów.

Pytanie 13

W języku PHP funkcja trim służy do

A. Porównywania dwóch tekstów i wyświetlania ich wspólnej części
B. Redukowania długości tekstu o określoną w parametrze liczbę znaków
C. Określania długości tekstu
D. Usuwania białych znaków lub innych znaków wymienionych w parametrze z obu końców tekstu
Funkcja trim w języku PHP jest niezwykle użyteczna, ponieważ jej głównym zadaniem jest usuwanie białych znaków oraz innych znaków, które zostaną określone w parametrze, z obu końców łańcucha tekstowego. Oznacza to, że gdy mamy do czynienia z danymi wejściowymi, które mogą zawierać niepotrzebne spacje lub znaki specjalne na początku i końcu, funkcja trim pozwala na ich łatwe oczyszczenie. Przykładowo, jeśli mamy zmienną $text = ' Hello World! ', to wywołanie trim($text) zwróci 'Hello World!'. To podejście jest zgodne z dobrymi praktykami w programowaniu, gdzie ważne jest, aby dane były poprawnie sformatowane przed dalszym przetwarzaniem. Użycie funkcji trim może być szczególnie istotne w kontekście walidacji danych użytkownika, a także przy przetwarzaniu danych z formularzy HTML, gdzie niewłaściwe spacjowanie może prowadzić do błędów w logice aplikacji. Dodatkowo, trim może przyjmować drugi parametr, który pozwala na usunięcie konkretnych znaków, co daje programiście jeszcze większą elastyczność w manipulacji łańcuchami tekstowymi.

Pytanie 14

Jakiego typu tablicy dotyczy instrukcja dodawania elementu w JavaScript?

Tablica['technik'] = 'informatyk';
A. liczbowej
B. wielowymiarowej
C. stałej
D. asocjacyjnej
Tablice statyczne są strukturami danych, których rozmiar jest ustalony podczas deklaracji i nie może być zmieniony w trakcie działania programu. W językach programowania takich jak C czy C++ tablice statyczne są powszechnie wykorzystywane, lecz w JavaScript, gdzie struktury danych są zazwyczaj dynamiczne, taki koncept jest mniej istotny. Tablice numeryczne w kontekście JavaScript to po prostu tablice, które używają indeksów liczbowych do przechowywania danych. Jednakże, możliwość przypisania wartości do indeksu tekstowego, jak w przypadku 'Tablica['technik'] = 'informatyk';', jest charakterystyczna dla tablic asocjacyjnych, nie dla numerycznych. Tablice numeryczne mogą przetrzymywać dane w uporządkowany sposób, ale nie umożliwiają użycia kluczy innych niż liczby całkowite, co ogranicza ich zastosowania w porównaniu do tablic asocjacyjnych. Tablice wielowymiarowe to kolekcje tablic, gdzie każda komórka może przechowywać inną tablicę. W JavaScript można tworzyć tablice wielowymiarowe poprzez zagnieżdżanie tablic, ale nie ma to związku z przypisywaniem kluczy tekstowych. Zastosowanie nazwanych kluczy, jak w podanym przykładzie, jest specyficzne dla tablic asocjacyjnych, które w JavaScript są implementowane jako obiekty i pozwalają na bardziej elastyczne zarządzanie danymi niż tablice wielowymiarowe, które skupiają się na przechowywaniu danych w formie tabeli. Typowym błędem jest mylenie tablic numerycznych z asocjacyjnymi, co może prowadzić do błędów w kodzie związanych z nieprawidłowym dostępem do danych lub ich organizacją, co wyraźnie pokazuje, że zrozumienie różnic między tymi strukturami danych jest kluczowe dla efektywnego programowania w JavaScript.

Pytanie 15

Jak nazywa się powiązanie między dwoma zbiorami encji na diagramie ER?

A. atrybutem
B. związkiem
C. krotką
D. dziedziną
Pozostałe pojęcia dotyczą czego innego. Krotka to pojedynczy wiersz (egzemplarz encji). Dziedzina to zbiór dopuszczalnych wartości atrybutu. Atrybut to cecha encji (kolumna). Powiązanie między zbiorami encji to związek.

Pytanie 16

Który z podanych kodów XHTML sformatuje tekst zgodnie z określonym schematem?

Ilustracja do pytania
A. Odpowiedź B
B. Odpowiedź D
C. Odpowiedź C
D. Odpowiedź A
Poprawna odpowiedź D zawiera poprawne znaczniki XHTML i HTML, które umożliwiają formatowanie tekstu według wzoru. W pierwszym wierszu tekst Ala ma kota używa znacznika b do pogrubienia słowa kota, co jest zgodne ze standardami, ponieważ b jest szeroko stosowanym tagiem HTML do semantycznego pogrubienia tekstu. Następnie użyty jest znacznik br do wstawienia przerwy w linii, co sprawia, że kolejna część tekstu pojawia się w nowej linii, odzwierciedlając układ zaprezentowany na obrazku. W drugim wierszu tekst a kot ma Alę, znacznik i został użyty do pochylania słowa kot, co jest zgodne z praktykami formatowania tekstu, gdzie i oznacza kursywę. Zamknięcie całego tekstu w znacznikach p paragrafu zapewnia również odpowiedni odstęp i formatowanie, co jest zgodne z semantycznym i strukturalnym organizowaniem treści w dokumencie XHTML. Podejście to odzwierciedla dobre praktyki kodowania, w tym stosowanie właściwych znaczników dla odpowiednich stylów oraz zapewnienie kompatybilności z różnymi przeglądarkami.

Pytanie 17

Definicja formularza została wykorzystana na stronie www, która przesyła dane do pliku w języku PHP. W której tablicy będą dostępne informacje z formularza?

<form action="plik.php" method="post">
A. $_POST
B. $_COOKIE
C. $_GET
D. $_ACTION
Formularze w HTML służą do przesyłania danych do serwera, a w kontekście języka PHP dane te są dostępne poprzez różne superglobalne tablice, z których najczęściej używaną przy metodzie POST jest tablica $_POST. Metoda POST, określona w atrybucie 'method' formularza, jest używana do przesyłania danych w bardziej bezpieczny sposób niż metoda GET, ponieważ nie pokazuje przesyłanych informacji w URL. Kiedy dane są wysyłane do skryptu PHP z formularza, wszystkie klucze i wartości formularza stają się dostępne jako elementy tablicy $_POST. Przykładowo, jeśli w formularzu znajduje się pole tekstowe o nazwie 'username', po wysłaniu formularza na stronie 'plik.php' można uzyskać dostęp do wartości tego pola za pomocą $_POST['username']. Ta metoda jest zalecana w przypadku przesyłania danych poufnych, takich jak hasła, ponieważ nie są one widoczne w pasku adresu przeglądarki. Dodatkowo, korzystając z $_POST, można przesyłać dane o większej objętości, co jest niemożliwe w przypadku $_GET, który ma ograniczenia długości URL.

Pytanie 18

Jakie polecenie umożliwia pokazanie konfiguracji serwera PHP, w tym między innymi informacji o: wersji PHP, systemie operacyjnym serwera oraz wartościach przedefiniowanych zmiennych?

A. phpcredits();
B. phpinfo();
C. echo phpversion();
D. print_r(ini_get_all());
Funkcja phpinfo() jest najczęściej używanym narzędziem w ekosystemie PHP do wyświetlania szczegółowych informacji dotyczących konfiguracji serwera PHP. Umożliwia uzyskanie dostępu do kluczowych danych, takich jak wersja PHP, informacje o systemie operacyjnym, wartości przedefiniowanych zmiennych, a także wiele innych ustawień konfiguracyjnych. Dzięki temu narzędziu deweloperzy mogą szybko zdiagnozować problemy związane z konfiguracją, a także zrozumieć, jakie moduły PHP są zainstalowane i aktywne. Przykładowo, uruchamiając skrypt z tą funkcją na stronie internetowej, automatycznie generowany jest szczegółowy raport w formie HTML, co ułatwia odczyt i zrozumienie. Standardy branżowe wskazują, że korzystanie z phpinfo() powinno być ograniczone do środowisk rozwijających, ponieważ ujawnia to wiele informacji o serwerze, co w kontekście bezpieczeństwa może stanowić ryzyko. W praktyce, dobrze jest również stosować funkcję w lokalnych środowiskach deweloperskich, by monitorować i weryfikować zmiany w konfiguracji serwera podczas pracy nad projektem.

Pytanie 19

W PHP zmienna $_GET stanowi zmienną

A. utworzoną przez autora strony, przeznaczoną do przesyłania danych z formularza przez adres URL
B. zwykłą, utworzoną przez autora strony
C. predefiniowaną, wykorzystywaną do zbierania danych formularza po nagłówkach żądania HTTP (informacje z formularza nie są widoczne w URL)
D. predefiniowaną, służącą do przesyłania informacji do skryptów PHP przez adres URL
Odpowiedzi, które wskazują na to, że zmienna $_GET jest zwykłą zmienną lub jest definiowana przez twórcę strony, są nieprawidłowe. $_GET jest superglobalną tablicą, co oznacza, że jej dostępność jest zapewniona w całym skrypcie bez potrzeby wcześniejszego deklarowania. Zrozumienie różnicy między zmiennymi predefiniowanymi a tymi zdefiniowanymi przez użytkownika jest kluczowe dla właściwego zarządzania danymi w PHP. Ponadto, odpowiedzi sugerujące, że $_GET służy do gromadzenia wartości formularza po nagłówkach zlecenia HTTP, mylą metodę GET z metodą POST. W przeciwieństwie do POST, dane przesyłane za pomocą GET są widoczne w adresie URL, co czyni je mniej bezpiecznymi dla wrażliwych danych. Mówiąc o formularzach, $_GET jest jedynie jedną z metod przesyłania danych, obok $_POST i $_REQUEST, z których każda ma swoje specyficzne zastosowania i ograniczenia. Generalnie, korzystanie z $_GET jest odpowiednie do przesyłania niewielkich ilości danych, takich jak parametry zapytań, ale należy być świadomym, że wykorzystywanie tej metody z danymi wrażliwymi jest ryzykowne i należy unikać tego podejścia w praktyce. Dbając o bezpieczeństwo aplikacji, warto zrozumieć te różnice i stosować się do dobrych praktyk dotyczących przetwarzania danych wejściowych.

Pytanie 20

W tabeli produkt znajdują się przedmioty wyprodukowane po roku 2000, z kolumnami nazwa i rok_produkcji. Klauzula SQL pokaże listę przedmiotów wyprodukowanych

SELECT * FROM `produkt` WHERE SUBSTR(rok_produkcji,3,2)=17;
A. po roku 2017
B. w roku 2017
C. przed rokiem 2017
D. w latach innych niż 2017
Wybór odpowiedzi "w roku 2017" jest prawidłowy, ponieważ zapytanie SQL stosuje funkcję SUBSTR do wydobycia części roku produkcji. Funkcja ta zaczyna od trzeciego znaku w łańcuchu reprezentującym rok produkcji i zwraca dwa znaki, co w przypadku roku 2017 daje nam '17'. W związku z tym zapytanie wyświetli jedynie te przedmioty, których rok produkcji kończy się na '17', co obejmuje rok 2017. Zastosowanie funkcji SUBSTR jest częstą praktyką w SQL, gdy chcemy analizować lub filtrować dane tekstowe według określonych wzorców. Na przykład, w przypadku bazy danych produktów, możemy wykorzystać tę metodę do kategoryzowania towarów według roczników lub do analizy sprzedaży w danym roku. Dobrą praktyką jest także zapewnienie, że dane w kolumnie rok_produkcji są przechowywane w jednolitym formacie, co ułatwia ich przetwarzanie i analizę.

Pytanie 21

Na podstawie przydzielenia wartości do zmiennych w języku PHP można zauważyć, że

$zmienna1 = 15;
$zmienna2 = "15";
$zmienna3 = (string) $zmienna1;
A. zmienna1 i zmienna2 mają ten sam typ.
B. zmienna1 i zmienna3 mają ten sam typ.
C. wszystkie zmienne mają ten sam typ.
D. zmienna2 i zmienna3 mają ten sam typ.
Dobrze widzisz, że $zmienna2 i $zmienna3 mają ten sam typ. Obie przechowują wartości jako stringi, co jest spoko. $zmienna2 to łańcuch z "15", a $zmienna3 to wynik rzutowania $zmienna1 (która jest liczbą całkowitą) na string. W PHP takie rzutowanie to normalna sprawa i nie zmienia wartości, tylko jej format. W praktyce, jeżeli dobrze rozumiesz typy danych, to ułatwia Ci to życie w programowaniu. Różne typy mogą wpływać na to, jak działają operacje i jak dane są przechowywane. Warto więc pamiętać, żeby w kodzie jasno definiować typy zmiennych i używać rzutowania tam, gdzie trzeba, bo to pomaga unikać błędów. Jak się w to wczujesz, to łatwiej będzie Ci ogarniać pamięć i optymalizować kod, zwłaszcza w większych projektach.

Pytanie 22

Wskaż polecenie, które działa identycznie jak instrukcja while w PHP.

$x = 0;
while($x < 5) {
    echo "$x,";
    $x++;
}

Instrukcja 1
for ($x=0; $x<5; $x++) {
    echo "$x,";
    $x++;
}

Instrukcja 2
for ($x=0; $x<5; $x+=2) {
    echo "$x,";
    $x++;
}

Instrukcja 3

for ($x=0; $x<5; $x++) {
    echo "$x,";
}

Instrukcja 4
for ($x=1; $x<=5; $x++) {
    echo "$x,";
}
A. Instrukcja 1
B. Instrukcja 3
C. Instrukcja 2
D. Instrukcja 4
Niepoprawne odpowiedzi wynikają z błędnego zrozumienia struktury pętli for w JavaScript i jej porównania z pętlą while. Pętla while działa na zasadzie ciągłego sprawdzania warunku przed każdą iteracją co oznacza że pętla będzie się wykonywać dopóki warunek jest spełniony. W przypadku pętli for wszystkie elementy sterujące takie jak inicjalizacja warunek i inkrementacja są zdefiniowane w jednej linii. Dlatego ważne jest aby odpowiednio zrozumieć jak te elementy wpływają na wykonanie pętli. Błędy mogą pojawić się gdy warunek lub inkrementacja nie są właściwie zdefiniowane co może prowadzić do nieskończonych pętli lub nieoczekiwanych wyników. Dobre praktyki programistyczne wskazują że pętla for jest preferowana w sytuacjach gdzie liczba iteracji jest znana co zwiększa czytelność kodu i ułatwia jego utrzymanie. Zrozumienie błędów wynikających z niepoprawnej struktury pętli pozwala unikać typowych problemów takich jak niepoprawne warunki czy błędne przypisania co jest kluczowe w skutecznym programowaniu.

Pytanie 23

Podaj polecenie SQL, które wprowadza kolumnę miesiacSiewu do istniejącej tabeli rosliny?

A. UPDATE rosliny ADD miesiacSiewu int
B. INSERT INTO rosliny VALUES (miesiacSiewu int)
C. ALTER TABLE rosliny ADD miesiacSiewu int
D. CREATE TABLE rosliny {miesiacSiewu int}
Wszystkie błędne odpowiedzi opierają się na nieprawidłowym rozumieniu funkcji i zastosowania instrukcji w SQL. Polecenie INSERT INTO rosliny VALUES (miesiacSiewu int) jest niewłaściwe, ponieważ służy do wstawiania nowych rekordów do tabeli, a nie do modyfikacji jej struktury. Wstawiając dane, należy określić wartości dla istniejących kolumn, a nie definiować nowego pola. Funkcja UPDATE rosliny ADD miesiacSiewu int również jest myląca, gdyż polecenie UPDATE jest używane do aktualizacji istniejących danych w tabeli, a nie do dodawania nowych kolumn. Ponadto, dodawanie kolumny powinno odbywać się za pomocą ALTER TABLE, a nie poprzez UPDATE. Ostatecznie, CREATE TABLE rosliny {miesiacSiewu int} jest niewłaściwe, ponieważ polecenie CREATE TABLE jest stosowane do tworzenia nowej tabeli, a nie do modyfikacji istniejącej. Warto zauważyć, że w SQL każda instrukcja ma swoje specyficzne zastosowanie; nie można ich dowolnie zamieniać. Typowe błędy w myśleniu o SQL mogą prowadzić do nieefektywnego zarządzania danymi, dlatego kluczowe jest zrozumienie różnic między instrukcjami, aby skutecznie korzystać z możliwości baz danych.

Pytanie 24

W języku JavaScript zapisano fragment kodu. Po wykonaniu skryptu zmienna x

<script>
var x = 10;
x++;
console.log(x);
</script>
A. będzie równa 11 i zostanie wypisana w oknie popup.
B. będzie równa 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
C. będzie równa 10 i zostanie wypisana w dokumencie HTML.
D. będzie równa 11 i zostanie wypisana w konsoli przeglądarki internetowej.
Gratulacje, twoja odpowiedź jest poprawna! Odpowiedź 'będzie równa 11 i zostanie wypisana w konsoli przeglądarki internetowej' jest prawidłowa, ponieważ po zainicjalizowaniu zmiennej x wartością 10 następuje inkrementacja, która zwiększa wartość zmiennej o 1, dając w wyniku 11. Następnie wartość zmiennej x jest wypisywana w konsoli przeglądarki internetowej za pomocą metody console.log(). Jest to standardowa metoda w języku JavaScript do debugowania i śledzenia wartości zmiennych podczas wykonywania kodu. W praktyce, zrozumienie pracy z konsolą przeglądarki jest kluczowe dla efektywnego programowania JavaScript. To umiejętność, która pozwala na szybkie zlokalizowanie i rozwiązanie problemów z kodem. Dobrą praktyką jest również umiejętne korzystanie z operacji inkrementacji, które są podstawą sterowania przepływem i manipulowania danymi w JavaScript.

Pytanie 25

Aby zdefiniować styl akapitu <p>, który występuje bezpośrednio po znaczniku <img>, należy w arkuszu CSS zastosować selektor:

A.
img p
B.
img [p]
C.
img > p
D.
img + p
Te selektory różnią się rodzajem powiązania między elementami. img p ze spacją to selektor potomka - odnosi się do akapitów znajdujących się wewnątrz obrazu, co jest niemożliwe, bo <img> nie zawiera treści. img > p z operatorem > wybiera bezpośrednie dzieci elementu, więc również szuka <p> w środku <img>. Zapis img [p] jest po prostu błędny - nawiasy kwadratowe w CSS służą do dopasowania po atrybutach, a nie po nazwie znacznika. Akapit stojący tuż za obrazem, jako jego sąsiad, wskazuje selektor img + p z operatorem sąsiedztwa.

Pytanie 26

ALTER TABLE transport MODIFY COLUMN rok_produkcji INT;
Wykonanie powyższej kwerendy SQL w bazie MySQL spowoduje:
A. utworzenie tabeli transport zawierającej kolumnę rok_produkcji.
B. dodanie kolumny rok_produkcji typu INT w tabeli transport.
C. usunięcie kolumny rok_produkcji w tabeli transport.
D. zmianę typu danych w kolumnie rok_produkcji na INT.
Poprawnie – polecenie ALTER TABLE ... MODIFY COLUMN w MySQL służy do modyfikowania istniejącej kolumny, a nie do jej tworzenia czy usuwania. W podanym przykładzie baza danych szuka tabeli o nazwie `transport`, a następnie zmienia definicję kolumny `rok_produkcji` tak, aby jej typ danych był `INT`. Jeśli kolumna już istnieje (a musi istnieć, żeby MODIFY zadziałało), to po wykonaniu polecenia dalej będzie miała tę samą nazwę, ale jej typ i właściwości zostaną nadpisane nową definicją. W MySQL warto pamiętać, że przy MODIFY COLUMN trzeba podać pełną definicję kolumny, nie tylko sam typ. Czyli jeśli wcześniej była np. NOT NULL albo miała domyślną wartość, to dobra praktyka jest napisać coś w stylu: `ALTER TABLE transport MODIFY COLUMN rok_produkcji INT NOT NULL DEFAULT 2000;` – inaczej można przypadkiem zgubić część ustawień. W praktyce takie polecenia stosuje się przy zmianach w projekcie bazy: np. najpierw kolumna jest typu VARCHAR, bo ktoś przechowuje tam rok jako tekst, a potem, zgodnie z lepszymi zasadami projektowania, zmienia się to na typ liczbowy INT, żeby można było łatwo filtrować, sortować, robić warunki typu `WHERE rok_produkcji > 2015`. Z mojego doświadczenia dobrze jest przed taką zmianą sprawdzić, czy wszystkie dane da się bezpiecznie skonwertować na liczbę, bo jeśli w kolumnie są jakieś śmieciowe wartości tekstowe, to MySQL może je obciąć albo zamienić na 0, co później robi bałagan w raportach. W środowiskach produkcyjnych takie ALTER TABLE najlepiej wykonywać po zrobieniu kopii zapasowej i często w oknie serwisowym, bo przy dużych tabelach operacja może chwilowo blokować dostęp do danych.

Pytanie 27

W CSS wartości: underline, overline, blink są powiązane z atrybutem

A. font-weight
B. font-style
C. text-decoration
D. text-style
Atrybut text-decoration w CSS jest tym, co pozwala na dodawanie różnych efektów do tekstu. Możemy dzięki niemu użyć takich rzeczy jak underline, overline czy nawet blink, chociaż to ostatnie nie jest już zbyt popularne, bo wiele przeglądarek to ignoruje ze względu na dostępność. Dzięki tym efektom tekst może wyglądać bardziej estetycznie, a czytelność też się poprawia. Na przykład, jeśli użyjesz 'p { text-decoration: underline; }', to cały tekst w tym paragrafie będzie podkreślony. W CSS3 dodano też nowe możliwości, jak text-decoration-color czy text-decoration-style, co daje jeszcze większą kontrolę nad tym, jak nasz tekst będzie wyglądał. Dlatego myślę, że umiejętność korzystania z text-decoration jest naprawdę ważna dla każdego, kto zajmuje się tworzeniem stron internetowych.

Pytanie 28

W bazie danych dotyczącej pojazdów pole kolor w tabeli samochody może mieć wartości jedynie z definicji lakier. Aby nawiązać relację między tabelami samochody a lakier, należy użyć kwerendy

A. ALTER TABLE samochody ADD FOREIGN KEY barwa REFERENCES samochody.lakier;
B. ALTER TABLE samochody ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);
C. ALTER TABLE lakier ADD FOREIGN KEY (barwa) REFERENCES samochody(kolor);
D. ALTER TABLE samochody ADD FOREIGN KEY kolor REFERENCES lakier;
Odpowiedzi, które nie pasują do zapytania, często wynikają z nieporozumienia dotyczącego koncepcji kluczy obcych oraz ich zastosowania w relacyjnych bazach danych. Na przykład, zmiana struktury tabeli lakier przez dodanie klucza obcego do tabeli samochody nie jest zasadne, ponieważ relacja powinna zostać zdefiniowana w tabeli, która zawiera odwołanie do innej tabeli. Klucz obcy powinien znajdować się w tabeli, której dane są uzależnione od innej tabeli, co nie jest spełnione w tej sytuacji. Innym typowym błędem jest niepoprawne odwołanie się do kolumny w kontekście klucza obcego. Użycie "barwa" lub "kolor", jako klucza obcego w niewłaściwy sposób, prowadzi do sytuacji, gdzie nie można skutecznie zapewnić integralności danych. Należy pamiętać, że klucz obcy odnosi się do kolumny, która pełni rolę klucza głównego w innej tabeli, a w przypadku lakier, kluczem głównym jest lakierId. Stosowanie kluczy obcych nie tylko wspomaga zarządzanie danymi, ale również poprawia ich spójność oraz wiarygodność. Praktyki te są fundamentalnym aspektem projektowania baz danych, które powinny być przestrzegane, aby uniknąć nieporozumień w przyszłości.

Pytanie 29

Ikona przedstawiająca funkcję w edytorze grafiki rastrowej, znana jako „kubełek”, pozwala na

Ilustracja do pytania
A. zmianę bieżących kolorów
B. wypełnienie obszaru, który został zaznaczony kolorem
C. pobranie wybranej barwy i ustawienie jej jako aktywnej
D. wybór obszaru o identycznym kolorze
Narzędzie 'kubełek', często spotykane w edytorach grafiki rastrowej takich jak Adobe Photoshop czy GIMP, służy do wypełniania zaznaczonego obszaru kolorem. Jest to szczególnie przydatne w sytuacjach, gdy chcemy szybko zapełnić jednolitym kolorem duże powierzchnie, takie jak tła lub obiekty. Działa na zasadzie zalewania najbliższych pikseli wybranym kolorem, uwzględniając podobieństwo kolorów, co można regulować za pomocą opcji tolerancji. W praktyce, narzędzie to usprawnia proces tworzenia grafik, ponieważ eliminuje potrzebę ręcznego kolorowania każdego piksela. Dodatkowo 'kubełek' może być stosowany w połączeniu z różnymi trybami mieszania, co pozwala na uzyskanie bardziej zaawansowanych efektów wizualnych. Praca z 'kubełkiem' wymaga zrozumienia koncepcji warstw, ponieważ wypełnianie na konkretnej warstwie ma wpływ na finalny wygląd projektu. Wiedza o tym, jak skutecznie używać narzędzia 'kubełek', jest niezbędna dla każdego grafika cyfrowego, który chce pracować efektywnie i profesjonalnie, realizując projekty zgodnie z najlepszymi praktykami branżowymi.

Pytanie 30

Z tabeli mieszkańcy należy uzyskać unikalne nazwy miejscowości, do czego konieczne jest użycie wyrażenia SQL z klauzulą

A. DISTINCT
B. HAVING
C. CHECK
D. UNIQUE
Wybór odpowiedzi CHECK, HAVING lub UNIQUE wskazuje na pewne nieporozumienia dotyczące zastosowania i znaczenia tych klauzul w SQL. Klauzula CHECK jest używana w kontekście definicji tabeli, aby zapewnić, że dane w danym atrybucie spełniają określone warunki, na przykład 'CHECK (wiek >= 0)', co oznacza, że wiek nie może być ujemny. Nie ma jednak zastosowania w kontekście eliminacji duplikatów z wyników zapytania. Klauzula HAVING jest z kolei używana do filtrowania grup z wyniku agregacji, na przykład w zapytaniu z użyciem GROUP BY. Użycie HAVING do eliminacji duplikatów z wyników bez wcześniejszego grupowania danych nie ma sensu. Z kolei UNIQUE to ograniczenie, które można ustawić na kolumnę w tabeli, aby zapewnić, że nie będą w niej występowały powtarzające się wartości. Chociaż jest związane z unikalnością, nie jest klauzulą, którą można wykorzystać w zapytaniach do eliminacji duplikatów z zestawów wyników. Typowym błędem jest mylenie tych koncepcji, co prowadzi do wyboru nieodpowiednich narzędzi w SQL do rozwiązania konkretnego problemu. Warto zatem dobrze zrozumieć różnice między tymi klauzulami, aby umiejętnie stosować je w praktyce i skutecznie zarządzać danymi.

Pytanie 31

W instrukcji warunkowej języka JavaScript należy zweryfikować sytuację, w której wartość zmiennej a mieści się w zakresie (0, 100), a wartość zmiennej b jest większa od zera. Taki warunek można zapisać w sposób następujący

A. if ((a>0 || a<100) && b>0)
B. if (a>0 && a<100 && b>0)
C. if (a>0 || a<100 || b<0)
D. if ((a>0 && a<100) || b<0)
Wybór odpowiedzi 'if (a>0 && a<100 && b>0)' jest prawidłowy, ponieważ precyzyjnie spełnia określone wymagania zawarte w pytaniu. Warunek ten sprawdza, czy zmienna 'a' mieści się w przedziale od 0 do 100 (wyłączając 0 i 100), a także potwierdza, że zmienna 'b' jest większa od zera. Operator '&&' (AND) jest kluczowy w tym przypadku, ponieważ wymaga spełnienia wszystkich zdefiniowanych warunków jednocześnie. Przykładowo, jeśli mamy zmienne 'a' równe 50 i 'b' równe 10, to warunek zostanie spełniony i kod wewnątrz instrukcji 'if' zostanie wykonany. Zastosowanie takich warunków jest powszechne w programowaniu, zwłaszcza w sytuacjach wymagających walidacji danych, gdzie musimy upewnić się, że wszystkie kryteria są spełnione przed kontynuowaniem dalszych operacji. Standardy kodowania zalecają wykorzystanie prostych i jednoznacznych instrukcji warunkowych, co przyczynia się do lepszej przejrzystości i utrzymywalności kodu. Stosując odpowiednią logikę w warunkach, minimalizujemy ryzyko wystąpienia błędów w logice aplikacji.

Pytanie 32

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. td, th { background-color: Pink; }
B. tr { background-color: Pink; }
C. tr:hover { background-color: Pink; }
D. tr:active { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek.

W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony.

Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 33

Ile razy zostanie wykonana pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w trakcie działania pętli?
for ($i = 0; $i <= 10; $i+=2) { .... }

A. 10
B. 5
C. 0
D. 6
Odpowiedź 6 jest poprawna, ponieważ pętla for w języku PHP jest skonstruowana w taki sposób, że iteruje od 0 do 10 w krokach co 2. Inicjalizacja zmiennej $i zaczyna się od 0, a warunek kontynuacji pętli to $i <= 10. Przeanalizujmy zatem wartości, które przyjmie zmienna $i w kolejnych iteracjach: 0, 2, 4, 6, 8, 10. Widzimy, że pętla zatrzyma się po osiągnięciu wartości 10, co daje nam 6 iteracji. W praktyce, takie konstrukcje są bardzo użyteczne w różnych scenariuszach, na przykład, gdy chcemy iterować przez elementy tablicy, które mają parzyste indeksy. Dobrym przykładem może być generowanie dynamicznego kodu HTML, w którym chcemy wyświetlić co drugi element listy, co jest istotne w kontekście optymalizacji wizualnej interfejsów użytkownika. Zrozumienie działania pętli for oraz zasad dotyczących kontrolowania iteracji jest kluczowe w programowaniu, co jest zgodne z najlepszymi praktykami w branży.

Pytanie 34

Polecenie SQL:

GRANT CREATE, ALTER ON sklep.* TO adam;
Zakładając, że użytkownik adam wcześniej nie posiadał żadnych uprawnień, to powyższe polecenie SQL przyzna mu prawa jedynie do:
A. tworzenia oraz modyfikacji struktury w tabeli sklep
B. dodawania oraz modyfikacji danych we wszystkich tabelach bazy sklep
C. dodawania oraz modyfikacji danych w tabeli sklep
D. tworzenia oraz modyfikacji struktury wszystkich tabel w bazie sklep
Odpowiedź jest prawidłowa, ponieważ polecenie SQL 'GRANT CREATE, ALTER ON sklep.* TO adam;' przyznaje użytkownikowi 'adam' uprawnienia do tworzenia (CREATE) i zmiany (ALTER) struktury wszystkich tabel w bazie danych 'sklep'. W kontekście systemów zarządzania bazami danych (DBMS), uprawnienia 'CREATE' pozwalają użytkownikowi na tworzenie nowych obiektów, takich jak tabele, podczas gdy 'ALTER' umożliwia modyfikację istniejących obiektów. Dlatego użytkownik 'adam' zyskuje możliwość modyfikacji struktury każdej tabeli w bazie 'sklep', co obejmuje dodawanie lub usuwanie kolumn, zmiany typów danych oraz inne operacje związane z definicją tabel. Przykładowo, jeśli 'adam' chciałby dodać nową kolumnę do tabeli 'produkty', mógłby to zrobić dzięki uprawnieniom 'ALTER'. Z perspektywy najlepszych praktyk, przyznawanie takich uprawnień powinno być ograniczone do zaufanych użytkowników, aby zminimalizować ryzyko nieautoryzowanych zmian w strukturze bazy danych.

Pytanie 35

Czym charakteryzują się systemy CMS?

A. wbudowanym serwerem poczty
B. wbudowanym edytorem grafiki wektorowej
C. możliwością edycji treści bez znajomości HTML
D. możliwością programowania w zaawansowanych frameworkach
CMS to system do zarządzania TREŚCIĄ, a nie edytor grafiki wektorowej czy serwer poczty. Nie wymaga też programowania w zaawansowanych frameworkach - przeciwnie, jego sens to praca osób bez wiedzy technicznej. CMS cechuje możliwość edycji treści bez znajomości HTML.

Pytanie 36

Instrukcja języka PHP tworząca obiekt pkt dla zdefiniowanej w ramce klasy Punkt ma postać

class Punkt {  public $x;
                public $y;  }
A. Punkt() pkt;
B. pkt Punkt;
C. pkt = new Punkt();
D. pkt Punkt();
Twoja odpowiedź jest prawidłowa, gratuluję! W języku PHP, aby utworzyć nowy obiekt klasy, używamy słowa kluczowego 'new', a następnie nazwy klasy. Poprawna instrukcja, która tworzy obiekt 'pkt' klasy 'Punkt', ma więc postać '$pkt = new Punkt();'. Tę konstrukcję używamy, kiedy chcemy utworzyć nową instancję klasy. Warto pamiętać, że można tworzyć wiele obiektów tej samej klasy, a każdy z nich będzie miał własny zestaw danych (właściwości). Instancje klas są podstawą programowania obiektowego, które pozwala na tworzenie bardziej złożonych i łatwiejszych do zarządzania systemów. Dobre zrozumienie tego konceptu jest kluczowe dla efektywnego programowania w PHP.

Pytanie 37

Z jakich elementów składa się tabela generowana przez poniższy kod?

<table border="1">
<tr>
<td> 1 </td>
<td> 2 </td>
</tr>
</table>
A. jednego wiersza oraz jednej kolumny
B. dwóch wierszy oraz jednej kolumny
C. jednego wiersza oraz dwóch kolumn
D. dwóch wierszy i dwóch kolumn
Podstawowe zrozumienie struktury HTML jest kluczowe do prawidłowego interpretowania kodu tabeli. Zrozumienie ilości wierszy i kolumn wymaga analizy znaczników <tr> i <td>. Często popełniany błąd polega na myleniu ilości wierszy i kolumn z ilością znaczników <td> w jednym <tr>. Znacznik <tr> definiuje wiersz w tabeli, a każdy <td> wewnątrz <tr> to oddzielna kolumna. W przedstawionym przykładzie mamy jeden wiersz z dwoma kolumnami, co jest podstawową konfiguracją tabeli. Mylenie tej koncepcji z dwoma wierszami lub inną liczbą kolumn jest często wynikiem niepełnej analizy struktury kodu. Warto zwrócić uwagę na semantykę HTML, która jest istotna z punktu widzenia dostępności i SEO. Stosowanie tabeli powinno być ograniczone do prezentacji danych tabularycznych, a nie jako narzędzie do ogólnej struktury strony, co jest niezgodne z nowoczesnymi standardami. Poznanie i zrozumienie tych zasad jest niezbędne dla efektywnego tworzenia stron internetowych i unikania typowych błędów w kodzie HTML. W przypadku tworzenia bardziej złożonych układów, zaleca się korzystanie z CSS Grid lub Flexboxa, które oferują większą elastyczność i kontrolę nad wyglądem strony.

Pytanie 38

W instrukcjach, których celem jest odtwarzanie dźwięku na stronie internetowej jako tła muzycznego, nie stosuje się atrybutu

A. href="c:/100.wav"
B. balance="10"
C. loop="10"
D. volume="-100"
Atrybut href w kontekście dźwięku na stronie internetowej jest używany w tagu <audio> lub <source>, aby wskazać lokalizację pliku audio. Pliki dźwiękowe, które mają być odtwarzane w przeglądarkach, powinny być dostępne pod adresem URL, a nie w lokalnym systemie plików, jak w przypadku href='c:/100.wav'. Standardy W3C oraz HTML5 określają, że pliki audio powinny być dostępne przez HTTP lub HTTPS, co pozwala na ich odtwarzanie zdalnie. Jeśli plik audio znajduje się na lokalnym dysku, nie będzie on dostępny dla użytkowników odwiedzających stronę poprzez Internet. Przykładem poprawnego użycia atrybutu href jest wskazanie pliku dźwiękowego, który jest hostowany na serwerze, na przykład href='http://example.com/audio/track1.mp3'. Ponadto, do kontrolowania odtwarzania dźwięku można wykorzystać inne atrybuty jak autoplay, loop, czy controls, które pozwalają na lepsze zarządzanie interakcją użytkownika z muzyką na stronie.

Pytanie 39

Formularze do zarządzania bazami danych są tworzone w celu

A. generowania raportów z danych
B. wyszukiwania rekordów, które spełniają określone kryteria
C. ułatwienia wprowadzania, edytowania i usuwania danych
D. tworzenia powiązań w relacyjnych bazach danych
Formularze do obsługi baz danych odgrywają kluczową rolę w procesie zarządzania danymi, pozwalając na wygodne wprowadzanie, edytowanie oraz usuwanie informacji. Są one interfejsem, który umożliwia użytkownikom interakcję z bazą danych w sposób bardziej intuicyjny niż bezpośrednie operacje na tabelach. Dzięki formularzom można zminimalizować ryzyko błędów, które mogą wystąpić podczas ręcznego wprowadzania danych, a także zautomatyzować proces weryfikacji. Przykładem może być formularz rejestracji użytkownika, w którym wszystkie dane są wprowadzane w zorganizowanej formie, co pozwala na szybkie i efektywne przetwarzanie. Formularze mogą być powiązane z regułami walidacji, co zapewnia, że jedynie poprawne dane są wprowadzane do bazy. Przykładowo, można ustawić ograniczenia na pola tekstowe, aby akceptowały jedynie określone formaty danych, takie jak adresy e-mail czy numery telefonów. Standardy, takie jak SQL i normy dotyczące projektowania baz danych, wskazują na znaczenie formularzy w kontekście utrzymania integralności danych oraz ułatwienia ich obsługi.

Pytanie 40

W zamieszczonym kodzie PHP, który łączy się z serwerem bazy danych, jakie działania powinny być umieszczone w instrukcji warunkowej w miejscu trzech kropek?

$db = mysqli_connect("localhost","root","qwerty","baza1");
if ( !$db ) {
...
}
A. Zamknięcie połączenia z bazą danych
B. Informacja o udanym połączeniu z bazą
C. Zarządzanie błędem połączenia
D. Przetwarzanie danych otrzymanych z bazy
W przypadku nawiązywania połączenia z bazą danych kluczowym aspektem jest sprawdzenie czy połączenie zostało nawiązane pomyślnie. W PHP funkcja mysqli_connect() zwraca false w przypadku nieudanego połączenia dlatego pierwszym krokiem po jej użyciu powinno być sprawdzenie czy połączenie zostało zainicjowane poprawnie. W sytuacji gdy połączenie nie powiedzie się należy wykonać odpowiednie czynności obsługi błędu. Najczęściej stosowaną praktyką jest wyświetlenie użytkownikowi komunikatu o błędzie oraz zapisanie szczegółów błędu do logów systemowych co umożliwia późniejszą diagnostykę problemu. Można to zrealizować za pomocą funkcji mysqli_connect_error() która zwraca szczegóły błędu połączenia. Obsługa błędów na tym etapie jest zgodna z dobrymi praktykami programistycznymi i pomaga zapobiegać sytuacjom w których aplikacja działałaby w sposób nieprzewidywalny lub nieefektywny. Prawidłowe zarządzanie błędami połączenia jest niezbędne do tworzenia stabilnych i bezpiecznych aplikacji internetowych. Ponadto pozwala na wczesne wykrycie problemów konfiguracyjnych takich jak nieprawidłowe dane logowania czy brak dostępu do serwera bazy danych.