Dodanie ekranu logowania, do zrobienia połączyć to z poprzednim projektem z lekcji 2
This commit is contained in:
1 parent
83672909f4
commit
c198d9d70a
12 files changed
+351
No files matched your search
@@ -10,6 +10,9 @@
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
th {
|
th {
|
||||||
border-right: 1px solid black;
|
border-right: 1px solid black;
|
||||||
border-bottom: 1px solid black;
|
border-bottom: 1px solid black;
|
||||||
|
|||||||
@@ -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.';
|
||||||
|
}
|
||||||
@@ -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>
|
||||||
@@ -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>
|
||||||
@@ -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>
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
session_destroy();
|
||||||
|
header("Location: ./");
|
||||||
|
exit();
|
||||||
|
?>
|
||||||
@@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -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"
|
||||||
|
```
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if(!isset($_SESSION['logged'])) {
|
||||||
|
header("Location: sesja_on.php");
|
||||||
|
}
|
||||||
|
|
||||||
|
print_r($_SESSION);
|
||||||
|
echo "its alright";
|
||||||
|
?>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
session_destroy();
|
||||||
|
?>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
$_SESSION['logged'] = true;
|
||||||
|
?>
|
||||||
Reference in new issue
Block a user