Modul 4 klar (?)

master
Eirik Th S 2021-09-22 20:45:08 +02:00
parent a8354fd02b
commit 3c7e76e4fb
6 changed files with 77 additions and 33 deletions

View File

@ -39,4 +39,14 @@ function lower($int1, $int2): int {
return $int1;
}
return $int2;
}
}
function str_lreplace($search, $replace, $subject){
$pos = strrpos($subject, $search);
if($pos !== false){
$subject = substr_replace($subject, $replace, $pos, strlen($search));
}
return $subject;
}

View File

@ -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)){

View File

@ -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.";
}
}

View File

@ -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!<br>Du endret de følgende verdi(ene):<br> ".implode(', ', $endredeVerdier);
}
else {
$msg[] = "Medlemmet er oppdatert, men du gjorde ingen endringer.";
$msg[] = "Medlemmet er oppdatert, men ingen endringer er gjort.";
}
}
else {

View File

@ -37,10 +37,11 @@
echo "</pre></p>\n\n";
echo "<p>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 "<pre>";
print_r($matrise);

View File

@ -12,35 +12,65 @@
<h2>Liten konkurranse</h2>
<?php
$deltaker["Karl"] = 0;
$deltaker["Mia"] = 0;
$deltaker["Ove"] = 0;
$deltaker["Erik"] = 0;
$deltaker["Borgar"] = 0;
$deltaker["Erlend"] = 0;
$deltaker["Simon"] = 0;
$deltaker["Tuva"] = 0;
$deltaker["Syver"] = 0;
$deltaker["Solvor"] = 0;
// Introduserer deltakerne med 0 poeng.
$deltaker["Karl"] = 0;
$deltaker["Mia"] = 0;
$deltaker["Ove"] = 0;
$deltaker["Erik"] = 0;
$deltaker["Aurora"] = 0;
$deltaker["Emma"] = 0;
$deltaker["Simon"] = 0;
$deltaker["Tuva"] = 0;
$deltaker["Syvert"] = 0;
$deltaker["Trine"] = 0;
echo "Konkurranse mellom ".implode(', ', array_keys($deltaker))."<br><br>\n";
$runde = 0;
while(count($deltaker)!=1){
$lavestePoeng = 0;
echo "Konkurranse mellom ".str_lreplace(',',' og', implode(', ', array_keys($deltaker)))."<br><br>\n";
while(count($deltaker) > 1){
$runde++;
echo "<h5>Runde $runde</h5>\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.<br>\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 "<p>Poeng denne runden:<br>";
echo implode(', ', $strArr);
echo "</p>";
// Identifiser laveste poengsum
$lavestePoeng = $deltaker[ array_key_last($deltaker) ];
// Identifisere deltakere med laveste poengsum
$lavesteDeltakere = array_keys($deltaker, $lavestePoeng);
if(count($lavesteDeltakere) > 1){
echo "<p>Deltakerne ".str_lreplace(',', ' og', "<strong>".implode("</strong>, <strong>", $lavesteDeltakere)."</strong>")." har færrest poeng, og er ute av konkurransen.</p>\n";
}
else {
echo "<p><strong>$lavesteDeltakere[0]</strong> har færrest poeng, og er ute av konkurransen.</p>\n";
}
// Tar navnet/navnene ut av matrisen
foreach ($lavesteDeltakere as $navn){
unset($deltaker[$navn]);
}
}
// Annonsere vinneren
$vinnerNavn = array_key_first($deltaker);
echo "<br><strong>Vinneren er ".$vinnerNavn." med ".$deltaker[$vinnerNavn]." poeng!</strong><br>\n";
echo "<p><strong>Vinneren er ".$vinnerNavn." med ".$deltaker[$vinnerNavn]." poeng!</strong></p>\n";
?>
</div>