Polecenie
Baza danych sklepu ma widok dla menadżera i ochronę przed SQL Injection.
- Utwórz widok
produkty_dostepne– tylko produkty z ilością > 0. - W PHP pobierz dane z widoku.
- Zabezpiecz formularz logowania przed SQL Injection (przygotowane zapytania PDO).
- Sprawdź działanie widoku i bezpiecznego logowania.
Kod SQL – tworzenie widoku
CREATE VIEW produkty_dostepne AS
SELECT id, nazwa, cena, ilosc
FROM produkty
WHERE ilosc > 0;
Kod PHP – pobieranie danych z widoku
<?php
$pdo = new PDO("mysql:host=localhost;dbname=sklep", "root", "");
// Pobieranie produktów z widoku
$stmt = $pdo->query("SELECT * FROM produkty_dostepne");
$produkty = $stmt->fetchAll();
echo "<h2>Dostępne produkty</h2>";
foreach ($produkty as $p) {
echo $p['nazwa']." - ".$p['cena']." zł (Ilość: ".$p['ilosc'].")<br>";
}
?>
Kod PHP – bezpieczne logowanie (PDO)
<?php
$pdo = new PDO("mysql:host=localhost;dbname=sklep", "root", "");
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$login = $_POST['login'];
$haslo = $_POST['haslo'];
$stmt = $pdo->prepare("SELECT * FROM uzytkownicy WHERE login = :login AND haslo = :haslo");
$stmt->execute(['login' => $login, 'haslo' => $haslo]);
$user = $stmt->fetch();
if ($user) {
echo "Zalogowano pomyślnie!";
} else {
echo "Błędny login lub hasło.";
}
}
?>