Webbserverprogrammering 1

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

92 lines UTF-8 Windows (CRLF)
<?php
// php_textsträngar_1.php
// Enkel sida som visar formulär och en feedback-sida efter POST

mb_internal_encoding('UTF-8');

function 
fixName(string $s): string {
    
$s trim($s);
    if (
$s === '') return '';
    
// Gör först alla bokstäver små och sätt sedan första bokstaven i varje ord till stor
    
return mb_convert_case(mb_strtolower($s'UTF-8'), MB_CASE_TITLE'UTF-8');
}

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

if (
$_SERVER['REQUEST_METHOD'] === 'POST') {
    
$firstname $_POST['firstname'] ?? '';
    
$lastname  $_POST['lastname']  ?? '';
    
$email     $_POST['email']     ?? '';

    
$firstname_fixed fixName($firstname);
    
$lastname_fixed  fixName($lastname);
    
$email_trimmed   trim($email);

    
$email_ok = (strpos($email_trimmed'@') !== false);
    
?>
    <!DOCTYPE html>
    <html lang="sv">
    <head>
        <meta charset="utf-8">
        <title>Feedback</title>
    </head>
    <body>
        <h1>Feedback</h1>

        <p><strong>Förnamn:</strong>
            <?php echo e($firstname_fixed === '' '(inget angivet)' $firstname_fixed); ?>
        </p>

        <p><strong>Efternamn:</strong>
            <?php echo e($lastname_fixed === '' '(inget angivet)' $lastname_fixed); ?>
        </p>

        <p><strong>E-postadress:</strong>
            <?php
            
if ($email_trimmed === '') {
                echo 
'(ingen e-post angiven)';
            } elseif (! 
$email_ok) {
                echo 
e($email_trimmed) . ' — ogiltig e-post (saknar @)';
            } else {
                echo 
e($email_trimmed);
            }
            
?>
        </p>

        <p><a href="<?php echo e($_SERVER['PHP_SELF']); ?>">Tillbaka till formuläret</a></p>
    </body>
    </html>
    <?php
    
exit;
}
?>
<!DOCTYPE html>
<html lang="sv">
<head>
    <meta charset="utf-8">
    <title>Formulär</title>
</head>
<body>
    <h1>Fyll i dina uppgifter</h1>
    <form action="<?php echo e($_SERVER['PHP_SELF']); ?>" method="post" accept-charset="utf-8">
        <label>
            Förnamn:<br>
            <input type="text" name="firstname" maxlength="100">
        </label>
        <br><br>
        <label>
            Efternamn:<br>
            <input type="text" name="lastname" maxlength="100">
        </label>
        <br><br>
        <label>
            E-post:<br>
            <input type="email" name="email" maxlength="255">
        </label>
        <br><br>
        <button type="submit">Skicka</button>
    </form>
</body>
</html>