Webbserverprogrammering 1

Show sourcecode

The following files exists in this folder. Click to view.

Webbsrvprg/exercises/php_textstränger/

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_2.php

75 lines UTF-8 Windows (CRLF)
<?php
// php_textsträngar_2.php
// Enkel sida som visar ett formulär och validerar inmatning vid POST.

function e($s) {
    return 
htmlspecialchars($sENT_QUOTES'UTF-8');
}

$username '';
$password '';
$errors = [];
$success false;

if (
$_SERVER['REQUEST_METHOD'] === 'POST') {
    
$username trim($_POST['username'] ?? '');
    
$password $_POST['password'] ?? '';

    
// Kontroll: användarnamn måste innehålla "php" (case-insensitivt)
    
if (stripos($username'php') === false) {
        
$errors[] = 'Användarnamnet måste innehålla delsträngen "php".';
    }

    
// Kontroll: lösenord minst 6 tecken
    
if (mb_strlen($password) < 6) {
        
$errors[] = 'Lösenordet måste vara minst 6 tecken långt.';
    }

    if (empty(
$errors)) {
        
$success true;
    }
}
?>
<!doctype html>
<html lang="sv">
<head>
    <meta charset="utf-8">
    <title>Inloggning - validering</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 2rem; }
        .error { color: #a00; }
        .ok { color: #080; }
        form { max-width: 360px; }
        label { display: block; margin-top: 0.8rem; }
        input[type="text"], input[type="password"] { width: 100%; padding: 0.4rem; box-sizing: border-box; }
        .messages { margin-top: 1rem; }
    </style>
</head>
<body>
    <h1>Inloggning</h1>

    <form method="post" action="">
        <label for="username">Användarnamn</label>
        <input id="username" name="username" type="text" value="<?php echo e($username); ?>" required>

        <label for="password">Lösenord</label>
        <input id="password" name="password" type="password" value="" required>

        <button type="submit" style="margin-top:0.8rem;">Skicka</button>
    </form>

    <div class="messages">
        <?php if ($_SERVER['REQUEST_METHOD'] === 'POST'): ?>
            <?php if ($success): ?>
                <p class="ok">Allt är ok — användarnamn och lösenord uppfyller kraven.</p>
            <?php else: ?>
                <ul class="error">
                    <?php foreach ($errors as $err): ?>
                        <li><?php echo e($err); ?></li>
                    <?php endforeach; ?>
                </ul>
            <?php endif; ?>
        <?php endif; ?>
    </div>
</body>
</html>