Rozwiązanie - Egzamin Praktyczny EE.09

Arkusz EE.09-05-22.01-SG - Styczeń 2022 - Wersja #05

Skrypt: PHP

Baza Danych:

Przykładowe rozwiązanie
Rozwiązanie - Arkusz praktyczny EE.09-05-22.01-SG - Styczeń 2022 - Wersja #05
Wymagane zdjęcia
Egzamin EE.09-05-22.01-SG - dodatkowe zdjęcia - icon-on.png
icon-on.png
Egzamin EE.09-05-22.01-SG - dodatkowe zdjęcia - o1.jpg
o1.jpg
Egzamin EE.09-05-22.01-SG - dodatkowe zdjęcia - o2.jpg
o2.jpg
Egzamin EE.09-05-22.01-SG - dodatkowe zdjęcia - o3.jpg
o3.jpg
Egzamin EE.09-05-22.01-SG - dodatkowe zdjęcia - o4.jpg
o4.jpg
Egzamin EE.09-05-22.01-SG - dodatkowe zdjęcia - o5.jpg
o5.jpg
Egzamin EE.09-05-22.01-SG - dodatkowe zdjęcia - o6.jpg
o6.jpg
Egzamin EE.09-05-22.01-SG - dodatkowe zdjęcia - o7.jpg
o7.jpg
Egzamin EE.09-05-22.01-SG - dodatkowe zdjęcia - o8.jpg
o8.jpg
Wyniki działań na bazie danych
Egzamin EE.09-05-22.01-SG - Operacje na bazie danych - egzamin.jpeg
egzamin.jpeg
Egzamin EE.09-05-22.01-SG - Operacje na bazie danych - egzamin.jpeg
kw1.png
Egzamin EE.09-05-22.01-SG - Operacje na bazie danych - egzamin.jpeg
kw2.png
Egzamin EE.09-05-22.01-SG - Operacje na bazie danych - egzamin.jpeg
kw3.png
Egzamin EE.09-05-22.01-SG - Operacje na bazie danych - egzamin.jpeg
kw4.png
Plik portal.sql
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Czas generowania: 29 Mar 2023, 02:08
-- Wersja serwera: 10.4.27-MariaDB
-- Wersja PHP: 8.2.0

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Baza danych: `portal`
--

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `dane`
--

CREATE TABLE `dane` (
  `id` int(10) UNSIGNED NOT NULL,
  `rok_urodz` year(4) DEFAULT NULL,
  `przyjaciol` int(10) UNSIGNED DEFAULT NULL,
  `hobby` varchar(20) DEFAULT NULL,
  `zdjecie` varchar(100) DEFAULT NULL,
  `stanowisko` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

--
-- Zrzut danych tabeli `dane`
--

INSERT INTO `dane` (`id`, `rok_urodz`, `przyjaciol`, `hobby`, `zdjecie`, `stanowisko`) VALUES
(1, 1995, 10, 'moda', 'o6.jpg', NULL),
(2, 1990, 20, 'film', 'o4.jpg', NULL),
(3, 1990, 20, 'cross', 'o1.jpg', NULL),
(4, 2001, 4, 'finanse', 'o2.jpg', NULL),
(5, 2002, 50, 'muzyka', 'o8.jpg', NULL),
(6, 1994, 10, 'baseball', 'o6.jpg', NULL),
(7, 1990, 20, 'film', 'o5.jpg', NULL),
(8, 1990, 20, 'film', 'o3.jpg', NULL),
(9, 2001, 0, 'psychologia', 'o7.jpg', NULL),
(10, 2002, 50, 'muzyka', 'o2.jpg', NULL),
(11, 1994, 10, 'DIY', 'o6.jpg', NULL);

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `uzytkownicy`
--

CREATE TABLE `uzytkownicy` (
  `id` int(10) UNSIGNED NOT NULL,
  `login` varchar(50) DEFAULT NULL,
  `haslo` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

--
-- Zrzut danych tabeli `uzytkownicy`
--

INSERT INTO `uzytkownicy` (`id`, `login`, `haslo`) VALUES
(1, 'Justyna', 'a056c8d05ae9ac6ca180bc991b93b7ffe37563e0'),
(2, 'Ewa', 'c50267b906a652f2142cfab006e215c9f6fdc8a0'),
(3, 'Krzysiek', '637a81ed8e8217bb01c15c67c39b43b0ab4e20f1'),
(4, 'Adam', '8578173555a47d4ea49e697badfda270dee0858f'),
(5, 'Magda', '99ebdbd711b0e1854a6c2e93f759efc2af291fd0'),
(6, 'Werka', '186154712b2d5f6791d85b9a0987b98fa231779c'),
(7, 'Janek', '7823372203bd98aeb10e6f33a6ce7dab12d13423'),
(8, 'Heniek', '425ffc1422dc4f32528bd9fd5af355fdb5c96192'),
(9, 'Ola', '4ae9fa0a8299a828a886c0eb30c930c7cf302a72'),
(10, 'Dawid', 'b3054ff0797ff0b2bbce03ec897fe63e0b6490e0'),
(11, 'Ewelina', '7e240de74fb1ed08fa08d38063f6a6a91462a815');

--
-- Indeksy dla zrzutów tabel
--

--
-- Indeksy dla tabeli `dane`
--
ALTER TABLE `dane`
  ADD PRIMARY KEY (`id`);

--
-- Indeksy dla tabeli `uzytkownicy`
--
ALTER TABLE `uzytkownicy`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT dla zrzuconych tabel
--

--
-- AUTO_INCREMENT dla tabeli `dane`
--
ALTER TABLE `dane`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

--
-- AUTO_INCREMENT dla tabeli `uzytkownicy`
--
ALTER TABLE `uzytkownicy`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Plik kwerendy.txt
Zapytanie 1: SELECT haslo FROM uzytkownicy WHERE login = 'Justyna';
Zapytanie 2: SELECT COUNT(*) FROM dane;
Zapytanie 3: SELECT u.login, d.rok_urodz, d.przyjaciol, d.hobby, d.zdjecie FROM uzytkownicy u INNER JOIN dane d ON u.id = d.id WHERE u.login = 'Justyna';
Zapytanie 4: ALTER TABLE dane ADD COLUMN stanowisko TEXT;
Plik uzytkownicy.php
<?php
    $conn = new mysqli("localhost","root","","portal");
?>

<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Portal społecznościowy</title>
        <link rel="stylesheet" href="styl5.css">
    </head>
    <body>
        <div id="baner1">
            <h2>Nasze osiedle</h2>
        </div>

        <div id="baner2">
            <?php
                // Skrypt #1
                $sql = "SELECT COUNT(*) FROM dane;";
                $result = $conn->query($sql);

                while($row = $result -> fetch_array()) {
                    echo "<h5>Liczba użytkowników portalu: $row[0]</h5>";
                }
            ?>
        </div>
        
        <div id="lewy">
            <h3>Logowanie</h3>
            <form action="uzytkownicy.php" method="post">
                <label for="login">login</label><br>
                <input type="text" name="login" id="login"><br>
                <label for="haslo">hasło</label><br>
                <input type="password" name="haslo" id="haslo"><br>
                <button type="submit">Zaloguj</button>
            </form>
        </div>

        <div id="prawy">
            <h3>Wizytówka</h3>
            <?php
                // Skrypt #2
                if(isset($_POST["login"]) && isset($_POST["haslo"])) {
                    echo "<div class='wizytowka'>";
                    if(!empty($_POST["login"]) && !empty($_POST["haslo"])) {
                        $login = $_POST["login"];
                        $haslo = $_POST["haslo"];
                        $hash = sha1($haslo);

                        $sql = "SELECT haslo FROM uzytkownicy WHERE login = '$login';";
                        $result = $conn->query($sql);

                        if($result->num_rows == 1) {
                            while($row = $result -> fetch_array()) {
                                $haslobaza = $row[0];
                            }

                            if($hash == $haslobaza) {
                                $sql = "SELECT u.login, d.rok_urodz, d.przyjaciol, d.hobby, d.zdjecie FROM uzytkownicy u INNER JOIN dane d ON u.id = d.id WHERE u.login = '$login';";
                                $result = $conn->query($sql);

                                while($row = $result -> fetch_array()) {
                                    $wiek = date("Y") - $row[1];
                                    echo "<img src='$row[4]' alt='osoba'>";
                                    echo "<h4>$row[0] ($wiek)</h4>";
                                    echo "<p>hobby: $row[3]</p>";
                                    echo "<h1><img src='icon-on.png' alt='obraz serca'> $row[2]</h1>";
                                    echo "<a href='dane.html'>Więcej informacji</a>";
                                }
                            }

                            else {
                                echo "hasło nieprawidłowe";
                            }
                        }
                        else {
                            echo "login nie istnieje";
                        }
                    }
                    else {
                        echo "Uzupełnij wszystkie pola";
                    }
                    echo "</div>";
                }
            ?>
        </div>

        <footer>
            Stronę wykonał: <a href="https://ee-informatyk.pl/" target="_blank" style="color: unset;text-decoration: none;">EE-Informatyk.pl</a>
        </footer>
    </body>
</html>

<?php
    $conn -> close();
?>
Plik dane.html
strona w trakcie budowy
Plik styl5.css
body {
    font-family: 'Tahoma';
}

#baner1,#baner2 {
    background: #003d33;
    color: white;
    text-align: center;
    height: 50px;
    float: left;
}

#baner1 {
    width: 70%;
}

#baner2 {
    width: 30%;
}

#lewy {
    clear: both;
    background: #26a69a;
    height: 550px;
    width: 30%;
    float: left;
}

#prawy {
    background: #26a69a;
    height: 550px;
    width: 70%;
    float: left;
}

footer {
    clear: both;
    background: #003d33;
    color: white;
}

.wizytowka {
    width: 400px;
    margin: 30px;
    text-align: center;
    border: 1px solid #003d33;
}

.wizytowka a {
    background: #003d33;
    color: white;
    width: 100%;
    height: 30px;
    border: none;
    display: block;
}

.wizytowka a:hover {
    background: #004c40;
}

Strona używa plików cookies

Serwis wykorzystuje ciasteczka głównie w celu prowadzenia systemu formularzy oraz zbierania danych dotyczących ruchu na stronie.

Więcej informacji znajdziesz w Polityce Prywatności

Akceptuję