Advertisement
sanjiisan

Untitled

Apr 6th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. <?php
  2.  
  3. session_start(); //Inicjalizacja sesji
  4.  
  5. if ($_SERVER['REQUEST_METHOD'] === 'POST') { //Obsługa formualrza
  6. if (isset($_POST['mark']) && $_POST['mark'] >= 1 && $_POST['mark'] <= 6) { //Sprawdzamy czy wysyłamy ocene i czy jej wartość jest od 1 do 6
  7.  
  8. if (isset($_SESSION['avg'])) { //Sprawdzam czy w sesji istnieje tablica z ocenami poprzednimi
  9. $arr = unserialize($_SESSION['avg']); //Jeżelie istnieje - pobieram ją z sesji(w sesji jest tylko string który reprezentuje tablicę dla tego unserializa)
  10. } else {
  11. $arr = []; //Jeśli nie ma innych ocen tworzę pusta tablicę na oceny
  12. }
  13.  
  14. $arr[] = trim($_POST['mark']); //Dodaje do tablicy ocen nową ocenę
  15.  
  16. $_SESSION['avg'] = serialize($arr); //Zapisuję tablicę z ocenami do sesji(zapisuje string który reprezentuję tablicę)
  17. echo 'Ocena dodana<br>';
  18. } else {
  19. echo 'Złe dane<br>'; //Gdy ocena przesyłana jest nie poprawna
  20. }
  21. }
  22.  
  23.  
  24. if (isset($_SESSION['avg'])) {//Sprawadzm czy są dane w sesji
  25. $markArr = unserialize($_SESSION['avg']);//Odserializowujemy tablicę
  26. $avg = array_sum($markArr) / count($markArr); //Liczymy średnią z ocen (suma na ilość)
  27.  
  28. echo 'Średnia to:' . $avg . '<br>'; //Pokauzjemy srednia
  29. for ($i = 0; $i < count($markArr); $i++) { //Pokazujemy poszczególne oceny
  30. echo "Ocena: $i: " . $markArr[$i] . '<br>';
  31. }
  32. } else {
  33. echo 'Brak danych w sesji - dodaj ocene <br>';//Komunikat gdy nie ma jeszcze zadnych ocen
  34. }
  35.  
  36. ?>
  37. <!doctype html>
  38. <html lang="en">
  39. <head>
  40. <meta charset="UTF-8">
  41. <meta name="viewport"
  42. content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  43. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  44. <title>Zadanie 2</title>
  45. </head>
  46. <body>
  47. <?php
  48. // tutaj umieść kod wyświetlający tablicę z ocenami i średną z nich
  49. ?>
  50.  
  51. <form action="index.php" method="post">
  52. <label>
  53. ocena: <input name="mark" type="number">
  54. </label>
  55.  
  56. <input type="submit">
  57. </form>
  58.  
  59. </body>
  60. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement