is115-php/modul4/index4_3.php

259 lines
9.3 KiB
PHP

<?php include '../common.php';
$err = array();
$msg = array();
$medlemmer[] = array(
"fornavn"=>"Thomas",
"etternavn"=>"Enger",
"adresse1"=>'Brødgata 12',
"postnummer"=>'1337',
"poststed"=>'Sandvika',
"mobilnummer"=>'815 49 300',
"epost"=>'thomasenger@gmail.com',
"fødselsdato"=>'23.02.1977',
"kjonn"=>'Mann',
"interesser"=>'TV-Serier',
"kursaktiviteter"=>'',
"medlem_siden"=>'11.09.2021',
"kontigentstatus"=>'Betalt'
);
// Sjekker om det er et innsendt skjema (Redigert skjema)
if(!empty($_POST)){
$mid = $_POST['bruker_id'];
$fornavn = $_POST['fornavn'];
$etternavn = $_POST['etternavn'];
$adresse1 = $_POST['adresse1'];
$adresse2 = $_POST['adresse2'];
$postnummer = $_POST['postnummer'];
$poststed = $_POST['poststed'];
$mobilnummer = $_POST['mobilnummer'];
$epost = $_POST['epost'];
$bursdag = new DateTime();
$bursdag->setTimestamp( strtotime($_POST['bursdag']) );
$kjonn = $_POST['kjonn'];
$interesser = $_POST['interesser'];
$kursaktiviteter = $_POST['kursaktiviteter'];
$medlem_siden = new DateTime();
$medlem_siden->setTimestamp( strtotime($_POST['medlem']) );
$kontigentstatus = $_POST['kontigent'];
if(!isset($medlemmer[$mid])){
$err[] = "Medlem ikke funnet";
}
$fields = array("fornavn", "etternavn", "adresse1", "postnummer", "poststed", "epost");
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} == ""){
$err[] = "Feltet '".$field."' er tomt eller ugyldig.";
}
}
if(!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.";
}
if($kjonn == "0"){
$err[] = "Vennligst velg et kjønn.";
}
if($kontigentstatus == "0"){
$err[] = "Vennligst før inn om kontigenten er betalt.";
}
if(empty($err)){
$medlemObj = $medlemmer[$mid];
$endredeVerdier = array();
$sjekkbareNokler = array("fornavn", "etternavn", "adresse1", "adresse2", "postnummer", "poststed", "mobilnummer", "epost", "kjonn", "interesser", "kursaktiviteter", "kontigentstatus");
foreach ($sjekkbareNokler as $key){
if(@$medlemObj[ $key ] != ${$key}){
$medlemmer[$mid][$key] = ${$key};
$endredeVerdier[] = $key;
}
}
if($medlemObj["fødselsdato"] != $bursdag->format('d.m.Y')){
$medlemmer[$mid]["fødselsdato"] = $bursdag->format('d.m.Y'); $endredeVerdier[] = "fødselsdato";
}
if($medlemObj["medlem_siden"] != $medlem_siden->format('d.m.Y')){
$medlemmer[$mid]["medlem_siden"] = $medlem_siden->format('d.m.Y'); $endredeVerdier[] = "medlem_siden";
}
if(!empty($endredeVerdier)){
$msg[] = "Suksess!<br>Du endret de følgende verdi(ene):<br> ".implode(', ', $endredeVerdier);
}
else {
$msg[] = "Medlemmet er oppdatert, men ingen endringer er gjort.";
}
}
else {
$err[] = "Ingen bruker registrert.";
}
}
?><!DOCTYPE html>
<html lang="no">
<head>
<title><?=title();?></title>
<link rel="stylesheet" href="../index.css">
</head>
<body>
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Endring av medlemsoppføring</h2>
</div>
<div style="text-align: center; margin-bottom: 50px;">
<?php
if(!empty($medlemmer)){
?>
<h3>Medlemsliste</h3>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>Fornavn</th>
<th>Etternavn</th>
<th>Adresse</th>
<th>Postnummer/-sted</th>
<th>Mobilnummer</th>
<th>E-post</th>
<th>Fødselsdato</th>
<th>Kjønn</th>
<th>Interesser</th>
<th>Kursaktiviteter</th>
<th>Medlem siden</th>
<th>Kontigentstatus</th>
</tr>
</thead>
<tbody>
<?php
foreach ($medlemmer as $medlemID => $medlem){
echo "<tr>\n";
echo " <td>".($medlemID+1)."</td>\n";
echo " <td>".($medlem['fornavn'] ?? '')."</td>\n";
echo " <td>".($medlem['etternavn'] ?? '')."</td>\n";
echo " <td>".($medlem['adresse1'] ?? '');
if(!empty($medlem['adresse2'])){ echo "<br>".$medlem['adresse2']; } // Skriver inn adresselinje 2 hvis aktuelt
echo "</td>\n";
echo " <td>$medlem[postnummer] $medlem[poststed]</td>\n";
echo " <td>".($medlem['mobilnummer'] ?? '')."</td>\n";
echo " <td>".($medlem['epost'] ?? '')."</td>\n";
echo " <td>".($medlem['fødselsdato'] ?? '')."</td>\n";
echo " <td>".($medlem['kjonn'] ?? '')."</td>\n";
echo " <td>".($medlem['interesser'] ?? '')."</td>\n";
echo " <td>".($medlem['kursaktiviteter'] ?? '')."</td>\n";
echo " <td>".($medlem['medlem_siden'] ?? '')."</td>\n";
echo " <td>".($medlem['kontigentstatus'] ?? '')."</td>\n";
echo " <td><form><input type='hidden' name='memberid' value='$medlemID'><input type='submit' value='Rediger...'></form></td>\n";
echo "</tr>\n";
}
?>
</tbody>
</table>
<?php } ?>
</div>
<div class="container">
<?php
if(isset($_GET['memberid'])){
$mid = $_GET['memberid'];
if(!isset($medlemmer[$mid])) {
$err[] = "Medlem ikke funnet.";
}
}
if(!empty($err)){
foreach ($err as $e){
echo "<p class='error'>".$e."</p>\n";
}
}
if(!empty($msg)){
foreach ($msg as $m){
echo "<p class='suksess'>".$m."</p>\n";
}
}
if(isset($mid) && empty($err)){
$bursdag = DateTime::createFromFormat("d.m.Y", $medlemmer[$mid]['fødselsdato']);
$medlem = DateTime::createFromFormat("d.m.Y",$medlemmer[$mid]['medlem_siden']);
?>
<form method="POST" action="index4_3.php">
<input type="hidden" name="bruker_id" value="<?=$mid ?? '3';?>">
<p>
<label>Fornavn:* <input type="text" name="fornavn" value="<?=$medlemmer[$mid]['fornavn'] ?? '';?>"></label>
<label>Etternavn:* <input type="text" name="etternavn" value="<?=$medlemmer[$mid]['etternavn'] ?? '';?>"></label>
</p>
<p>
<label>Adresselinje 1:* <input type="text" name="adresse1" value="<?=$medlemmer[$mid]['adresse1'] ?? '';?>"></label><br>
<label>Adresselinje 2: <input type="text" name="adresse2" value="<?=$medlemmer[$mid]['adresse2'] ?? '';?>"></label><br>
<label>Postnummer/Poststed:*
<input type="number" name="postnummer" min="0001" max="9999" value="<?=$medlemmer[$mid]['postnummer'] ?? 4630;?>"><input type="text" name="poststed" value="<?=$medlemmer[$mid]['poststed'] ?? '';?>">
</label>
</p>
<p>
<label>Mobilnummer: <input type="text" name="mobilnummer" value="<?=$medlemmer[$mid]['mobilnummer'] ?? '';?>"></label><br>
<label>E-post:* <input type="text" name="epost" value="<?=$medlemmer[$mid]['epost'] ?? '';?>"></label><br>
<label>Fødselsdato:* <input type="date" name="bursdag" value="<?=$bursdag->format("Y-m-d");?>"></label><br>
<label>
Kjønn:*
<select name="kjonn">
<option value="0">-- Velg --</option>
<option<?=(@$medlemmer[$mid]['kjonn'] == "Mann"?' selected':'');?>>Mann</option>
<option<?=(@$medlemmer[$mid]['kjonn'] == "Kvinne"?' selected':'');?>>Kvinne</option>
<option<?=(@$medlemmer[$mid]['kjonn'] == "Annet"?' selected':'');?>>Annet</option>
</select>
</label>
</p>
<p>
<label>Interesser:<br><textarea name="interesser"><?=$medlemmer[$mid]['interesser'] ?? '';?></textarea></label>
</p>
<p>
<label>Kursaktiviteter:<br><textarea name="kursaktiviteter"><?=$medlemmer[$mid]['kursaktiviteter'] ?? '';?></textarea></label>
</p>
<p>
<label>Medlem siden:* <input type="date" name="medlem" value="<?=$medlem->format("Y-m-d");?>"></label><br>
<label>
Kontigentstatus:*
<select name="kontigent">
<option value="0">-- Velg --</option>
<option<?=(@$medlemmer[$mid]['kontigentstatus'] == "Betalt"?' selected':'');?>>Betalt</option>
<option<?=(@$medlemmer[$mid]['kontigentstatus'] == "Ikke betalt"?' selected':'');?>>Ikke betalt</option>
<option<?=(@$medlemmer[$mid]['kontigentstatus'] == "Fritatt"?' selected':'');?>>Fritatt</option>
</select>
</label>
</p>
<p>
<input type="submit" value="Rediger...">
</p>
</form>
<?php
}
?>
</div>
</body>
</html>