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";
?>