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
@@ -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