Siedzisz wieczorem przy komputerze, kodzisz coś w PHP, wszystko działa, aż nagle...
Hello, Developer.
We've been watching your work.
It's... impressive.
You are now part of something bigger.
Type "ACCEPT" to proceed.
Co robisz?
A) Piszesz „ACCEPT” i zaczyna się przygoda życia.
B) Wyłączasz komputer i udajesz, że to się nigdy nie wydarzyło.
C) Pytasz: „Czy będą płacić w kryptowalutach?”
D) Sprawdzasz, czy to nie twoja własna linijka kodu z zeszłego tygodnia.
Na stronie pojawia się informacja MISSION_00. W środku:
Odszyfruj wiadomość zakodowaną w base64.
<?php
$encrypted = "U3lzdGVtX0h1bmdlcg==";
echo base64_decode($encrypted);
?>
Połącz się z bazą danych i znajdź użytkownika o kodzie „GHOST_AGENT”.
<?php
$conn = new mysqli("localhost", "root", "", "system");
$result = $conn->query("SELECT * FROM users WHERE code = 'GHOST_AGENT'");
$data = $result->fetch_assoc();
echo $data['name'];
?>
Napisz skrypt logowania z wykorzystaniem sesji PHP.
<?php
session_start();
if ($_POST['login'] == 'admin' && $_POST['haslo'] == 'tajne') {
$_SESSION['zalogowany'] = true;
echo "Witaj, agencie!";
}
?>
Znajdź i napraw podatność SQL Injection.
// NIEBEZPIECZNIE:
$query = "SELECT * FROM users WHERE login = '$login' AND haslo = '$haslo'";
// BEZPIECZNIE:
$stmt = $conn->prepare("SELECT * FROM users WHERE login = ? AND haslo = ?");
$stmt->bind_param("ss", $login, $haslo);
$stmt->execute();
$result = $stmt->get_result();
?>
Połącz się z bazą danych i pobierz wiadomość.
<?php
$conn = new mysqli("localhost", "agent_null", "haslo123", "projekt_null");
$result = $conn->query("SELECT tresc FROM wiadomosci LIMIT 1");
$row = $result->fetch_assoc();
echo $row['tresc'];
?>
Stwórz formularz rejestracji użytkownika z PHP i MySQL.
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$login = $_POST['login'];
$haslo = password_hash($_POST['haslo'], PASSWORD_DEFAULT);
$stmt = $conn->prepare("INSERT INTO users (login, haslo) VALUES (?, ?)");
$stmt->bind_param("ss", $login, $haslo);
$stmt->execute();
}
?>
Weryfikacja danych z formularza.
<form method="POST" action="walidacja.php">
<input type="text" name="kod" placeholder="Podaj kod dostępu">
<input type="submit" value="Wyślij">
</form>
<?php
$kod = $_POST['kod'] ?? '';
if (empty($kod)) {
echo "Brak kodu – transmisja nieprawidłowa.";
} else {
echo "Kod odebrany: " . htmlspecialchars($kod);
}
?>
Użyj funkcji `htmlspecialchars()` by zabezpieczyć dane z formularza.
<?php
$login = htmlspecialchars($_POST['login']);
$komentarz = htmlspecialchars($_POST['komentarz']);
echo "Komentarz: $komentarz";
?>
Wyświetl informację o aktualnie zalogowanym użytkowniku.
<?php
session_start();
if (isset($_SESSION['zalogowany'])) {
echo "Zalogowany jako: " . $_SESSION['user'];
}
?>
Wyszukaj ukryte informacje w logach.
SELECT * FROM logi WHERE opis LIKE '%Delta%';
Bezpieczne logowanie z użyciem prepared statements.
$stmt = $conn->prepare("SELECT * FROM users WHERE login = ? AND haslo = ?");
$stmt->bind_param("ss", $login, $haslo);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
echo "Zalogowano!";
} else {
echo "Dostęp odrzucony.";
}
Sprawdź, które pliki zostały przesłane na serwer i wyświetl tylko .txt
<?php
$pliki = scandir('upload/');
foreach ($pliki as $plik) {
if (str_ends_with($plik, '.txt')) {
echo "<li>$plik</li>";
}
}
?>
Zaszyfrowano wiadomość algorytmem ROT13. Odszyfruj ją.
<?php
$kod = "Cebtenzzvat vf sha!";
echo str_rot13($kod);
?>
Przetwórz dane JSON z czujnika i wyświetl status.
<?php
$json = '{ "czujnik": "Serwer_01", "status": "AKTYWNY" }';
$data = json_decode($json, true);
echo "Status systemu: " . $data['status'];
?>
Użyj PHP lub JS do sprawdzenia czasu systemowego.
Utwórz stronę logowania, która wygląda jak prawdziwa, ale zapisuje dane (do nauki bezpieczeństwa).
<?php
file_put_contents('logi.txt', $_POST['login'] . ' - ' . $_POST['haslo'] . PHP_EOL, FILE_APPEND);
?>
Stwórz logikę, która zapisze wszystkie odwiedziny strony z IP oraz datą.
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$data = date("Y-m-d H:i:s");
file_put_contents("odwiedziny.log", "$ip - $data\n", FILE_APPEND);
echo "Odwiedziny zapisane.";
?>
Przechowuj pliki tylko zaszyfrowane – zasymuluj to za pomocą base64.
<?php
$nazwa = 'tajne.txt';
$tresc = file_get_contents($nazwa);
$zaszyfrowane = base64_encode($tresc);
file_put_contents('tajne.b64', $zaszyfrowane);
echo "Plik zaszyfrowany.";
?>
Dodaj własny system logowania błędów i wyświetl ostatnie 3 wpisy.
<?php
$error = "Błąd logowania: " . date("H:i:s");
file_put_contents("bledy.log", $error . "\n", FILE_APPEND);
$linie = file("bledy.log");
$ostatnie = array_slice($linie, -3);
foreach ($ostatnie as $linia) {
echo "<p>$linia</p>";
}
?>
Dodaj prostą kontrolę dostępu do systemu za pomocą sesji.
<?php
session_start();
$haslo = "DeltaX";
if ($_POST['haslo'] === $haslo) {
$_SESSION['dostep'] = true;
echo "Dostęp przyznany.";
} else {
echo "Błąd autoryzacji.";
}
?>
Stwórz funkcję w PHP, która rozpozna typ danych i zareaguje inaczej.
<?php
function rozpoznaj($dane) {
if (is_numeric($dane)) return "To liczba.";
if (is_array($dane)) return "To tablica.";
if (is_string($dane)) return "To tekst.";
return "Nieznany typ danych.";
}
echo rozpoznaj("hello");
?>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
$login = $_POST['login'];
$haslo = $_POST['haslo'];
$stmt = $pdo->prepare("SELECT * FROM users WHERE login = ?");
$stmt->execute([$login]);
$user = $stmt->fetch();
if ($user && $user['haslo'] == $haslo) {
echo "✔️ Zalogowano";
} else {
echo "❌ Błąd logowania";
}
?>
<form action="login.php" method="post">
<input type="text" name="login" placeholder="Login">
<input type="password" name="haslo" placeholder="Hasło">
<button type="submit">Zaloguj</button>
</form>
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
login VARCHAR(50),
haslo VARCHAR(255)
);
<?php
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
$stmt = $pdo->prepare("INSERT INTO dane (imie, email) VALUES (?, ?)");
$stmt->execute([$_POST['imie'], $_POST['email']]);
echo "📥 Dane zapisane!";
?>
<form action="zapisz.php" method="post">
<input name="imie" placeholder="Imię">
<input name="email" placeholder="Email">
<button>Zapisz</button>
</form>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
$login = $_POST['login'];
$haslo = password_hash($_POST['haslo'], PASSWORD_DEFAULT);
$stmt = $pdo->prepare("INSERT INTO users (login, haslo) VALUES (?, ?)");
$stmt->execute([$login, $haslo]);
echo "✅ Użytkownik zarejestrowany.";
?>
<form onsubmit="return sprawdz()">
<input type="text" id="email" placeholder="Email">
<button type="submit">Wyślij</button>
</form>
<script>
function sprawdz() {
const email = document.getElementById("email").value;
if (!email.includes('@')) {
alert("⚠️ Niepoprawny email");
return false;
}
return true;
}
</script>
// HTML: <button onclick="zmienStatus(5)">Zmień</button>
<script>
function zmienStatus(id) {
fetch('zmien_status.php?id=' + id)
.then(r => r.text())
.then(d => alert(d));
}
</script>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
$id = $_GET['id'];
$pdo->query("UPDATE zamowienia SET status = 'zrealizowane' WHERE id = $id");
echo "✔️ Status zmieniony";
?>
CREATE VIEW produkty_z_dostawa AS
SELECT p.nazwa, d.cena
FROM produkty p
JOIN dostawa d ON p.id = d.produkt_id;
<button onclick="toggleDark()">🌗 Tryb</button>
<script>
function toggleDark() {
document.body.classList.toggle("dark");
}
</script>
<style>
.dark {
background: #000;
color: #0f0;
}
</style>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
$stmt = $pdo->prepare("INSERT INTO kontakty (imie, wiadomosc) VALUES (?, ?)");
$stmt->execute([$_POST['imie'], $_POST['wiadomosc']]);
echo "📥 Zapisano!";
?>
<table id="dane">
<thead><tr><th onclick="sortuj()">Nazwa</th></tr></thead>
<tbody><tr><td>Zebra</td></tr><tr><td>Alpha</td></tr></tbody>
</table>
<script>
function sortuj() {
const rows = [...document.querySelectorAll('#dane tbody tr')];
rows.sort((a,b) => a.innerText.localeCompare(b.innerText));
document.querySelector('#dane tbody').innerHTML = "";
rows.forEach(r => document.querySelector('#dane tbody').appendChild(r));
}
</script>
// chat_zapisz.php
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
$stmt = $pdo->prepare("INSERT INTO chat (nick, wiadomosc) VALUES (?, ?)");
$stmt->execute([$_POST['nick'], $_POST['wiadomosc']]);
// chat_pokaz.php
foreach ($pdo->query("SELECT * FROM chat ORDER BY id DESC LIMIT 10") as $row) {
echo "<p><b>{$row['nick']}:</b> {$row['wiadomosc']}</p>";
}
<select onchange="filtruj(this.value)">
<option value="wszystkie">Wszystkie</option>
<option value="elektronika">Elektronika</option>
</select>
<div id="lista"></div>
<script>
function filtruj(kategoria) {
fetch('filtruj_kat.php?k=' + kategoria)
.then(r => r.text())
.then(d => document.getElementById('lista').innerHTML = d);
}
</script>
<?php
$kat = $_GET['k'];
$q = $kat === 'wszystkie' ? "SELECT * FROM produkty" : "SELECT * FROM produkty WHERE kategoria = ?";
$stmt = $pdo->prepare($q);
$stmt->execute($kat === 'wszystkie' ? [] : [$kat]);
foreach ($stmt as $row) echo "<p>{$row['nazwa']}</p>";
?>
<?php
session_start();
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
$stmt = $pdo->prepare("SELECT * FROM users WHERE login = ?");
$stmt->execute([$_POST['login']]);
$user = $stmt->fetch();
if ($user && password_verify($_POST['haslo'], $user['haslo'])) {
$_SESSION['user'] = $user['login'];
header('Location: panel.php');
} else {
echo "❌ Logowanie nieudane";
}
?>
<form method="get">
<input type="text" name="szukaj" placeholder="Wpisz nazwę">
<button>Szukaj</button>
</form>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
$filtr = $_GET['szukaj'] ?? '';
$stmt = $pdo->prepare("SELECT * FROM produkty WHERE nazwa LIKE ?");
$stmt->execute(['%' . $filtr . '%']);
foreach ($stmt as $row) {
echo "<div>{$row['nazwa']}</div>";
}
?>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
$liczba = $pdo->query("SELECT COUNT(*) FROM users")->fetchColumn();
echo "👥 Liczba użytkowników: $liczba";
?>
<?php
session_start();
if (!isset($_SESSION['user'])) {
$_SESSION['user'] = 'admin';
}
echo "Aktualny użytkownik: " . $_SESSION['user'];
?>
<form>
<select>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
foreach ($pdo->query("SELECT id, nazwa FROM produkty") as $row) {
echo "<option value='{$row['id']}'>{$row['nazwa']}</option>";
}
?>
</select>
</form>
<canvas id="myChart" width="400" height="200"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
fetch('dane.php')
.then(r => r.json())
.then(data => {
new Chart(document.getElementById("myChart"), {
type: 'bar',
data: {
labels: data.labels,
datasets: [{
label: 'Produkty',
data: data.wartosci,
backgroundColor: '#0f0'
}]
}
});
});
</script>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=baza", "root", "");
$labels = [];
$wartosci = [];
foreach ($pdo->query("SELECT nazwa, ilosc FROM produkty") as $row) {
$labels[] = $row['nazwa'];
$wartosci[] = $row['ilosc'];
}
echo json_encode(['labels' => $labels, 'wartosci' => $wartosci]);
?>