Show sourcecode
The following files exists in this folder. Click to view.
Webbsrvprg/exercises/php_formulär/
php_formulär_1.php
php_formulär_2.php
php_formulär_3.php
php_formulär_4.php
php_formulär_5.php
php_formulär_6.php
php_formulär_5.php
85 lines UTF-8 Windows (CRLF)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
<?php
// php_formulär_5.php
// Byt ut mot din e-postadress
$recipient = 'your@example.com';
function h($s) { return htmlspecialchars($s ?? '', ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); }
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name'] ?? '');
$email = trim($_POST['email'] ?? '');
$message = trim($_POST['message'] ?? '');
// Enkel validering
$errors = [];
if ($name === '') $errors[] = 'Namn saknas.';
if ($email === '' || !filter_var($email, FILTER_VALIDATE_EMAIL)) $errors[] = 'Ogiltig e-post.';
if ($message === '') $errors[] = 'Meddelande saknas.';
if (empty($errors)) {
// Det som skrivs ut
$outputHtml = '<h2>Tack för ditt meddelande</h2>';
$outputHtml .= '<p><strong>Namn:</strong> ' . h($name) . '</p>';
$outputHtml .= '<p><strong>E-post:</strong> ' . h($email) . '</p>';
$outputHtml .= '<p><strong>Meddelande:</strong><br>' . nl2br(h($message)) . '</p>';
echo $outputHtml;
// För e-post: bygg ett rent textmeddelande
$mailSubject = 'Nytt formulär: meddelande från ' . $name;
$mailBody = "Nytt formulärinlämning\n\n";
$mailBody .= "Namn: $name\n";
$mailBody .= "E-post: $email\n\n";
$mailBody .= "Meddelande:\n$message\n";
// Sätt From till en lokal adress och Reply-To till användaren (om giltig)
$headers = "From: noreply@yourdomain.local\r\n";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$headers .= "Reply-To: $email\r\n";
}
// Skicka e-post
$mailOk = @mail($recipient, $mailSubject, $mailBody, $headers);
if ($mailOk) {
echo '<p>E-post skickad.</p>';
} else {
echo '<p>Det gick inte att skicka e-post från servern.</p>';
}
// Avsluta för att inte visa formuläret igen
exit;
} else {
// Visa fel
echo '<ul style="color:red">';
foreach ($errors as $e) {
echo '<li>' . h($e) . '</li>';
}
echo '</ul>';
}
}
?>
<!doctype html>
<html lang="sv">
<head>
<meta charset="utf-8">
<title>Formulär — skicka och mejla</title>
</head>
<body>
<form method="post" action="" accept-charset="utf-8">
<label>Namn:<br>
<input type="text" name="name" value="<?php echo h($_POST['name'] ?? ''); ?>">
</label>
<br><br>
<label>E-post:<br>
<input type="email" name="email" value="<?php echo h($_POST['email'] ?? ''); ?>">
</label>
<br><br>
<label>Meddelande:<br>
<textarea name="message" rows="6" cols="40"><?php echo h($_POST['message'] ?? ''); ?></textarea>
</label>
<br><br>
<button type="submit">Skicka</button>
</form>
</body>
</html>