---
# System prepended metadata

title: Kurs WWW. Lista nr 7
tags: [pwit, www20]

---

# 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: 	
:::

