From 3c7e76e4fb91fa71608abe3023b992552708554c Mon Sep 17 00:00:00 2001 From: Eirik Th S Date: Wed, 22 Sep 2021 20:45:08 +0200 Subject: [PATCH] Modul 4 klar (?) --- modul1/common.php | 12 +++++++- modul2/index2_4.php | 2 +- modul4/index4_2.php | 11 ++++--- modul4/index4_3.php | 6 ++-- modul4/index4_4.php | 9 +++--- modul4/index4_5.php | 70 ++++++++++++++++++++++++++++++++------------- 6 files changed, 77 insertions(+), 33 deletions(-) diff --git a/modul1/common.php b/modul1/common.php index 3a1e84c..a807abb 100644 --- a/modul1/common.php +++ b/modul1/common.php @@ -39,4 +39,14 @@ function lower($int1, $int2): int { return $int1; } return $int2; -} \ No newline at end of file +} + +function str_lreplace($search, $replace, $subject){ + $pos = strrpos($subject, $search); + if($pos !== false){ + $subject = substr_replace($subject, $replace, $pos, strlen($search)); + } + + return $subject; +} + diff --git a/modul2/index2_4.php b/modul2/index2_4.php index 5062fe8..f7807c1 100644 --- a/modul2/index2_4.php +++ b/modul2/index2_4.php @@ -28,7 +28,7 @@ $deltaAar = $forskjell->y; $datoStr = $bdag->format('j. M. Y'); - $deltaStr = $deltaAar." år og ".($deltaDager-($deltaAar*365))." dager"; + $deltaStr = $deltaAar." år og ".($deltaDager-floor($deltaAar*365.25))." dager"; // Hvis brukeren ikke enda har satt inn en dato, gi spesielt tilfelle: if(empty($_GET)){ diff --git a/modul4/index4_2.php b/modul4/index4_2.php index 4f81587..8a4e999 100644 --- a/modul4/index4_2.php +++ b/modul4/index4_2.php @@ -47,7 +47,7 @@ if(!empty($_POST)){ $kontigent = $_POST['kontigent']; - $fields = array("fornavn", "etternavn", "adresse1", "postnummer", "poststed", "epost", "medlem"); + $fields = array("fornavn", "etternavn", "adresse1", "postnummer", "poststed", "medlem"); foreach($fields as $field){ // Her brukes en metode som lar deg sjekke variabler fra en liste. ${ } lar deg sette inn andre variabler som da blir variabel-navnet. if(${$field} == ""){ @@ -55,12 +55,15 @@ if(!empty($_POST)){ } } - if(!strpos($epost, '@') && !strpos($epost, '.')){ + if($epost == ""){ + $err[] = "Epost-adressen mangler."; + } + elseif(!strpos($epost, '@') && !strpos($epost, '.')){ $err[] = "Epost-adressen er ikke gylid."; } if($bursdag->diff( new DateTime() )->days < 1){ - $err[] = "Medlemmet er født i dag. Sjekk fødselsdatoen."; + $err[] = "Medlemmet er født i dag. Sjekk om fødselsdatoen er riktig."; } if($kjonn == "0"){ @@ -94,7 +97,7 @@ if(!empty($_POST)){ unset( $_POST ); } else { - $err[] = "Ingen bruker registrert."; + $err[] = "Det var en eller flere feil i skjemaet. Derfor er ingen bruker registrert."; } } diff --git a/modul4/index4_3.php b/modul4/index4_3.php index 5d8fd2e..b59529f 100644 --- a/modul4/index4_3.php +++ b/modul4/index4_3.php @@ -19,7 +19,7 @@ $medlemmer[] = array( "kontigentstatus"=>'Betalt' ); -// Sjekker om det er et innsendt skjema +// Sjekker om det er et innsendt skjema (Redigert skjema) if(!empty($_POST)){ $mid = $_POST['bruker_id']; @@ -82,7 +82,7 @@ if(!empty($_POST)){ $endredeVerdier = array(); $sjekkbareNokler = array("fornavn", "etternavn", "adresse1", "adresse2", "postnummer", "poststed", "mobilnummer", "epost", "kjonn", "interesser", "kursaktiviteter", "kontigentstatus"); foreach ($sjekkbareNokler as $key){ - if($medlemObj[ $key ] != ${$key}){ + if(@$medlemObj[ $key ] != ${$key}){ $medlemmer[$mid][$key] = ${$key}; $endredeVerdier[] = $key; } @@ -98,7 +98,7 @@ if(!empty($_POST)){ $msg[] = "Suksess!
Du endret de følgende verdi(ene):
".implode(', ', $endredeVerdier); } else { - $msg[] = "Medlemmet er oppdatert, men du gjorde ingen endringer."; + $msg[] = "Medlemmet er oppdatert, men ingen endringer er gjort."; } } else { diff --git a/modul4/index4_4.php b/modul4/index4_4.php index 34a82d0..5ebe8ad 100644 --- a/modul4/index4_4.php +++ b/modul4/index4_4.php @@ -37,10 +37,11 @@ echo "

