Rozwiązanie - Egzamin Praktyczny EE.09

Arkusz EE.09-01-23.06-SG - Czerwiec 2023 - Wersja #01

Skrypt: PHP

Baza Danych:

Przykładowe rozwiązanie
Rozwiązanie - Arkusz praktyczny EE.09-01-23.06-SG - Czerwiec 2023 - Wersja #01
Wymagane zdjęcia
Egzamin EE.09-01-23.06-SG - dodatkowe zdjęcia - obraz.jpg
obraz.jpg
Wyniki działań na bazie danych
Egzamin EE.09-01-23.06-SG - Operacje na bazie danych - egzamin.png
egzamin.png
Egzamin EE.09-01-23.06-SG - Operacje na bazie danych - egzamin.png
kw1.jpeg
Egzamin EE.09-01-23.06-SG - Operacje na bazie danych - egzamin.png
kw2.jpeg
Egzamin EE.09-01-23.06-SG - Operacje na bazie danych - egzamin.png
kw3.jpeg
Egzamin EE.09-01-23.06-SG - Operacje na bazie danych - egzamin.png
kw4.jpeg
Plik psy.sql
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Dec 10, 2023 at 07:33 PM
-- Wersja serwera: 10.4.28-MariaDB
-- Wersja PHP: 8.2.4

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 */;

--
-- Database: `psy`
--

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

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

CREATE TABLE `uzytkownicy` (
  `id` int(10) UNSIGNED NOT NULL,
  `login` tinytext DEFAULT NULL,
  `haslo` tinytext DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `uzytkownicy`
--

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

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

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

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `uzytkownicy`
--
ALTER TABLE `uzytkownicy`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;
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: CREATE TABLE uzytkownicy (id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, login TEXT(50), haslo TEXT(50));
Zapytanie 2: INSERT INTO uzytkownicy VALUES (NULL, 'Grzegorz', 'g');
Zapytanie 3: SELECT login FROM uzytkownicy;
Zapytanie 4: SELECT id, login FROM uzytkownicy WHERE haslo LIKE '4%';
Plik logowanie.php
<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Forum o psach</title>
        <link rel="stylesheet" href="styl4.css">
    </head>
    <body>
        <header>
            <h1>Forum wielbicieli psów</h1>
        </header>

        <div class="lewy">
            <img src="obraz.jpg" alt="foksterier">
        </div>

        <div class="prawy1">
            <h2>Zapisz się</h2>
            <form method="post">
                login: <input type="text" name="login" id="login"><br>
                hasło: <input type="password" name="password" id="password"><br>
                powtórz hasło: <input type="password" name="confirm" id="confirm"><br>
                <button type="submit" name="save">Zapisz</button>
            </form>

            <?php
                // Skrypt #1
                $conn = new mysqli("localhost","root","","psy");

                function hashPassword($password) {
                    return sha1($password);
                }
                
                if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                    if (empty($_POST['login']) || empty($_POST['password']) || empty($_POST['confirm'])) {
                        echo '<p>Wypełnij wszystkie pola</p>';
                    }
                    else {
                        $login = $_POST['login'];
                        $password = $_POST['password'];
                        $repeatPassword = $_POST['confirm'];
                
                        if ($password != $repeatPassword) {
                            echo '<p>Hasła nie są takie same, konto nie zostało dodane</p>';
                        }
                        else {
                            $checkLoginQuery = "SELECT * FROM uzytkownicy WHERE login = '$login'";
                            $result = $conn->query($checkLoginQuery);
                
                            if ($result->num_rows > 0) {
                                echo '<p>Login występuje w bazie danych, konto nie zostało dodane</p>';
                            } else {
                                $hashedPassword = hashPassword($password);
                                $addUserQuery = "INSERT INTO uzytkownicy (login, haslo) VALUES ('$login', '$hashedPassword')";
                                if ($conn->query($addUserQuery)) {
                                    echo '<p>Konto zostało dodane</p>';
                                }
                                else {
                                    echo '<p>Błąd dodawania konta do bazy danych</p>';
                                }
                            }
                        }
                    }
                }

                $conn -> close();
            ?>
        </div>

        <div class="prawy2">
            <h2>Zapraszamy wszystkich</h2>
            <ol>
                <li>właścicieli psów</li>
                <li>weterynarzy</li>
                <li>tych, co chcą kupić psa</li>
                <li>tych, co lubią psy</li>
            </ol>
            <a href="regulamin.html">Przeczytaj regulamin forum</a>
        </div>

        <footer>
            Stronę wykonał: <a href="https://ee-informatyk.pl/" target="_blank" style="color: #fff;text-decoration: none;">EE-Informatyk.pl</a>
        </footer>
    </body>
</html>
Plik regulamin.html
regulamin
Plik styl4.css
body {
    font-family: Garamond;
}

header {
    background: saddlebrown;
    color: #fff;
    text-align: center;
    height: 50px;
}

.lewy {
    background: Tan;
    height: 500px;
    width: 40%;
    float: left;
}

.prawy1,
.prawy2 {
    background: Tan;
    height: 250px;
    width: 60%;
    float: right;
}

footer {
    clear: both;
    background: saddlebrown;
    color: #fff;
}

form {
    background: saddlebrown;
    color: #fff;
    padding: 10px 30px;
    width: 300px;
}

form > input {
    margin: 5px;
}

p::before {
    content: "STATUS: ";
}

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ę