Modul 2 + template

master
Eirik Th S 2021-08-28 18:59:08 +02:00
parent 4305c371f4
commit bb37c5512e
10 changed files with 270 additions and 0 deletions

BIN
eirik_modul1.zip Normal file

Binary file not shown.

17
mal.php Normal file
View File

@ -0,0 +1,17 @@
<?php include 'common.php'; ?><!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>
</div>
</body>
</html>

1
modul2/common.php Symbolic link
View File

@ -0,0 +1 @@
../modul1/common.php

1
modul2/index.css Symbolic link
View File

@ -0,0 +1 @@
../modul1/index.css

1
modul2/index.php Symbolic link
View File

@ -0,0 +1 @@
../modul1/index.php

42
modul2/index2_1.php Normal file
View File

@ -0,0 +1,42 @@
<?php include 'common.php'; header('Content-Type: text/html; charset=utf-8'); ?><!DOCTYPE html>
<html lang="no">
<head>
<title><?=title();?></title>
<meta charset='UTF-8'>
<link rel="stylesheet" href="index.css">
</head>
<body>
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Sjekk av etternavn</h2>
<?php
// Lagt inn i en funksjon for enklere bruk senere.
function capitalize($input){
// Den innebygde funksjonen `mb_convert_case` med mode: MB_CASE_TITLE gjør at forbokstaven i hvert ord blir stor, med encodingen UTF-8. Det betyr at den også fungerer med æ, ø og å.
return mb_convert_case($input, MB_CASE_TITLE, "UTF-8");
}
// Henter etternavn fra GET, eller setter et standard.
$etternavn = $_GET['etternavn'] ?? 'kArLsEn';
$fintEtternavn = capitalize($etternavn);
?>
<p>Etternavn: <strong><?=$etternavn;?></strong></p>
<p>Etternavnet etter det er gjort finere: <strong><?=$fintEtternavn;?></strong></p>
<p>Etternavnet er <code><?=mb_strlen($fintEtternavn);?> karakterer langt</code>.</p>
<br>
<p>
<form>
<input type="text" name="etternavn" value="<?=$etternavn;?>">
<input type="submit" value="Sjekk navn...">
</form>
</p>
</div>
</body>
</html>

35
modul2/index2_2.php Normal file
View File

@ -0,0 +1,35 @@
<?php include 'common.php'; ?><!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>Fjern kode</h2>
<?php
$input = $_POST['kode'] ?? '<?php denne teksten slettes ?> Hallo <strong>verden</strong>';
if(isset($_POST['kode'])){
// Funksjonen strip_tags kutter vekk alt som er inni tags.
$input = strip_tags($input);
}
?>
<p>Ved bruk av PHP-funksjonen <code>strip_tags</code> kan vi lett ta vekk HTML-tagger og PHP-tagger i en string.</p>
<p>Trykk "Fjern kode..." for å se resultatet.</p>
<p>
<form action="index2_2.php" method="POST">
<textarea name="kode" style="width: 300px; height: 150px; font-size: 14px;"><?=$input;?></textarea><br>
<input type="submit" value="Fjern kode...">
</form>
</p>
</div>
</body>
</html>

49
modul2/index2_3.php Normal file
View File

@ -0,0 +1,49 @@
<?php include 'common.php'; ?><!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>Finn (antall) ord</h2>
<?php
// Insatt setning eller standard-setningen.
$setning = $_POST['setning'] ?? 'Thereses familie skulle ha ris til middag. Hun ville heller ha en is å spise.';
// REGEXP pattern: - det brukes for å enkelt finne ut hvor mange ganger bokstavene is omringet av 'whitespace' er i $setning.
$re = '/(?:^|\s)is(?:\s|$)/mi';
// Resultatene puttes i en array $resultater.
preg_match_all($re, $setning, $resultater, PREG_SET_ORDER, 0);
// Tell hvor mange resultater som REGEXP-en finner.
$ganger = count($resultater);
// Hvis det kun er én match så lagres teksten grammatisk riktig.
if($ganger == 1){
$gangerStr = $ganger." gang";
}
// ... ellers skrives ganger i flertall.
else {
$gangerStr = $ganger." ganger";
}
?>
<p>Ved bruk av REGEXP er det ganske greit å finne ut hvor mange ganger et ORD finnes i en setning.</p>
<form action="index2_3.php" method="POST">
<p>
<textarea name="setning" style="width: 300px; height: 150px; font-size: 14px;"><?=$setning;?></textarea><br>
<input type="submit" value="Tell antall 'is'...">
</p>
</form>
<p>Setningen har ordet "is" <?=$gangerStr;?></p>
</div>
</body>
</html>

