Ik blijf door onderstaande code de melding undefined index: naam/.../... en wat ik ook probeer ik krijg het niet weg. Het is een code door iemand anders geschreven, ik heb al meerdere notices kunnen oplossen maar deze blijven helaas over.
Echter na lezen en testen/uitproberen van alle tutorials op dit gebied blijven, ondanks mijn vele pogingen, de volgende vier notices undefined index: naam/.../..., undefined index: mail/.../..., undefined index: onderwerp/.../... en undefined index: mssg/.../... staan. Ik heb geen idee meer waar ik de fout moet zoeken. Ik heb veel tutorials van isset, empty, POST en GET tot submit bestudeerd en kom er niet achter.
De meldingen betreffen de volgende regels:
echo "<tr><td>Naam: <input type=\"text\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";
echo "<tr><td><input type=\"text\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";
echo "<tr><td><input type=\"text\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>";
echo "<tr><td><TEXTAREA name=\"msggs\" ROWS=\"6\" COLS=\"45\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>";
Hieronder de hele code van de pagina:
<?php
session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
// E-mailadres van de ontvanger
$mail_ontv = '[email protected]' ; // <<<----- voer jouw e-mailadres hier in!
// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// naam controle
if (!preg_match('/[ a-zA-Z-]$/', $_POST['naam']))
$naam_fout = 1;
// e-mail controle
if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
$email_fout = 1;
}
// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && ( empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['mail']) || !empty($email_fout) || empty($_POST['onderwerp']) || empty($_POST['msggs']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!empty($naam_fout))
echo 'U bent uw naam vergeten in te vullen.';
elseif (!empty($email_fout))
echo '<p>Uw e-mailadres is niet juist.</p>';
else
echo '<p>U bent uw naam, e-mail adres, onderwerp of bericht vergeten in te vullen</p>';
}
// form + tabel
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
echo "<form method='post' action='" . $_SERVER['PHP_SELF'] . "'>";
// naam
echo "<tr><td>Naam:</td></tr>";
echo "<tr><td>Naam: <input type=\"text\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
// mail
echo "<tr><td>E-mail adres:</td></tr>";
echo "<tr><td><input type=\"text\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
// mail
echo "<tr><td>Onderwerp:</td></tr>";
echo "<tr><td><input type=\"text\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>";
// space
echo "<tr><td> </td></tr>";
// mail
echo "<tr><td>Bericht:</td></tr>";
echo "<tr><td><TEXTAREA name=\"msggs\" ROWS=\"6\" COLS=\"45\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>";
// space
echo "<tr><td> </td></tr>";
// button
echo "<tr><td> </td></tr>";
echo "<tr><td><input type=\"submit\" name=\"submit\" value=\"Versturen\"></td></tr>";
// sluit form + tabel
echo "</form>";
echo "</table>";
}
// versturen naar
else
{
// set datum
$datum = date("d.m.Y H:i");
// set ip
$ip = $_SERVER['REMOTE_ADDR'];
$inhoud_mail = "===================================================\n";
$inhoud_mail .= "ingevuld mailform. vanaf website";
$inhoud_mail .= "===================================================\n\n";
$inhoud_mail .= "Naam: " . $_POST['naam'] . "\n";
$inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n";
$inhoud_mail .= "Bericht:\n";
$inhoud_mail .= $_POST['msggs'] . "\n\n";
$inhoud_mail .= "Verstuurd op $datum via het ip " . $ip . "\n\n";
$inhoud_mail .= "===================================================\n\n";
$headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";
$headers = stripslashes($headers);
$headers = str_replace("\n", "", $headers); // Verwijder \n
$headers = str_replace("\r", "", $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
$_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers);
echo "<h1>Je e-mail is verstuurd </h1>";
echo "<p>Bedankt voor het versturen van je e-mail. Alle e-mail wordt zo snel mogelijk ";
echo "behandeld.</p>";
}
?>
1.696 views