# Kurs WWW. Lista nr 7
###### tags: `www20` `pwit`
:::info
grupa PWit, wtorki 12-14
:::
## Deklaracje
:::info
Studenci wypełniają poniższą tabelkę przed rozpoczęciem zajęć.
:::
Gotowość rozwiązania zadania należy wyrazić poprzez postawienie X w odpowiedniej kolumnie!
Można również wyrazić chęć prezentacji któregoś zadeklarowanych zadań za pomocą znaku ==X== (X na żółtym tle).
| | 6.8 | 6.10 | 7.1 | 7.2 | 7.3 | 7.4 | 7.5 | 7.6 | 7.7 | 7.8 |
|--------------------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- |
| Kacper Bajkiewicz | | | X | X | X | X | X | | X | |
| Jakub Bok | | | x | x | | x | x | | x | |
| Kamila Brzozowska | | | x | x | x | | | | | |
| Monika Jędrzejkowska | | | | | | | | | | |
| Karol Kęciński | | | X | X | | X | X | | X | |
| Szymon Kiczak | | | | | | | | | | |
| Szymon Kosakowski | | | | X | | | X | X | | |
| Denys Lukeniuk | | | ==x== | ==x== | ==x== | x | ==x== | ==x== | | |
| Piotr Mańkowski | | | | | | | | | | |
| Mateusz Materek | | | X | ==X== | X | | X | | X | |
| Sonia Pawluk | | | | | | | | | | |
| Patryk Pęczak | | | | | | | | | | |
| Bartosz Polaszek | | | X | X | | | | X | | |
| Marcin Rogala | | | x | x | | | x | x | x | |
| Aleksander Szymański | | | X | X | | X | X | ==X== | | |
| Jakub Świgło | | | X | X | | | X | | | |
| Nikola Wrona | | | X | X | X | X | X | | X | |
Karol Kęciński - lista 5 zad 1, 2
----------------------------------------------------------------------------------------------------------------------
## Zadanie 6.8
:::danger
Autor:
:::
## Zadanie 6.10
:::danger
Autor:
:::
## Zadanie 7.1
:::danger
Autor: Denys Lukeniuk
:::
[link](https://github.com/FelixKeetch/Studies/blob/master/KursWWW/Lista7/zad7-1-2.php)
Z https://www.php.net/manual/en/function.phpinfo.php :
Wyświetla dużą ilość informacji o aktualnym stanie PHP. Obejmuje to informacje o opcjach kompilacji i rozszerzeniach PHP, wersji PHP, informacjach o serwerze i środowisku (jeśli jest skompilowane jako moduł), środowisku PHP, informacji o wersji systemu operacyjnego, ścieżkach, wartościach głównych i lokalnych opcji konfiguracyjnych, nagłówkach HTTP i Licencji PHP.
Ponieważ każdy system jest konfigurowany inaczej, phpinfo () jest powszechnie używana do sprawdzania ustawień konfiguracji i dostępnych predefiniowanych zmiennych w danym systemie.
phpinfo () jest również cennym narzędziem do debugowania, ponieważ zawiera wszystkie dane EGPCS (środowiska, GET, POST, Cookie, Server).
Zawiera również wszystkie wartości z $_SERVER.
Pojedyncze wartości otrzymamy przy pomocy
```
echo $_SERVER['NAZWA'];
```
```
//Zwroci nazwę skryptu
echo $_SERVER['PHP_SELF'];
```
```
//Zwroci czas wysłania requestu w ms od 1-1-1970
echo $_SERVER['REQUEST_TIME'];
```
```
//Zwróci zawartość HOST header
echo $_SERVER['HTTP_HOST'];
```
```
// Zwróci zawartość User-Agent
echo $_SERVER['HTTP_USER_AGENT'];
```
```
//Zwróci imię hosta, z którego użytkownik przegląda stronę
echo $_SERVER['REMOTE_HOST'];
```
## Zadanie 7.2
:::danger
Autor: Mateusz Materek
:::
## Zadanie 7.3
:::danger
Autor: Kamila Brzozowska
:::
## Zadanie 7.4
:::danger
Autor: Jakub Bok
:::
## Zadanie 7.5
:::danger
Autor: Jakub Świgło
:::
## Zadanie 7.6
:::danger
Autor: Aleksander Szymański
:::
Raport: Aleksander Szymański
```
<?php
setcookie("sernik", "z czekoladą",time() + 30, "/");
//setcookie("sernik", "lk", "/foo/" );
session_start();
if (isset($_SESSION['page_count'])) {
$_SESSION['page_count'] += 1;
} else {
$_SESSION['page_count'] = 1;
}
echo 'You are visitor number ' . $_SESSION['page_count'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ciasteczka</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
td,
th,
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10pt;
}
</style>
</head>
<body>
<h3>Wartość ciastka</h3>
Ciasteczko: <?php echo $_COOKIE["sernik"]; ?>
<br>
<?php print_r($_COOKIE); ?>
</body>
</html>
```
1) Upewnij się, że ciastko zostało utworzone.
Z pierwszą wizytą na stronie, ciastko zostanie dopiero utworzone, a na stronie będzie ostrzeżenie, ponieważ ```<?php echo $_COOKIE["sernik"]; ?>``` w tablicy cookie nie ma jeszcze zmiennej sernik. Z drugą wizytą pokaże nam się napis "Ciasteczko: z czekoladą", gdyż takie ciastko tworzymy w pierwszej linii.
2) Sprawdzić jak ustawienie parametru ```path``` wpływa na tworzenie ciastka.
- ```"/"``` - jeżeli tak ustawimy parametr ```path```, to dane ciastko będzie dostępne w każdym podfolderze domeny
- ```"/foo/"``` - jeżeli tak ustawimy parametr ```path```, to dane ciastko będzie dostępne tylko w folderze ```foo/``` oraz folderach podrzędnych do rego folderu.
3) Ciastka sesyjne a permanentne.
- sesyjne - są przechowywane na urządzeniu użytkownika, aż do wylogowania ze strony, lub wyłączenia przeglądarki. Tworzy się je po prostu nie podając parametru ```expire``` (w powyższym kodzie, tak jak w drugiej linii - nie podaliśmy ```time() + liczba```), bądź podając go równemu 0.
- permanentne - sa przechowywane przez określony czas, określony parametrem ```expire```. W podanym przykładzie używamy ```time() + 30```, co oznacza, że ciastko wygaśnie 30 sekund po odwiedzeniu strony.
## Zadanie 7.7
:::danger
Autor: Marcin Rogala
:::
- session_name() - nadaje sesji i ciasteczku sesyjnemu nazwę
- session_start() - startuje sesje i zapisuje ciasteczko
- session_regenerate_id() - nadaje sesji nowe id. Pozwala zapobiegać session fixation.
Kopiując ciasteczko sesyjne do innej przeglądarki sprawdzamy, że id sesji jest zależne od wartości ciasteczka.
Kod z zadania: https://pastebin.com/FDNDdP0p
## Zadanie 7.8
:::danger
Autor:
:::