56
modul2/index2_4.php Normal file
View File

@ -0,0 +1,56 @@
<?php include 'common.php'; ?><!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>Alder</h2>
<?php
// Insatte bursdag eller 'fødselsdagen' til PhP
$bursdag = $_GET['bursdag'] ?? '08.06.1995';
// Bruker klassen DateTime og setter inn bruker $bursdag i angitt format.
$bdag = DateTime::createFromFormat('d.m.Y', $bursdag);
if(!$bdag){
echo "<p>Greide ikke å forstå den insatte datoen. Prøv igjen.</p>";
}
else {
// Bruker DateTime-klassens ::diff
$forskjell = $bdag->diff( new DateTime() );
$deltaDager = $forskjell->days;
$deltaAar = $forskjell->y;
$datoStr = $bdag->format('j. M. Y');
$deltaStr = $deltaAar." år og ".($deltaDager-($deltaAar*365))." dager";
if(empty($_GET)){
printf("<p>PHP som ble lansert '%s', er i dag <strong>%s</strong> gammelt.</p>", $datoStr, $deltaStr);
}
elseif($forskjell->format("%R") != "-") {
printf("<p>Personer med fødselsdato '%s' er i dag <strong>%s</strong> gamle.</p>", $datoStr, $deltaStr);
}
else {
printf("<p>Personer med fødselsdato '%s' blir født om <strong>%s</strong>.</p>", $datoStr, $deltaStr);
}
}
?>
<form>
<p>
<input type="text" name="bursdag" placeholder="dd.mm.YYYY" value="<?=$bursdag;?>">
<input type="submit" value="Sjekk bursdag...">
</p>
</form>
</div>
</body>
</html>

68
modul2/index2_5.php Normal file
View File

@ -0,0 +1,68 @@
<?php include 'common.php'; ?><!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>Passord-generator</h2>
<?php
function genPwd($len = 8){
// Liste over støtta tegn. ÆØÅ osv. er ikke med fordi de blir to tegn og ikke funker lengre nede.
$characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$numbers = "1234567890";
$special = "!#%&/()=?+*-:;";
$numCount = 0;
$speCount = 0;
$chaCount = 0;
$numChance = 30;
$specChance = 20;
$pwd = "";
// Løkke som går over hvert tegn av det nye passordet.
for($i = 0; $i < $len; $i++){
if($i==0){ $rand = 100; } // Sikre at første tegn er en bokstav.
else {
$rand = random_int(0,100);
}
// Hvis det tilfeldige tallet mellom 0 og 100 mindre enn $numChance, så blir dette tegnet et tall. Ellers hvis dette tallet er nest siste av passordet, så sjekkes det at det er med et tall. Hvis det ikke er et tall, skal det nå bli et tall.
if($rand < $numChance || $i == $len-2 && $numCount == 0){
$pwd .= $numbers[ random_int(1, strlen($numbers) )-1 ];
$numCount++;
}
// Hvis det tilfeldige tallet mellom 0 og 100 mindre enn $specChance, så blir dette tegnet et spesialtegn. Ellers hvis dette tegnet er siste i passordet, så sjekkes det at det er med et spesialtegn. Hvis det ikke er et spesialtegn, skal det nå bli et spesialtegn.
elseif($rand < $specChance+$numChance || $i == $len-1 && $speCount == 0){
$pwd .= $special[ random_int(1, strlen($special) )-1 ];
$speCount++;
}
// Ellers skriv en bokstav.
else {
$pwd .= $characters[ random_int(1, strlen($characters) )-1 ];
$chaCount++;
}
}
return $pwd;
}
$pwdLen = $_GET['pwdlen'] ?? 8;
?>
<p><strong><?=genPwd($pwdLen);?></strong></p>
<p><form><input type="number" name="pwdlen" value="<?=$pwdLen;?>" min="8" max="42"><input type="submit" value="Generer nytt..."></form></p>
</div>
</body>
</html>