Projektowanie Aplikacji Internetowych

Содержание

Слайд 2

PHP, cz. 2

PHP, cz. 2

Слайд 3

Połączenie z bazą danych MySQL/MariaDB

Połączenie z bazą danych MySQL/MariaDB

Слайд 4

MySQLi Object-Oriented
MySQL Procedural
PDO - PHP Data Objects

Połączenie z bazą

MySQLi Object-Oriented MySQL Procedural PDO - PHP Data Objects Połączenie z bazą danych MySQL/MariaDB
danych MySQL/MariaDB

Слайд 5

MySQLi Object-Oriented

MySQLi Object-Oriented connect_error) { die("Błąd połączenia: " . $link->connect_error); } echo "Połączenie
$username, $password); if ($link->connect_error) {     die("Błąd połączenia: " . $link->connect_error); } echo "Połączenie powiodło się!";
$link->close(); ?>

Połączenie z bazą danych MySQL/MariaDB

Слайд 6

MySQL Procedural

MySQL Procedural mysqli_close($link); ?> Połączenie z bazą danych MySQL/MariaDB
$username, $password); if (!$link) {     die("Błąd połączenia: " . mysqli_connect_error()); } echo "Połączenie powiodło się!";
mysqli_close($link); ?>

Połączenie z bazą danych MySQL/MariaDB

Слайд 7

PDO - PHP Data Objects

$servername = "adres_IP"; $username = "login_do_bazy_danych"; $password = "hasło";
try

PDO - PHP Data Objects $servername = "adres_IP"; $username = "login_do_bazy_danych"; $password
{
$link = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
echo "Połączenie powiodło się!";
}
catch(PDOException $e)
{
echo "Błąd połączenia: " . $e->getMessage();
}
$link = null;
?>

http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO

Połączenie z bazą danych MySQL/MariaDB

Слайд 8

Wybrane funkcje dla MySQLi