\n\n"; echo "

Endre indeks-verdiene:"; - for($i = 0; $i < 10; $i++){ - $matrise[$i+10] = $matrise[$i]; - unset($matrise[$i]); - } + + // Sette inn verdier foran matrisen så matrisen har 10 flere indekser, med verdien "null". + $matrise = array_pad($matrise, 0-10-count($matrise), null); + // Filtrere vekk FALSE/NULL verdier fra arrayen, men beholde indeksene. + $matrise = array_filter($matrise); echo "

";
     print_r($matrise);
diff --git a/modul4/index4_5.php b/modul4/index4_5.php
index f5af1d7..da547ea 100644
--- a/modul4/index4_5.php
+++ b/modul4/index4_5.php
@@ -12,35 +12,65 @@
     

Liten konkurranse


\n"; + $runde = 0; - while(count($deltaker)!=1){ - $lavestePoeng = 0; + echo "Konkurranse mellom ".str_lreplace(',',' og', implode(', ', array_keys($deltaker)))."

\n"; + + while(count($deltaker) > 1){ + $runde++; + echo "
Runde $runde
\n"; + + // Gir hver deltaker en tilfeldig sum poenger mellom 1 og 50. foreach($deltaker as $navn => $poeng){ $deltaker[$navn] += random_int(1,50); - if($lavestePoeng == 0 || $deltaker[$navn] < $lavestePoeng){ - $lavestePoeng = $deltaker[$navn]; - $lavesteDeltaker = $navn; - } } - echo "Deltakeren ".$lavesteDeltaker." har for lite poeng (".$deltaker[$lavesteDeltaker].") og er ute av konkurransen.
\n"; - unset($deltaker[$lavesteDeltaker]); + // Sortere matrisen etter poengsum. + arsort($deltaker); + + // Skriv ut poengsummen for alle gjenværende deltakere + $strArr = array(); + foreach ($deltaker as $navn => $poeng){ + $strArr[] = "$navn ($poeng)"; + } + echo "

Poeng denne runden:
"; + echo implode(', ', $strArr); + echo "

"; + + // Identifiser laveste poengsum + $lavestePoeng = $deltaker[ array_key_last($deltaker) ]; + + // Identifisere deltakere med laveste poengsum + $lavesteDeltakere = array_keys($deltaker, $lavestePoeng); + + if(count($lavesteDeltakere) > 1){ + echo "

Deltakerne ".str_lreplace(',', ' og', "".implode(", ", $lavesteDeltakere)."")." har færrest poeng, og er ute av konkurransen.

\n"; + } + else { + echo "

$lavesteDeltakere[0] har færrest poeng, og er ute av konkurransen.

\n"; + } + + // Tar navnet/navnene ut av matrisen + foreach ($lavesteDeltakere as $navn){ + unset($deltaker[$navn]); + } } + // Annonsere vinneren $vinnerNavn = array_key_first($deltaker); - echo "
Vinneren er ".$vinnerNavn." med ".$deltaker[$vinnerNavn]." poeng!
\n"; + echo "

Vinneren er ".$vinnerNavn." med ".$deltaker[$vinnerNavn]." poeng!

\n"; ?>