Rozwiązanie - Egzamin Praktyczny EE.09
Arkusz EE.09-04-22.01-SG - Styczeń 2022 - Wersja #04
Skrypt: PHP
Baza Danych:
Powiązana zawartość
Plik psy.sql
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Czas generowania: 29 Mar 2023, 01:31
-- 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: `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;
--
-- Zrzut danych tabeli `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 dla zrzuconych tabel
--
--
-- AUTO_INCREMENT dla tabeli `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 http-equiv="X-UA-Compatible" content="IE=edge">
<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 id="lewy">
<img src="obraz.jpg" alt="foksterier">
</div>
<div id="prawy1">
<h2>Zapisz się</h2>
<form action="logowanie.php" method="post">
<label for="login">login:</label> <input type="text" name="login" id="login"><br>
<label for="haslo">hasło:</label> <input type="password" name="haslo" id="haslo"><br>
<label for="haslo2">powtórz hasło:</label> <input type="password" name="haslo2" id="haslo2"><br>
<button type="submit">Zapisz</button>
</form>
<?php
// Skrypt #1
if(isset($_POST["login"]) && isset($_POST["haslo"]) && isset($_POST["haslo2"])) {
if(!empty($_POST["login"]) && !empty($_POST["haslo"]) && !empty($_POST["haslo2"])) {
$login = $_POST["login"];
$haslo = $_POST["haslo"];
$haslo2 = $_POST["haslo2"];
$istniejelogin = false;
$conn = new mysqli("localhost","root","","psy");
$sql = "SELECT login FROM uzytkownicy;";
$result = $conn->query($sql);
while($row = $result -> fetch_array()) {
if($login == $row[0]) {
echo "<p>login występuje w bazie danych, konto nie zostało dodane</p>";
$istniejelogin = true;
}
}
if($istniejelogin == false) {
if($haslo == $haslo2) {
$hash = sha1($haslo);
$sql = "INSERT INTO uzytkownicy VALUES (NULL, '$login', '$hash');";
$result = $conn->query($sql);
echo "<p>Konto zostało dodane</p>";
}
else {
echo "<p>hasła nie są takie same, konto nie zostało dodane</p>";
}
}
$conn -> close();
}
else {
echo "<p>wypełnij wszystkie pola</p>";
}
}
?>
</div>
<div id="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: unset;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: white;
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 {
background: saddlebrown;
color: white;
}
form {
background: saddlebrown;
color: white;
padding: 10px 30px;
width: 300px;
}
form input {
margin: 5px;
}
p {
/*Dla paragrafu (akapitu): przed każdym paragrafem wstawiany jest tekst o treści „STATUS: ”*/
content: "STATUS: ";
}
Powiązana zawartość
Autorem arkusza jest CKE.GOV.PL