Dodanie ekranu logowania, do zrobienia połączyć to z poprzednim projektem z lekcji 2

This commit is contained in:
Adam Łukasik committed 2026-10-05 12:41:37 +02:00
1 parent 83672909f4
commit c198d9d70a
12 files changed
+351

No files matched your search

+86
View File
@@ -0,0 +1,86 @@
-- sesja_on.php --
<pre>
<?php
/*
$arr = [
"klucz" => ["Francuz", "Wiolinowy"],
[1, "dsd"],
1.22
];
print_r($arr);
// $_POST['klucz']
echo $arr['klucz'][1];
*/
/*
$arr = array(
array(
"klucz" => "test"
),
12
);
print_r($arr);
*/
$imie = "Maciej";
/*
function test(int $a, $b = 12)
{
global $imie;
echo $a . " " . $b;
echo $imie;
$imie = "Szymek";
// return
}
test(10);
echo $imie;
*/
/*
function test2(string &$i) // wskaźnik
{
$i = "Fred";
}
test2($imie);
echo $imie;
*/
session_start();
echo session_id();
$_SESSION['logged'] = true;
$_SESSION['nick'] = "Scalak";
print_r($_SESSION);
var_dump($_SESSION);
-- sesja_chron.php --
<?php
session_start();
print_r($_SESSION);
if (!isset($_SESSION['logged']))
header("Location:sesja_on.php");
echo "OKI DOKI!!!";
-- sesja_off.php ---
<?php
session_start();
session_destroy();
/*
hasła
dupa - plain text!!!!!
md5/sha ("dupa" => f oisehf[08esyr9euc0qsrg])
sól salt
dukvhjn[oe8yw[586uwfj350[tfjfj]]]xxxpa
cikvhjn[oe8yw[586uwfj350[tfjfj]]]xxxpa
tablice tęczowe
*/
$hash = password_hash("rasmuslerdorf", PASSWORD_BCRYPT);
echo $hash;
// $2y$10$s1If37c5eLHgYS68wcXEteZxSdmf4ZB0knpdWQaDMedyTEYM7zpXi
if (password_verify('rasmuslerdorf', $hash)) {
echo 'Password is valid!';
} else {
echo 'Invalid password.';
}
+11
View File
@@ -0,0 +1,11 @@
<?php
$user = 'root';
$pass = 'ServBay.dev';
$host = 'localhost';
$dbnm = 'projekt_logowanie';
// $user = 'tester';
// $pass = 'tester';
// $host = 'db';
// $dbnm = 'tester';
?>
@@ -0,0 +1,3 @@
<pre><?php
echo password_hash($_GET['haslo'], PASSWORD_BCRYPT);
?></pre>
+58
View File
@@ -0,0 +1,58 @@
<?php
session_start();
if(!isset($_SESSION['logged'])) {
header("Location: login.php");
exit();
}
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Projekt</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: Arial;
}
body {
background-color: cornflowerblue;
}
.container {
border: 1px solid black;
box-shadow: 5px 5px 0px black;
background-color: beige;
width: fit-content;
margin: 1em auto;
padding: 1em;
}
</style>
</head>
<body>
<div class="container">
<h1>SIEMANDEROOO</h1>
<p>Jesteś zalogowany jako <span style="font-weight: bold;"><?= $_SESSION['username'] ?></span>.</p><br>
<?php
if($_SESSION['user_rights_level'] >= 1) {
echo '<a href="">Przeglądaj treści...</a>';
}
if($_SESSION['user_rights_level'] >= 2) {
echo '<br><a href="">Dodaj treści...</a>';
}
if($_SESSION['user_rights_level'] >= 3) {
echo '<br><a href="">Modyfikuj/usuń treści...</a>';
}
?>
<br><br><a href="logout.php">Wyloguj</a>
</div>
</body>
</html>
+98
View File
@@ -0,0 +1,98 @@
<?php
// admin hasło admin
// worker hasło worker
// user hasło user
session_start();
if(isset($_SESSION['logged'])) {
header("Location: ./");
exit();
}
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Projekt</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: Arial;
}
body {
background-color: cornflowerblue;
}
form {
border: 1px solid black;
margin: 1em auto;
width: fit-content;
padding: 1em;
background-color: beige;
box-shadow: 5px 5px 0px black;
}
h1 {
text-align: center;
margin-bottom: .25em;
}
h1 + p {
text-align: center;
margin-bottom: .25em;
}
.cred-container {
width: 100%;
clear: both;
}
.cred-container > label {
float: left;
margin: .5em 0;
}
.cred-container > input {
float: right;
margin: .5em 0;
}
input[type='text'] {
width: 50%;
}
input[type='password'] {
width: 50%;
}
input[type='submit'] {
clear: both;
width: 100%;
margin: .5em 0;
margin-bottom: 0;
padding: .5em;
}
hr {
margin-bottom: .25em;
}
</style>
</head>
<body>
<form action="validate.php" method="post">
<h1>SIEMANDEROOO</h1>
<p>No bo ogólnie to tu mamy takie tajne dane pliki <s>epsztajna</s><br>i fajnie by było jakbyś się zalogował żeby to zobaczyć...</p>
<hr>
<?php
if(isset($_GET['error'])) {
echo '<span style="font-style: oblique; color: red;">Nieprawidłowa nazwa użytkownika lub hasło!</span><br>';
}
?>
<div class='cred-container'>
<label>username:</label><input type="text" name="username" id="username">
</div>
<div class='cred-container'>
<label>hasło:</label><input type="password" name="password" id="password">
</div><br>
<input type="submit" value="Zaloguj">
</form>
</body>
</html>
+6
View File
@@ -0,0 +1,6 @@
<?php
session_start();
session_destroy();
header("Location: ./");
exit();
?>
+38
View File
@@ -0,0 +1,38 @@
<?php
if((!isset($_POST['username'])) || (!isset($_POST['password']))) {
header("Location: ./");
exit();
}
include('config.php');
$conn = mysqli_connect($host, $user, $pass, $dbnm);
session_start();
$stmt = $conn->prepare("SELECT * FROM uzytkownicy WHERE username = ?;");
$stmt->bind_param("s", $_POST["username"]);
$stmt->execute();
$result = $stmt->get_result();
if($result->num_rows < 1) {
header("Location: ./login.php?error=true");
exit();
}
$cred = $result->fetch_assoc();
if(password_verify($_POST['password'], $cred['password_hash'])) {
$_SESSION['username'] = $cred['username'];
$_SESSION['user_id'] = $cred['id'];
$_SESSION['user_rights_level'] = $cred['rights_level'];
$_SESSION['logged'] = true;
header("Location: ./");
exit();
} else {
header("Location: ./login.php?error=true");
exit();
}
?>
+29
View File
@@ -0,0 +1,29 @@
# Referencje
Domyślnym zachowaniem funkcji jest skopiowanie wartości argumentu do nowej zmiennej uzywanej w funkcji.
```php
$zmienna = "wartosc1";
function test($argument) { // argument przekazany funkcji
$argument = "wartosc2"; // zmieniamy wartość argumentu w funkcji
echo $argument; // wypisze się "wartosc2"
}
test($zmienna);
echo $zmienna; // ALE! Jako że zmieniliśmy argument w funkcji, mimo że pochodzi on od zmiennej $zmienna, oryginalna zmienna pozostaje taka sama. Wypisane zostanie "wartosc1"
```
Możemy jednak zamiast tego przekazać do funkcji jedynie WSKAZANIE, gdzie znajduje się oryginalna zmienna. Wtedy wartość nie jest kopiowana i pracujemy na oryginale.
```php
$zmienna = "wartosc1";
function test(&$argument) { // odniesienie do argumentu przekazane funkcji
$argument = "wartosc2"; // zmieniamy wartość argumentu, a co za tym idzie wartość oryginalnej zmiennej
echo $argument; // wypisze się "wartosc2"
}
test($zmienna);
echo $zmienna; // tutaj też "wartosc2"
```
+10
View File
@@ -0,0 +1,10 @@
<?php
session_start();
if(!isset($_SESSION['logged'])) {
header("Location: sesja_on.php");
}
print_r($_SESSION);
echo "its alright";
?>
+4
View File
@@ -0,0 +1,4 @@
<?php
session_start();
session_destroy();
?>
+5
View File
@@ -0,0 +1,5 @@
<?php
session_start();
$_SESSION['logged'] = true;
?>