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 "
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:
"; + + // Identifiser laveste poengsum + $lavestePoeng = $deltaker[ array_key_last($deltaker) ]; + + // Identifisere deltakere med laveste poengsum + $lavesteDeltakere = array_keys($deltaker, $lavestePoeng); + + if(count($lavesteDeltakere) > 1){ + echo "
"; + echo implode(', ', $strArr); + 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"; ?>