Rozwiązanie - Egzamin Praktyczny EE.09
Arkusz EE.09-01-23.06-SG - Czerwiec 2023 - Wersja #01
Skrypt: PHP
Baza Danych:
Powiązana zawartość
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: ";
}
Powiązana zawartość
Autorem arkusza jest CKE.GOV.PL