Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- session_start(); //Inicjalizacja sesji
- if ($_SERVER['REQUEST_METHOD'] === 'POST') { //Obsługa formualrza
- if (isset($_POST['mark']) && $_POST['mark'] >= 1 && $_POST['mark'] <= 6) { //Sprawdzamy czy wysyłamy ocene i czy jej wartość jest od 1 do 6
- if (isset($_SESSION['avg'])) { //Sprawdzam czy w sesji istnieje tablica z ocenami poprzednimi
- $arr = unserialize($_SESSION['avg']); //Jeżelie istnieje - pobieram ją z sesji(w sesji jest tylko string który reprezentuje tablicę dla tego unserializa)
- } else {
- $arr = []; //Jeśli nie ma innych ocen tworzę pusta tablicę na oceny
- }
- $arr[] = trim($_POST['mark']); //Dodaje do tablicy ocen nową ocenę
- $_SESSION['avg'] = serialize($arr); //Zapisuję tablicę z ocenami do sesji(zapisuje string który reprezentuję tablicę)
- echo 'Ocena dodana<br>';
- } else {
- echo 'Złe dane<br>'; //Gdy ocena przesyłana jest nie poprawna
- }
- }
- if (isset($_SESSION['avg'])) {//Sprawadzm czy są dane w sesji
- $markArr = unserialize($_SESSION['avg']);//Odserializowujemy tablicę
- $avg = array_sum($markArr) / count($markArr); //Liczymy średnią z ocen (suma na ilość)
- echo 'Średnia to:' . $avg . '<br>'; //Pokauzjemy srednia
- for ($i = 0; $i < count($markArr); $i++) { //Pokazujemy poszczególne oceny
- echo "Ocena: $i: " . $markArr[$i] . '<br>';
- }
- } else {
- echo 'Brak danych w sesji - dodaj ocene <br>';//Komunikat gdy nie ma jeszcze zadnych ocen
- }
- ?>
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport"
- content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>Zadanie 2</title>
- </head>
- <body>
- <?php
- // tutaj umieść kod wyświetlający tablicę z ocenami i średną z nich
- ?>
- <form action="index.php" method="post">
- <label>
- ocena: <input name="mark" type="number">
- </label>
- <input type="submit">
- </form>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement