Ik heb momenteel een emailscript dat ik aan het aanpassen was.
Ik heb hier een registratiesysteem, inlogsysteem aan gekoppeld.
Dus niemand kan zomaar emailen met het systeem.
Ik moet alleen nog even een captcha eraan koppelen (maar dat kan ik zelf wel).
Ik zit alleen met het probleem dat ik het email adres van de afzender automatisch wil laten koppelen aan je inlogemail adres.
Ik gebruik de volgende beveiliging:
<?php
session_start();
if (!isset($_SESSION["email"])){
$tekst = "<h2>U bent nog niet aangemeld.</h2>
U kunt <a href=\"login.php\">hier inloggen</a> of<br>
U kunt zich <a href=\"registreer.php\">hier registreren</a>";
echo($tekst);
exit();
}
if (isset($_POST['u'])){
session_unset(); // alle variabelen vrijgeven
session_destroy();} // sessie afsluiten
?>
Dit systeem werkt, daaronder heb ik het volgende email systeem:
<?php
// Variabelen:
$naam = ""; // Naam van de afzender
$email = ""; // E-mailadres van de ontvanger
$afzender = ""; // E-mailadres van de afzender
$tekst = ""; // Tekst van het e-mailbericht
$vervuild = FALSE; // TRUE als het formulier geen fouten bevat
$verzonden = FALSE; // TRUE als het e-mailbericht is verzonden
$melding = ""; // String voor (fout)meldingen
// Formulier alleen verwerken als er op een knop met de naam 'submit' is geklikt ...
if (isset($_POST['submit'])) {
// ... en deze knop de waarde 'Verzenden' heeft:
if ($_POST['submit'] == "Verzenden") {
$naam = $_POST['n'];
$email = $_POST['e'];
$tekst = $_POST['t'];
$afzender = $_POST['a'];
// HTML-tags en PHP-code verwijderen:
$naam = strip_tags($naam);
$email = strip_tags($email);
$afzender = strip_tags($afzender);
$tekst = strip_tags($tekst);
// Spaties en andere witruimte verwijderen uit de naam en het e-mailadres,
// maar niet uit de tekst van het bericht:
$naam = trim($naam);
$email = trim($email);
$afzender = trim($afzender);
if (strlen($naam) < 1) {
$melding .= "Voer uw <strong>naam</strong> in. ";
$vervuild = TRUE;
}
if (strlen($email) < 1) {
$melding .= "Voer uw <strong>e-mailadres</strong> in. ";
$vervuild = TRUE;
} else {
require_once('is_email.inc.php');
if (!is_email($email)) {
$melding .= "<strong>" . htmlentities($email) . "</strong> is geen geldig e-mailadres. ";
$vervuild = TRUE;
}
if (!is_email($afzender)) {
$melding .= "<strong>" . htmlentities($afzender) . "</strong> is geen geldig e-mailadres. ";
$vervuild = TRUE;
}
}
if (strlen($tekst) < 10) {
$melding .= "Voer een <strong>tekst</strong> van minimaal <strong>10</strong> karakters in. ";
$vervuild = TRUE;
}
// E-mailbericht verzenden als de gegevens niet vervuild zijn:
if (!$vervuild) {
// Constante voor het e-mailadres van de ontvanger:
define("AAN", "$email");
// Constante voor het onderwerp:
define("ONDERWERP", "");
// Headers met de naam en het e-mailadres van de gebruiker:
$headers = "From: \"$naam\" <$afzender>\r\n";
$headers .= "Reply-To: \"$naam\" <$afzender>\r\n";
// Naam en e-mailadres toevoegen aan de tekst:
$tekst .= "\r\n\r\n$naam";
$tekst .= "\r\n<$email>";
if (mail(AAN, ONDERWERP, $tekst, $headers)) {
$verzonden = TRUE;
$melding = "Hartelijk dank voor uw reactie. ";
$melding .= "U ontvangt zo snel mogelijk antwoord. ";
} else {
$verzonden = FALSE;
$melding = "Uw bericht kon niet worden verzonden. ";
$melding .= "Wijzig het e-mailadres of probeer het later nog een keer. ";
}
}
}
}
// Standaardtekst voor instructies instellen als er geen foutmeldingen zijn:
if ($melding == "") {
$melding = "Uw emailbericht moet minimaal 10 karakters bevatten <br>";
$melding .= "<hr>";
}
?>
<h1>Contact</h1>
<p><?php echo $melding; ?></p>
<?php
// Formulier weergeven als de gegevens vervuild zijn
// of het e-mailbericht niet verzonden is:
if ($vervuild or !$verzonden) {
$naam = htmlentities($naam);
$email = htmlentities($email);
$tekst = htmlentities($tekst);
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td width="20%"><label for="n"><span style="text-decoration: underline">N</span>aam:</label></td>
<td width="80%"><input accesskey="n" id="n" name="n" size="56" type="text" value="<?php echo $naam; ?>"></td>
</tr>
<!--
<tr>
<td nowrap><label for="a"><span style="text-decoration: underline">A</span>zender E-mailadres:</label></td>
<td><input accesskey="a" id="a" name="a" type="text" size="56" value="<?php echo $afzender; ?>"></td>
</tr>
<tr>
-->
<td nowrap><label for="e"><span style="text-decoration: underline">O</span>ntvangende E-mailadres:</label></td>
<td><input accesskey="e" id="e" name="e" type="text" size="56" value="<?php echo $email; ?>"></td>
</tr>
<tr>
<tr>
<td colspan="2">
<label for="t"><span style="text-decoration: underline">T</span>ekst van uw e-mailbericht:</label>
</td>
</tr>
<tr>
<td colspan="2"><textarea accesskey="t" cols="60" id="t" name="t" rows="12"><?php echo $tekst; ?></textarea></td>
</tr>
<tr>
<td> </td>
<td align="right">
<input class="knop" name="submit" type="submit" value="Verzenden">
<input class="knop" name="submit" type="submit" value="Wissen">
</td>
</tr>
</table>
</form>
<?php
}
?>
Nu is mijn vraag, hoe ik de gegevens van het emailadres uit de beveiliging kan laten inlezen in het systeem als afzender.
Ik hoop dat iemand een antwoord weet, het zou ook best kunnen dat het niet op deze manier kan.
knop om dit te doen.