Show sourcecode
The following files exists in this folder. Click to view.
Webbsrvprg/ovningar/php_ramverk/
php_textsträngar_1.php
php_textsträngar_2.php
php_textsträngar_3.php
php_textsträngar_4.php
php_textsträngar_5.php
php_textsträngar_4.php
67 lines UTF-8 Windows (CRLF)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
<?php
// Fil: php_textsträngar_4.php
// Enkel form för att kontrollera e-postadress enligt krav:
// - Minst 6 tecken totalt
// - Minst 4 tecken efter '@', varav minst en punkt ('.')
// - Den punkten får inte ligga på de två sista positionerna
// - Endast en '@' tillåts
function validate_email_custom(string $email): array {
$email = trim($email);
$len = strlen($email);
if ($len < 6) {
return [false, "E-postadressen måste vara minst 6 tecken lång."];
}
if (substr_count($email, '@') !== 1) {
return [false, "E-postadressen måste innehålla exakt en '@'."];
}
$atPos = strpos($email, '@');
// minst 4 tecken efter @
$afterCount = $len - $atPos - 1;
if ($afterCount < 4) {
return [false, "Det måste vara minst 4 tecken efter '@'."];
}
// minst en punkt efter @
$dotPos = strpos($email, '.', $atPos + 1);
if ($dotPos === false) {
return [false, "Det måste finnas minst en punkt ('.') efter '@'."];
}
// punkten får inte vara på de två sista platserna
if ($dotPos > $len - 3) {
return [false, "Punkten efter '@' får inte vara på de två sista positionerna."];
}
return [true, "E-postadressen är giltig enligt reglerna."];
}
$resultMessage = "";
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$email = $_POST['email'] ?? '';
list($ok, $msg) = validate_email_custom($email);
$resultMessage = $msg;
}
?>
<!doctype html>
<html lang="sv">
<head>
<meta charset="utf-8">
<title>Validera e-post</title>
</head>
<body>
<h1>Validera e-post enligt uppgift 1 (utökat)</h1>
<form method="post" action="">
<label for="email">E-post:</label>
<input id="email" name="email" type="text" value="<?php echo isset($email) ? htmlspecialchars($email) : ''; ?>">
<button type="submit">Kontrollera</button>
</form>
<?php if ($resultMessage !== ""): ?>
<p><?php echo htmlspecialchars($resultMessage); ?></p>
<?php endif; ?>
</body>
</html>