161 lines
5.7 KiB
PHP
161 lines
5.7 KiB
PHP
<?php
|
|
include '../common.php';
|
|
// Bruker samme tilkoblingsinformasjon som er brukt i Modul 6.
|
|
include '../modul6/forberedelser.php';
|
|
|
|
include 'logger.inc.php';
|
|
Logger::log("Lastet modul 8 oppgave 3");
|
|
|
|
// Tilbakemeldingsholdere:
|
|
$err = array();
|
|
$msg = array();
|
|
|
|
// Mappe hvor bildene skal lagres
|
|
$medlemsBildeMappe = "medlemmer/";
|
|
|
|
// Hvis bildet skal lastes opp
|
|
if(isset($_POST["submit"], $_POST['medlemid'])){
|
|
// Hent filtypen for bildet
|
|
$imageFileType = strtolower(pathinfo(basename($_FILES["fileToUpload"]["name"]),PATHINFO_EXTENSION));
|
|
// Lag stien bildet skal ha
|
|
$target_file = $medlemsBildeMappe . $_POST['medlemid'].".".$imageFileType;
|
|
|
|
// Loggfør for oppgave 2
|
|
Logger::log("Startet opplasting av fil ".$target_file);
|
|
|
|
// Kontroll om det som er lastet opp er et bilde
|
|
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
|
|
if($check === false) {
|
|
$err[] = "Opplastet fil er ikke et bilde.";
|
|
}
|
|
|
|
// Kontroller filstørrelse
|
|
if($_FILES["fileToUpload"]["size"] > 2_000_000){ // 2 000 000 skal være 2MB
|
|
$err[] = "Bildets filstørrelse er for stor";
|
|
}
|
|
|
|
// Kontroller filtyper
|
|
if($imageFileType != "jpg" && $imageFileType != "png"){
|
|
$err[] = "Bildets filformat er ikke tillatt. Kun .jpg og .png er tillatt.";
|
|
}
|
|
|
|
// Loggfør om filen finnes fra før og blir overskrevet
|
|
if(file_exists($target_file)){
|
|
Logger::log("Medlemmet $_POST[medlemid] hadde allerede et bilde, som nå er skrevet over.");
|
|
}
|
|
|
|
// Hvis ingen feil, last opp bildet
|
|
if(empty($err)){
|
|
if(move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_file)){
|
|
$msg[] = "Medlemmets bilde ble lastet opp!";
|
|
}
|
|
else {
|
|
$err[] = "Det skjedde noe galt med opplastingen, prøv på nytt.";
|
|
}
|
|
}
|
|
}
|
|
// Hvis et bildet er satt til å slettes
|
|
elseif(isset($_POST['fjernBilde'], $_POST['filnavn'])){
|
|
// Kjempeenkel sjekk om postens medlemsid finnes i filnavnet. ADVARSEL: kan (nok) misbrukes!!
|
|
if(strstr($_POST['filnavn'], $_POST['medlemid']) && !strstr('/', $_POST['filnavn'])){
|
|
// unlink sletter filer på filsystemet
|
|
if(unlink($medlemsBildeMappe."/".$_POST['filnavn'])){
|
|
$msg[] = "Bildet ble slettet!";
|
|
Logger::log("Slettet medlemsbilde ".$_POST['filnavn']);
|
|
}
|
|
}
|
|
else {
|
|
$err[] = "Bildet ble ikke slettet. Prøv igjen.";
|
|
}
|
|
}
|
|
|
|
?><!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>Medlemsliste</h2>
|
|
|
|
<?php
|
|
// Her skriver vi ut feilmeldinger eller suksess-meldinger som er generert. Dette for å få et finere brukergrensesnitt.
|
|
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";
|
|
}
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
<div style="text-align: center; margin-bottom: 50px;">
|
|
<?php
|
|
// Henter medlemmer fra modul 6. (Og spør om du vil lage dem i databasen din hvis tabellen ikke finnes)
|
|
$medlemmer = hentMedlemmer($_GET['size'] ?? 20, $_GET['page'] ?? 1);
|
|
|
|
// Lag tabell for medlemmer
|
|
if(!empty($medlemmer)){
|
|
?>
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>#</th>
|
|
<th>Fornavn</th>
|
|
<th>Etternavn</th>
|
|
<th>Poststed</th>
|
|
<th>E-post</th>
|
|
<th>Bilde</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php
|
|
foreach ($medlemmer as $medlemID => $medlem){
|
|
echo "<tr>\n";
|
|
echo " <td>".($medlem->dbid)."</td>\n";
|
|
echo " <td>".($medlem->fornavn ?? '')."</td>\n";
|
|
echo " <td>".($medlem->etternavn ?? '')."</td>\n";
|
|
echo " <td>".$medlem->poststed."</td>\n";
|
|
echo " <td>".($medlem->epost ?? '')."</td>\n";
|
|
|
|
// Hvis bildet for brukeren finnes i png (deretter jpg) skrives dette ut, sammen med en form for å slette
|
|
if(file_exists($medlemsBildeMappe."/".$medlem->dbid.'.png')){
|
|
echo "<td>";
|
|
echo "<img src='$medlemsBildeMappe/{$medlem->dbid}.png' style='height: 75px;'>";
|
|
echo "<form method='post'><input type='hidden' name='medlemid' value='".$medlem->dbid."'><input type='hidden' name='filnavn' value='{$medlem->dbid}.png'><input type='submit' value='Slett bilde' name='fjernBilde'></form>";
|
|
echo "</td>";
|
|
}
|
|
else if(file_exists($medlemsBildeMappe."/".$medlem->dbid.'.jpg')){
|
|
echo "<td>";
|
|
echo "<img src='$medlemsBildeMappe/{$medlem->dbid}.jpg' style='height: 75px;'>";
|
|
echo "<form method='post'><input type='hidden' name='medlemid' value='".$medlem->dbid."'><input type='hidden' name='filnavn' value='{$medlem->dbid}.jpg'><input type='submit' value='Slett bilde' name='fjernBilde'></form>";
|
|
echo "</td>";
|
|
}
|
|
else {
|
|
echo " <td>
|
|
<form method=\"post\" enctype=\"multipart/form-data\">
|
|
<input type='hidden' name='medlemid' value='".$medlem->dbid."'>
|
|
Last opp bilde<br>
|
|
<input type=\"file\" name=\"fileToUpload\" id=\"fileToUpload\" required>
|
|
<input type=\"submit\" value=\"Upload Image\" name=\"submit\">
|
|
</form></td>\n";
|
|
}
|
|
echo "</tr>\n";
|
|
}
|
|
?>
|
|
</tbody>
|
|
</table>
|
|
<?php } ?>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|