$link = mysqli_connect("localhost", "login", "hasło", "baza_danych"); if (!$link) {     die("Błąd połączenia:

Wybrane funkcje dla MySQLi $link = mysqli_connect("localhost", "login", "hasło", "baza_danych"); if (!$link)
" . mysqli_connect_error()); } echo "Połączenie powiodło się!";
mysqli_close($link);

mysqli_connect()

Слайд 9

Wybrane funkcje dla MySQLi

mysqli_close($link);
$q=mysqli_query($link, "select * from tester");
while ($tabl = mysqli_fetch_array($q)){
echo $tabl['ID'];
}

mysqli_close()

Wybrane funkcje dla MySQLi mysqli_close($link); $q=mysqli_query($link, "select * from tester"); while ($tabl

Слайд 10

Wybrane funkcje dla MySQLi

echo mysqli_affected_rows($link);
echo "
";
mysqli_query($link,"select * from tester;");
echo mysqli_affected_rows($link);
echo "
";
mysqli_query($link,"insert into

Wybrane funkcje dla MySQLi echo mysqli_affected_rows($link); echo " "; mysqli_query($link,"select * from
tester values (null, 'abc');");
echo mysqli_affected_rows($link);
echo "
";
mysqli_query($link,"insert into bledna_nazwa (null, 'abc');");
echo mysqli_affected_rows($link);
echo "
";

mysqli_affected_rows()

Слайд 11

Wybrane funkcje dla MySQLi

mysqli_autocommit($link,FALSE);
mysqli_query($link,"delete from tester;");
//mysqli_commit($link);
//mysqli_query($link,"rollback;");
//mysqli_rollback($link);

mysqli_autocommit()

Wybrane funkcje dla MySQLi mysqli_autocommit($link,FALSE); mysqli_query($link,"delete from tester;"); //mysqli_commit($link); //mysqli_query($link,"rollback;"); //mysqli_rollback($link); mysqli_autocommit()

Слайд 12

Wybrane funkcje dla MySQLi

mysqli_autocommit($link,FALSE);
mysqli_query($link,"delete from tester;");
mysqli_commit($link); //mysqli_query($link,"commit;");

mysqli_commit()

Wybrane funkcje dla MySQLi mysqli_autocommit($link,FALSE); mysqli_query($link,"delete from tester;"); mysqli_commit($link); //mysqli_query($link,"commit;"); mysqli_commit()

Слайд 13

Wybrane funkcje dla MySQLi

$link=mysqli_connect("localhost", "aniewiarowski1", "haslo", "aniewiarowski_baza");
if (! $link) {
echo "Błąd połączenia:

Wybrane funkcje dla MySQLi $link=mysqli_connect("localhost", "aniewiarowski1", "haslo", "aniewiarowski_baza"); if (! $link) {
" . mysqli_connect_errno() . ", " . mysqli_connect_error();
}

mysqli_connect_errno()
mysqli_connect_error()

Слайд 14

Wybrane funkcje dla MySQLi

$q=mysqli_query($link,"insert into tester values (123,456,789)");
if (! $q) {
echo mysqli_error($link)

Wybrane funkcje dla MySQLi $q=mysqli_query($link,"insert into tester values (123,456,789)"); if (! $q)
. ", " . mysqli_errno($link);
}
echo "
";
if (! mysqli_query($link,"select * from testerrrr")) {
echo mysqli_error($link) . ", " . mysqli_errno($link);
}

mysqli_error()
mysqli_errno()

Слайд 15

Wybrane funkcje dla MySQLi


$q=mysqli_query($link,"select * from uzytkownicy;");
while ($tabl = mysqli_fetch_array ($q))

Wybrane funkcje dla MySQLi $q=mysqli_query($link,"select * from uzytkownicy;"); while ($tabl = mysqli_fetch_array
{
echo "{$tabl['login']} {$tabl['imie']} {$tabl['nazwisko']} {$tabl['haslo']} \n";
}
?>

mysqli_fetch_array()

mysql> desc uzytkownicy;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| ID_u | int(11) | NO | PRI | NULL | auto_increment |
| login | varchar(20) | YES | | NULL | |
| haslo | varchar(32) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+

Слайд 16

Wybrane funkcje dla MySQLi


$q=mysqli_query($link,"select * from uzytkownicy;");
while ($tabl = mysqli_fetch_array ($q))

Wybrane funkcje dla MySQLi $q=mysqli_query($link,"select * from uzytkownicy;"); while ($tabl = mysqli_fetch_array
{
echo "{$tabl['0']} {$tabl['1']} {$tabl[2]} {$tabl[3]} \n";
}
?>

mysqli_fetch_array()

Слайд 17

Wybrane funkcje dla MySQLi


$q=mysqli_query($link,"select * from uzytkownicy;");
while ($tabl = mysqli_fetch_assoc ($q))

Wybrane funkcje dla MySQLi $q=mysqli_query($link,"select * from uzytkownicy;"); while ($tabl = mysqli_fetch_assoc
{
echo "{$tabl['login']} {$tabl['haslo']} {$tabl[0]} \n";
}
?>

mysqli_fetch_assoc()

Слайд 18

Wybrane funkcje dla MySQLi


$q=mysqli_query($link,"select * from uzytkownicy;");
while ($tabl = mysqli_fetch_row ($q))

Wybrane funkcje dla MySQLi $q=mysqli_query($link,"select * from uzytkownicy;"); while ($tabl = mysqli_fetch_row
{
echo "{$tabl['login']} {$tabl['0']} {$tabl[1]} \n";
}
?>

mysqli_fetch_row()

Слайд 19

Wybrane funkcje dla MySQLi


$q=mysqli_query($link,"select * from uzytkownicy;");
while ($tabl = mysqli_fetch_row ($q))

Wybrane funkcje dla MySQLi $q=mysqli_query($link,"select * from uzytkownicy;"); while ($tabl = mysqli_fetch_row
{
foreach ($tabl as $r=>$k)
echo "$r:$k | ";
echo "\n";
}
?>

mysqli_fetch_row()

Слайд 20

Wybrane funkcje dla MySQLi


$q=mysqli_query($link,"select * from uzytkownicy;");
foreach (mysqli_fetch_row ($q) as $t

Wybrane funkcje dla MySQLi $q=mysqli_query($link,"select * from uzytkownicy;"); foreach (mysqli_fetch_row ($q) as
=> $k) {
echo "$t: $k \n";
}
?>

mysqli_fetch_row()

Слайд 21

Wybrane funkcje dla MySQLi


$q=mysqli_query($link,"select * from uzytkownicy;");
$row = mysqli_fetch_row($q);
foreach (mysqli_fetch_lengths($q) as

Wybrane funkcje dla MySQLi $q=mysqli_query($link,"select * from uzytkownicy;"); $row = mysqli_fetch_row($q); foreach
$t => $k) {
echo "$t: $k \n";
}
?>

mysqli_fetch_lengths()

Слайд 22

Wybrane funkcje dla MySQLi


$q=mysqli_query($link,"select * from uzytkownicy;");
while ($obj = mysqli_fetch_object($q)){
echo $obj->login

Wybrane funkcje dla MySQLi $q=mysqli_query($link,"select * from uzytkownicy;"); while ($obj = mysqli_fetch_object($q)){
. "\n";
}
?>

mysqli_fetch_object()

Слайд 23

Wybrane funkcje dla MySQLi


class user {
public static function pobierz_uzytkownika($id) {
$link =

Wybrane funkcje dla MySQLi class user { public static function pobierz_uzytkownika($id) {
new mysqli("localhost", "aniewiarowski", "xxxxx", "aniewiarowski_baza");
if ($wynik = $link->query("select * from uzytkownicy where ID_u = $id ;")) {
return $wynik->fetch_object('user');
}
}
}
$u = user::pobierz_uzytkownika('6');
echo $u->login;
?>

mysqli_fetch_object()

Слайд 24

Wybrane funkcje dla MySQLi


class user {
public static function pobierz_uzytkownika($id) {
$link =

Wybrane funkcje dla MySQLi class user { public static function pobierz_uzytkownika($id) {
mysqli_connect("localhost", "aniewiarowski", "xxxxxx", "aniewiarowski_baza");
if ($wynik = mysqli_query($link,"select * from uzytkownicy where ID_u = $id ;")) {
return mysqli_fetch_object($wynik,'user');
}
}
}
echo user::pobierz_uzytkownika('6')->login;
?>

mysqli_fetch_object()

Слайд 25

Wybrane funkcje dla MySQLi


mysqli_query($link, "select ID_u from uzytkownicy;");
echo mysqli_field_count($link);
?>

mysqli_field_count()

Wybrane funkcje dla MySQLi mysqli_query($link, "select ID_u from uzytkownicy;"); echo mysqli_field_count($link); ?> mysqli_field_count()

Слайд 26

Wybrane funkcje dla MySQLi


$q=mysqli_query($link, "select ID_u from uzytkownicy;");
echo mysqli_num_fields($q);
?>

mysqli_num_fields()

Wybrane funkcje dla MySQLi $q=mysqli_query($link, "select ID_u from uzytkownicy;"); echo mysqli_num_fields($q); ?> mysqli_num_fields()

Слайд 27

Wybrane funkcje dla MySQLi

$q=mysqli_query($link, "select * from uzytkownicy;");
mysqli_free_result($q);
while ($tabl = mysqli_fetch_array($q)){
echo

Wybrane funkcje dla MySQLi $q=mysqli_query($link, "select * from uzytkownicy;"); mysqli_free_result($q); while ($tabl
$tabl['login'] . "\n";
}
?>

mysqli_free_result()

Слайд 28

Wybrane funkcje dla MySQLi

echo mysqli_get_server_info($link);
?>

mysqli_get_server_info()

Wybrane funkcje dla MySQLi echo mysqli_get_server_info($link); ?> mysqli_get_server_info()

Слайд 29

Wybrane funkcje dla MySQLi


mysqli_query($link, "insert into uzytkownicy (ID_u, login, haslo)
values

Wybrane funkcje dla MySQLi mysqli_query($link, "insert into uzytkownicy (ID_u, login, haslo) values
(null, 'jola', md5('123'))");
echo mysqli_insert_id($link)."\n";
mysqli_query($link, "insert into uzytkownicy (login, haslo)
values ('joanna', md5('123'))");
echo mysqli_insert_id($link)."\n";
mysqli_query($link, "insert into uzytkownicy (ID_u, login, haslo)
values (123,'wladyslaw', md5('123'))");
echo mysqli_insert_id($link)."\n";
mysqli_query($link, "insert into uzytkownicy (ID_u, login, haslo)
values (123,'wladyslaw', md5('123'))");
echo mysqli_insert_id($link)."\n";
?>

mysqli_insert_id()

Слайд 30

Wybrane funkcje dla MySQLi


$q=mysqli_query($link, "select * from uzytkownicy;");
echo mysqli_num_rows($q). "\n";
while ($tabl=mysqli_fetch_array($q)){
echo

Wybrane funkcje dla MySQLi $q=mysqli_query($link, "select * from uzytkownicy;"); echo mysqli_num_rows($q). "\n";
$tabl['login'] . "\n";
}
?>

mysqli_num_rows()

Слайд 31

Wybrane funkcje dla MySQLi


if (mysqli_ping($link))
{
echo "Połączenie jest ok! "

Wybrane funkcje dla MySQLi if (mysqli_ping($link)) { echo "Połączenie jest ok! "
. mysqli_ping($link);
}
else
{
echo "Błąd!!! ". mysqli_error($link);
}
mysqli_close($link);
?>

mysqli_ping()

Слайд 32

Wybrane funkcje dla MySQLi

$_POST['login']="andrzej'";
$_POST['haslo']="123";
?>


$_POST['login'] = mysqli_real_escape_string($link, $_POST['login']);
$_POST['haslo'] = mysqli_real_escape_string($link, $_POST['haslo']);
mysqli_query($link, "insert

Wybrane funkcje dla MySQLi $_POST['login']="andrzej'"; $_POST['haslo']="123"; ?> $_POST['login'] = mysqli_real_escape_string($link, $_POST['login']); $_POST['haslo']
into uzytkownicy (login, haslo)
values ('{$_POST['login']}', md5('{$_POST['haslo']}'))");
?>

mysqli_real_escape_string()

Слайд 33

Wybrane funkcje dla MySQLi

$_POST['login']="tomasz'";
$_POST['haslo']="123";
?>


//$_POST['login'] = mysqli_real_escape_string($link, $_POST['login']);
//$_POST['haslo'] = mysqli_real_escape_string($link, $_POST['haslo']);
mysqli_query($link, "insert

Wybrane funkcje dla MySQLi $_POST['login']="tomasz'"; $_POST['haslo']="123"; ?> //$_POST['login'] = mysqli_real_escape_string($link, $_POST['login']); //$_POST['haslo']
into uzytkownicy (login, haslo)
values ('{$_POST['login']}', md5('{$_POST['haslo']}'))");
echo mysqli_error($link);
?>

mysqli_real_escape_string()

Слайд 34

Wybrane funkcje dla MySQLi

$_POST['login']="tosia'";
$_POST['haslo']="123";
?>


foreach ($_POST as $k=>$r) {$_POST[$k] = mysqli_real_escape_string($link, $r);}
foreach

Wybrane funkcje dla MySQLi $_POST['login']="tosia'"; $_POST['haslo']="123"; ?> foreach ($_POST as $k=>$r) {$_POST[$k]
($_GET as $k=>$r) {$_GET[$k] = mysqli_real_escape_string($link, $r);}
mysqli_query($link, "insert into uzytkownicy (login, haslo)
values ('{$_POST['login']}', md5('{$_POST['haslo']}'))");
echo mysqli_error($link);
?>

mysqli_real_escape_string()

Слайд 35

Wybrane funkcje dla MySQLi


mysqli_select_db($link, "abc_baza");
?>

mysqli_select_db()

Wybrane funkcje dla MySQLi mysqli_select_db($link, "abc_baza"); ?> mysqli_select_db()

Слайд 36

Wybrane funkcje dla MySQLi




if (isset($_POST['sql'])) {
if (stripos($_POST['sql'],

Wybrane funkcje dla MySQLi if (isset($_POST['sql'])) { if (stripos($_POST['sql'], "drop ") >-1
"drop ") >-1 || stripos($_POST['sql'], "delete ") >-1) {die("nie mogę wykonać polecenia");}
$pyt = mysqli_query($link, $_POST['sql']);
echo "";
echo "";
while ($tabl = mysqli_fetch_assoc($pyt)) {
echo "";
foreach ($tabl as $kol => $val) {echo "";}
echo "";
}
echo "
{$val}
";
} //if
?>

mysqli_query()

Слайд 37

Kodowanie znaków strona WWW – baza danych


Kodowanie znaków strona WWW – baza danych class db { public $link="";
content="text/html; charset=utf-8" />
class db {
public $link="";
function __construct($db, $user, $pass) {
$this->link=mysqli_connect("localhost",$user, $pass, $db) or die ("Błąd połączenia z bazą danych.");
$this->query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
}
function query($q) {
return mysqli_query($this->link, $q);
}
} //class
?>

Слайд 38


login:
hasło:


$link= mysqli_connect("localhost", "XX",

login: hasło: $link= mysqli_connect("localhost", "XX", "Hasło", "XX_baza") or die ("błąd połączenia: "
"Hasło", "XX_baza") or die ("błąd połączenia: " . mysqli_connect_error ());
$pyt = mysqli_query($link, "select count(*) cnt from users where login='{$_POST['login']}' and pass='{$_POST['haslo']}'" );
if (! $pyt) {echo mysqli_error($link); exit;}
$tabl= mysqli_fetch_assoc($pyt);
if ( $tabl['cnt'] ) {echo "jesteś zalogowana(y)";} else {echo "błędny login lub hasło!";}
?>

Logowanie do systemu

Слайд 39


login:
hasło:


$link= mysqli_connect("localhost", "XX",

login: hasło: $link= mysqli_connect("localhost", "XX", "Hasło", "XX_baza") or die ("błąd połączenia: "
"Hasło", "XX_baza") or die ("błąd połączenia: " . mysqli_connect_error ());
$pyt = mysqli_query($link, "select count(*) cnt from users where login='{$_POST['login']}' and pass='{$_POST['haslo']}'" );
if (! $pyt) {echo mysqli_error($link); exit;}
$tabl= mysqli_fetch_assoc($pyt);
if ( $tabl['cnt'] ) {echo "jesteś zalogowana(y)";} else {echo "błędny login lub hasło!";}
?>

Logowanie do systemu – SQL injection

Слайд 40


login:
hasło:


$link= mysqli_connect("localhost", "XX",

login: hasło: $link= mysqli_connect("localhost", "XX", "Hasło", "XX_baza") or die ("błąd połączenia: "
"Hasło", "XX_baza") or die ("błąd połączenia: " . mysqli_connect_error ());
$_POST['login'] = mysqli_real_escape_string($link, $_POST['login']);
$_POST['haslo'] = mysqli_real_escape_string($link, $_POST['haslo']);
$pyt = mysqli_query($link, "select count(*) cnt from users where login='{$_POST['login']}' and pass='{$_POST['haslo']}'" );
if (! $pyt) {echo mysqli_error($link); exit;}
$tabl= mysqli_fetch_assoc($pyt);
if ( $tabl['cnt'] ) {echo "jesteś zalogowana(y)";} else {echo "błędny login lub hasło!";}
?>

Logowanie do systemu – SQL injection – zabezpieczenie logowania

Слайд 41

Funkcja md5 – JavaScript

Logowanie do systemu - zabezpieczenie logowania

https://web.mck.pk.edu.pl/~aniewiarowski/lab/PAI/md5.js

Funkcja md5 – JavaScript Logowanie do systemu - zabezpieczenie logowania https://web.mck.pk.edu.pl/~aniewiarowski/lab/PAI/md5.js

Слайд 42

Przykłady braku zabezpieczenia protokołem https

Logowanie do systemu - zabezpieczenie logowania

Przykłady braku zabezpieczenia protokołem https Logowanie do systemu - zabezpieczenie logowania

Слайд 43

Przykłady braku zabezpieczenia protokołem https

Logowanie do systemu - zabezpieczenie logowania

Przykłady braku zabezpieczenia protokołem https Logowanie do systemu - zabezpieczenie logowania

Слайд 44

Przykłady braku zabezpieczenia protokołem https

Logowanie do systemu - zabezpieczenie logowania

Przykłady braku zabezpieczenia protokołem https Logowanie do systemu - zabezpieczenie logowania

Слайд 45

Przykłady braku zabezpieczenia protokołem https

Logowanie do systemu - zabezpieczenie logowania

Przykłady braku zabezpieczenia protokołem https Logowanie do systemu - zabezpieczenie logowania

Слайд 46

Inne funkcje haszujące w JavaScript

https://code.google.com/p/crypto-js/

Inne funkcje haszujące w JavaScript https://code.google.com/p/crypto-js/

Слайд 47

Inne funkcje haszujące w JavaScript

https://code.google.com/p/crypto-js/

Inne funkcje haszujące w JavaScript https://code.google.com/p/crypto-js/

Слайд 48

Inne funkcje haszujące w JavaScript

https://code.google.com/p/crypto-js/

Inne funkcje haszujące w JavaScript https://code.google.com/p/crypto-js/

Слайд 49

md5 – zabezpieczenie logowania



login:
hasło:

md5 – zabezpieczenie logowania login: hasło: Logowanie do systemu
type=hidden name=haslo id=haslo_id>


Logowanie do systemu

Слайд 50

md5 – dodatkowy md5 – zabezpieczenie logowania



login:
hasło:

md5 – dodatkowy md5 – zabezpieczenie logowania login: hasło: "> Logowanie do systemu





Logowanie do systemu

Слайд 51

md5 – dodatkowy md5 – zabezpieczenie logowania

$pyt = mysqli_query($link, "select count(*) cnt

md5 – dodatkowy md5 – zabezpieczenie logowania $pyt = mysqli_query($link, "select count(*)
from users where login='{$_POST['login']}' and md5(concat( '{$_POST['los']}' , pass))='{$_POST['haslo']}'" );

Logowanie do systemu

Слайд 52

md5 – dodatkowy md5 + sesja – zabezpieczenie logowania

session_start();
?>


login:

md5 – dodatkowy md5 + sesja – zabezpieczenie logowania session_start(); ?> login:
type=text name=login>
hasło:




Logowanie do systemu

Слайд 53

md5 – dodatkowy md5 + sesja – zabezpieczenie logowania

if (isset($_POST['login'])) {
$link= mysqli_connect("localhost",

md5 – dodatkowy md5 + sesja – zabezpieczenie logowania if (isset($_POST['login'])) {
"XX", "Hasło", "XX_baza") or die ("błąd połączenia: " . mysqli_connect_error ());
$_POST['login'] = mysqli_real_escape_string($link, $_POST['login']);
$_POST['haslo'] = mysqli_real_escape_string($link, $_POST['haslo']);
$pyt = mysqli_query($link, "select count(*) cnt from users where login='{$_POST['login']}' and md5(concat( '{$_SESSION['los']}' , pass))='{$_POST['haslo']}'" );
if (! $pyt) {echo mysqli_error($link); exit;}
$tabl= mysqli_fetch_assoc($pyt);
if ( $tabl['cnt'] ) {echo "jesteś zalogowana(y)"; $_SESSION['los'] = md5(rand(-10000,10000));
} else {
echo "błędny login lub hasło!"; $_SESSION['los'] = $los; }
} else {
$_SESSION['los'] = $los;
}
?>

Logowanie do systemu

Слайд 54

md5 – dodatkowy md5 + sesja – zabezpieczenie logowania

Logowanie do systemu

md5 – dodatkowy md5 + sesja – zabezpieczenie logowania Logowanie do systemu

Слайд 55

Logi – błędy logowania użytkowników

if (isset($_POST['login'])) {
$link= mysqli_connect("localhost", "XX", "Hasło", "XX_baza") or

Logi – błędy logowania użytkowników if (isset($_POST['login'])) { $link= mysqli_connect("localhost", "XX", "Hasło",
die ("błąd połączenia: " . mysqli_connect_error ());
$_POST['login'] = mysqli_real_escape_string($link, $_POST['login']);
$_POST['haslo'] = mysqli_real_escape_string($link, $_POST['haslo']);
$pyt = mysqli_query($link, "select count(*) cnt from users where login='{$_POST['login']}' and md5(concat( '{$_SESSION['los']}' , pass))='{$_POST['haslo']}'" );
if (! $pyt) {echo mysqli_error($link); exit;}
$tabl= mysqli_fetch_assoc($pyt);
if ( $tabl['cnt'] ) {echo "jesteś zalogowana(y)";} else {echo "błędny login lub hasło!";
mysqli_query($link, "insert into logi (IPhost, login) values ('{$_SERVER['REMOTE_ADDR']} ({$_SERVER['REMOTE_HOST']})', '{$_POST['login']}')");
} //błędne hasło
} //post login
?>

Logowanie do systemu

Слайд 56

Zabezpieczenie przed cofnięciem się wstecz po wylogowaniu

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0,

Zabezpieczenie przed cofnięciem się wstecz po wylogowaniu header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control:
pre-check=0, max-age=0", false);
header("Pragma: no-cache");
?>

Слайд 57

Połączenie szyfrowane

https://wiki.centos.org/HowTos/Https

Połączenie szyfrowane https://wiki.centos.org/HowTos/Https

Слайд 58

Połączenie szyfrowane

Połączenie szyfrowane

Слайд 60

class Student
{
public $name;
public $surname;
public function setFullName($name, $surname)
{

class Student { public $name; public $surname; public function setFullName($name, $surname) {

$this->name = $name;
$this->surname = $surname;
}
public function getFullName()
{
return $this->name.' '.$this->surname;
}
} //class

Klasy – tworzenie klas

Имя файла: Projektowanie-Aplikacji-Internetowych.pptx
Количество просмотров: 26
Количество скачиваний: 0