is115-php/modul4/index4_2.php

235 lines
8.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
if(!empty($_POST)){
$fornavn = $_POST['fornavn'];
$etternavn = $_POST['etternavn'];
$adresse1 = $_POST['adresse1'];
$adresse2 = $_POST['adresse2'];
$postnummer = $_POST['postnummer'];
$poststed = $_POST['poststed'];
$mobil = $_POST['mobilnummer'];
$epost = $_POST['epost'];
$bursdag = new DateTime();
$bursdag->setTimestamp( strtotime($_POST['bursdag']) );
$kjonn = $_POST['kjonn'];
$interesser = $_POST['interesser'] ?? '';
$kursaktiviteter = $_POST['kursaktiviteter'] ?? '';
$medlem = new DateTime();
$medlem->setTimestamp( strtotime($_POST['medlem']) );
$kontigent = $_POST['kontigent'];
$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} == ""){
$err[] = "Feltet '".$field."' er tomt eller ugyldig.";
}
}
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 om fødselsdatoen er riktig.";
}
if($kjonn == "0"){
$err[] = "Vennligst velg et kjønn.";
}
if($kontigent == "0"){
$err[] = "Vennligst før inn om kontigenten er betalt.";
}
if(empty($err)){
// Sett inn i databasen eller tilsvarende
$medlemmer[] = array(
"fornavn"=>$fornavn,
"etternavn"=>$etternavn,
"adresse1"=>$adresse1,
"adresse2"=>$adresse2,
"postnummer"=>$postnummer,
"poststed"=>$poststed,
"mobilnummer"=>$mobil,
"epost"=>$epost,
"fødselsdato"=>$bursdag->format("d.m.Y"),
"kjonn"=>$kjonn,
"interesser"=>$interesser,
"kursaktiviteter"=>$kursaktiviteter,
"medlem_siden"=>$medlem->format("d.m.Y"),
"kontigentstatus"=>$kontigent
);
$msg[] = "Suksess!<br> Medlemmet $fornavn $etternavn er 'registrert'.";
unset( $_POST );
}
else {
$err[] = "Det var en eller flere feil i skjemaet. Derfor er 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>Registrer nytt medlem</h2>
<?php
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";
}
}
?>
<form method="POST">
<p>
<label>Fornavn:* <input type="text" name="fornavn" value="<?=$_POST['fornavn'] ?? '';?>"></label>
<label>Etternavn:* <input type="text" name="etternavn" value="<?=$_POST['etternavn'] ?? '';?>"></label>
</p>
<p>
<label>Adresselinje 1:* <input type="text" name="adresse1" value="<?=$_POST['adresse1'] ?? '';?>"></label><br>
<label>Adresselinje 2: <input type="text" name="adresse2" value="<?=$_POST['adresse2'] ?? '';?>"></label><br>
<label>Postnummer/Poststed:*
<input type="number" name="postnummer" min="0001" max="9999" value="<?=$_POST['postnummer'] ?? 4630;?>"><input type="text" name="poststed" value="<?=$_POST['poststed'] ?? '';?>">
</label>
</p>
<p>
<label>Mobilnummer: <input type="text" name="mobilnummer" value="<?=$_POST['mobilnummer'] ?? '';?>"></label><br>
<label>E-post:* <input type="text" name="epost" value="<?=$_POST['epost'] ?? '';?>"></label><br>
<label>Fødselsdato:* <input type="date" name="bursdag" value="<?=$_POST['bursdag'] ?? date('Y-m-d');?>"></label><br>
<label>
Kjønn:*
<select name="kjonn">
<option value="0">-- Velg --</option>
<option<?=(@$_POST['kjonn'] == "Mann"?' selected':'');?>>Mann</option>
<option<?=(@$_POST['kjonn'] == "Kvinne"?' selected':'');?>>Kvinne</option>
<option<?=(@$_POST['kjonn'] == "Annet"?' selected':'');?>>Annet</option>
</select>
</label>
</p>
<p>
<label>Interesser:<br><textarea name="interesser"><?=$_POST['interesser'] ?? '';?></textarea></label>
</p>
<p>
<label>Kursaktiviteter:<br><textarea name="kursaktiviteter"><?=$_POST['kursaktiviteter'] ?? '';?></textarea></label>
</p>
<p>
<label>Medlem siden:* <input type="date" name="medlem" value="<?=$_POST['medlem'] ?? date('Y-m-d');?>"></label><br>
<label>
Kontigentstatus:*
<select name="kontigent">
<option value="0">-- Velg --</option>
<option<?=(@$_POST['kontigent'] == "Betalt"?' selected':'');?>>Betalt</option>
<option<?=(@$_POST['kontigent'] == "Ikke betalt"?' selected':'');?>>Ikke betalt</option>
<option<?=(@$_POST['kontigent'] == "Fritatt"?' selected':'');?>>Fritatt</option>
</select>
</label>
</p>
<p>
<input type="submit" value="Send inn...">
</p>
<!-- fornavn, etternavn, adresse (gateadresse, postnummer, poststed), mobilnummer, e-post, fødselsdato, kjønn, interesser, kursaktiviteter, medlem siden dato og kontingentstatus -->
</form>
</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 "</tr>\n";
}
?>
</tbody>
</table>
<?php } ?>
</div>
</body>
</html>