Cel zajęć: Uczeń potrafi tworzyć dynamiczne aplikacje WWW obsługujące bazę danych MySQL oraz stosować podstawowe zasady bezpieczeństwa danych w PHP.
Ważne: zawsze filtruj dane i używaj prepared statements, aby chronić aplikację przed SQL Injection.
htdocs utwórz folder crud_php.CREATE DATABASE szkola; USE szkola; CREATE TABLE uczniowie ( id INT AUTO_INCREMENT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50), klasa VARCHAR(10) );
<?php
$conn = new mysqli("localhost","root","","szkola");
if($_SERVER["REQUEST_METHOD"]=="POST"){
$imie=htmlspecialchars($_POST['imie']);
$nazwisko=htmlspecialchars($_POST['nazwisko']);
$klasa=htmlspecialchars($_POST['klasa']);
$stmt=$conn->prepare("INSERT INTO uczniowie (imie,nazwisko,klasa) VALUES (?,?,?)");
$stmt->bind_param("sss",$imie,$nazwisko,$klasa);
$stmt->execute();
echo "<p>Dodano ucznia!</p>";
}
?>
<form method="POST">
Imię: <input type="text" name="imie" required><br>
Nazwisko: <input type="text" name="nazwisko" required><br>
Klasa: <input type="text" name="klasa" required><br>
<input type="submit" value="Dodaj ucznia">
</form>
<?php
$conn = new mysqli("localhost","root","","szkola");
$result = $conn->query("SELECT * FROM uczniowie");
?>
<table class="effect-table">
<tr><th>ID</th><th>Imię</th><th>Nazwisko</th><th>Klasa</th><th>Akcje</th></tr>
<?php while($row=$result->fetch_assoc()): ?>
<tr>
<td><?= $row['id'] ?></td>
<td><?= $row['imie'] ?></td>
<td><?= $row['nazwisko'] ?></td>
<td><?= $row['klasa'] ?></td>
<td><a href="edytuj.php?id=<?= $row['id'] ?>">Edytuj</a> | <a href="usun.php?id=<?= $row['id'] ?>">Usuń</a></td>
</tr>
<?php endwhile; ?>
</table>
<?php
$imie = filter_input(INPUT_POST,'imie',FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST,'email',FILTER_SANITIZE_EMAIL);
$wiek = filter_input(INPUT_POST,'wiek',FILTER_VALIDATE_INT);
if($imie && $email && $wiek){
echo "✅ Dane poprawne!";
} else { echo "❌ Wprowadź poprawne dane!"; }
?>
<form method="POST">
Imię: <input type="text" name="imie"><br>
Email: <input type="email" name="email"><br>
Wiek: <input type="number" name="wiek"><br>
<button type="submit">Sprawdź dane</button>
</form>
<?php
$stmt=$conn->prepare("INSERT INTO uzytkownicy (imie,email) VALUES (?,?)");
$stmt->bind_param("ss",$imie,$email);
$imie=filter_input(INPUT_POST,'imie',FILTER_SANITIZE_STRING);
$email=filter_input(INPUT_POST,'email',FILTER_SANITIZE_EMAIL);
$stmt->execute();
echo "✅ Użytkownik dodany bezpiecznie!";
?>
<?php
if(isset($_POST['register'])){
$login=$_POST['login'];
$haslo=password_hash($_POST['haslo'],PASSWORD_DEFAULT);
$conn->query("INSERT INTO loginy (login,haslo) VALUES ('$login','$haslo')");
}
if(isset($_POST['login_submit'])){
$login=$_POST['login'];
$haslo=$_POST['haslo'];
$res=$conn->query("SELECT * FROM loginy WHERE login='$login'");
$row=$res->fetch_assoc();
if($row && password_verify($haslo,$row['haslo'])){
echo "🔓 Zalogowano!";
} else { echo "❌ Błędne dane logowania."; }
}
?>