Contact: AntiSpam, EmailCheck, AutoReply, ADMIN!
Auteur: Nrzonline - 09 juli 2006 - 15:37 - Gekeurd door: Gerard - Hits: 28343 - Aantal punten: 4.50 (12 stemmen)
Script heeft de volgende mogelijkheden:
- IP Gebonden anti spam
- Vrij goede e-mail controle
- Reactie e-mail (aan/uit in admin paneel)
- Reactie e-mail ondertekening (aan/uit in admin paneel)
- Administratie paneel (+login)
- Volledig XHTML 1.0 Transitional
Inlog gegevens-
Gebruikersnaam: administratie
Wachtwoord: wachtwoord
Mocht je goede verbeterings tips hebben, altijd welkom!
Mocht je bugs/scriptfouten tegen komen, even op de hoogste stellen a.u.b!
Mocht je commentaar hebben, natuurlijk ook altijd welkom.
Het gebruik is volgensmij vrij simpel. Maak een database aan, en voer het volgende
SQL toe:
CREATE TABLE `email_antispam` (
`antispam_id` int(11) unsigned NOT NULL auto_increment,
`antispam_ip` varchar(20) NOT NULL default '',
`antispam_tijd` int(30) NOT NULL default '0',
PRIMARY KEY (`antispam_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE `email_config` (
`cfg_gebruiker` varchar(30) NOT NULL default '',
`cfg_wachtwoord` varchar(32) NOT NULL default '',
`cfg_naam` varchar(30) NOT NULL default '',
`cfg_email` varchar(50) NOT NULL default '',
`cfg_spam` int(3) NOT NULL default '0',
`cfg_cookie` int(11) NOT NULL default '0',
`cfg_minlengte` int(4) NOT NULL default '0',
`cfg_wrap` int(3) NOT NULL default '0',
`cfg_html` int(1) NOT NULL default '0',
`cfg_reactie` int(1) NOT NULL default '0',
`cfg_reactbericht` text NOT NULL,
`cfg_onderteken` int(1) NOT NULL default '0',
`cfg_onderbericht` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `email_config` VALUES ('administratie', '701f33b8d1366cde9cb3822256a62c01', 'Uw naam', 'uwemail@host.land', 5, 365, 15, 40, 1, 1, 'Uw email is ontvangen, deze nemen wij zo spoedig mogelijk in behandeling!', 1, 'Bedankt voor uw bericht,\r\n Uw naam');
Bestanden uploaden, en configuratie.php aanpassen (De database connectie gegevens)
De e-mail opbouw heb ik aangepast, maar is orgineel gemaakt door: RdR
De e-mail controle heb ik ietswat aangepast, maar is orgineel gemaakt door: Joël
Ps. Mocht er aardig wat belangstelling zijn in dit script, zou ik hem nog flink
wat proberen te verbeteren en extra mogelijkheden toe te voegen.
|
Code: |
==| configuratie.php |=====================================
<?PHP
// Database connectie maken. GEGEVENS WIJZIGEN!
mysql_connect ('localhost', '####', '####') or die (mysql_error ());
mysql_select_db ('emailscript') or die (mysql_error ());
// Configuraties uit database halen voor de mysql_fetch_assoc functie
$config_query = mysql_query ( "SELECT *
FROM email_config")
or die (mysql_error ());
// Configuratie gegevens in variabelen zetten
while ($config_assoc = mysql_fetch_assoc ($config_query))
{
$admin_gebruiker = $config_assoc['cfg_gebruiker'];
$admin_wachtwoord = $config_assoc['cfg_wachtwoord'];
$eigen_naam = $config_assoc['cfg_naam'];
$eigen_email = $config_assoc['cfg_email'];
$anti_spam = $config_assoc['cfg_spam'];
$cookie_tijd = $config_assoc['cfg_cookie'];
$min_lengte = $config_assoc['cfg_minlengte'];
$wordwrap_lengte = $config_assoc['cfg_wrap'];
$html_email = $config_assoc['cfg_html'];
$reactie_email = $config_assoc['cfg_reactie'];
$reactie_bericht = $config_assoc['cfg_reactbericht'];
$onderteken_email = $config_assoc['cfg_onderteken'];
$onderteken_bericht = $config_assoc['cfg_onderbericht'];
}
$afzender_ip = $_SERVER['REMOTE_ADDR'];
$afzender_host = gethostbyaddr ($afzender_ip);
$datum_tijd = date ('d-m-Y H:i:s');
// Includen van de functies die in de rootfolder is geplaatst
require ('functies.php');
?>
<?PHP // Database connectie maken. GEGEVENS WIJZIGEN! // Configuraties uit database halen voor de mysql_fetch_assoc functie FROM email_config") // Configuratie gegevens in variabelen zetten { $admin_gebruiker = $config_assoc['cfg_gebruiker']; $admin_wachtwoord = $config_assoc['cfg_wachtwoord']; $eigen_naam = $config_assoc['cfg_naam']; $eigen_email = $config_assoc['cfg_email']; $anti_spam = $config_assoc['cfg_spam']; $cookie_tijd = $config_assoc['cfg_cookie']; $min_lengte = $config_assoc['cfg_minlengte']; $wordwrap_lengte = $config_assoc['cfg_wrap']; $html_email = $config_assoc['cfg_html']; $reactie_email = $config_assoc['cfg_reactie']; $reactie_bericht = $config_assoc['cfg_reactbericht']; $onderteken_email = $config_assoc['cfg_onderteken']; $onderteken_bericht = $config_assoc['cfg_onderbericht']; } $afzender_ip = $_SERVER['REMOTE_ADDR']; $datum_tijd = date ('d-m-Y H:i:s'); // Includen van de functies die in de rootfolder is geplaatst require ('functies.php'); ?>
==| functies.php |========================================
<?PHP
// Controleren of de inlog-cookie gegevens juist zijn
function controle_admin ()
{
global $admin_gebruiker; global $admin_wachtwoord;
if (isset ($_COOKIE['admin_gebruiker']) && isset ($_COOKIE['admin_wachtwoord']))
{
if ($_COOKIE['admin_gebruiker'] == $admin_gebruiker)
{
if ($_COOKIE['admin_wachtwoord'] == $admin_wachtwoord)
{
return TRUE;
}
}
}
}
// E-mail controle functie is gemaakt door Joël - sitemasters.be
function email_controle ($email)
{
list($local, $host) = explode("@", $email);
$pattern_local = "^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$";
$pattern_host = "^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$";
$match_local = eregi($pattern_local, $local);
$match_host = eregi($pattern_host, $host);
return ($match_local && $match_host) ? TRUE : FALSE;
}
function plaats_antispam ($afzender_ip, $anti_spam)
{
mysql_query ( "INSERT INTO email_antispam
(antispam_ip,
antispam_tijd)
VALUES
('" . $afzender_ip . "',
'" . (time ()+60*$anti_spam) . "')")
or die (mysql_error ());
}
function opruimen_antispam ()
{
$opruimen_query = ( "DELETE FROM email_antispam
WHERE antispam_tijd < '" . time() . "'")
or die (mysql_error ());
return (mysql_query ($opruimen_query)) ? TRUE : FALSE;
}
function controle_antispam ($afzender_ip)
{
$controle_query = mysql_query ( "SELECT COUNT(*)
FROM email_antispam
WHERE antispam_ip = '$afzender_ip'")
or die (mysql_error ());
return (mysql_result ($controle_query, 0) != 0) ? TRUE : FALSE;
}
?>
<?PHP // Controleren of de inlog-cookie gegevens juist zijn function controle_admin () { if (isset ($_COOKIE['admin_gebruiker']) && isset ($_COOKIE['admin_wachtwoord'])) { if ($_COOKIE['admin_gebruiker'] == $admin_gebruiker) { if ($_COOKIE['admin_wachtwoord'] == $admin_wachtwoord) { return TRUE; } } } } // E-mail controle functie is gemaakt door Joël - sitemasters.be function email_controle ($email) { $pattern_local = "^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$"; $pattern_host = "^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$"; $match_local = eregi($pattern_local, $local); $match_host = eregi($pattern_host, $host); return ($match_local && $match_host) ? TRUE : FALSE; } function plaats_antispam ($afzender_ip, $anti_spam) { (antispam_ip, antispam_tijd) VALUES ('" . $afzender_ip . "', '" . (time ()+60*$anti_spam) . "')") } function opruimen_antispam () { $opruimen_query = ( "DELETE FROM email_antispam WHERE antispam_tijd < '" . time() . "'") } function controle_antispam ($afzender_ip) { FROM email_antispam WHERE antispam_ip = '$afzender_ip'") return (mysql_result ($controle_query, 0) != 0) ? TRUE : FALSE; } ?>
==| administratie.php |=====================================
<?PHP
// Session en header starten, en alle fouten weergeven in browser
error_reporting (E_ALL);
session_start ();
ob_start ();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Administratie Paneel</title>
</head>
<body>
<?PHP
// Includen van de configuratie die in de rootfolder is geplaatst
require ('configuratie.php');
// Niet als admin ingelogged, weergave inlog formulier
if (!controle_admin ())
{
if (!isset ($_POST['inloggen']))
{
if (!isset ($_SESSION['foutmelding']))
{
$_SESSION['foutmelding'] = '';
}
echo $_SESSION['foutmelding'];
?>
<form action="" method="post">
Gebruikersnaam: <input name="gebruiker" type="text" size="15" maxlength="30" />
Wachtwoord: <input name="wachtwoord" type="password" size="15" maxlength="20" />
<input name="inloggen" type="submit" value="Admin Inloggen" />
</form>
<?PHP
$_SESSION['foutmelding'] = '';
}
else
{
if (empty ($_POST['gebruiker']) && empty ($_POST['wachtwoord']))
{
$_SESSION['foutmelding'] = '<strong>Beide velden zijn verplicht!</strong>';
header ('location: administratie.php');
}
else
{
if ($_POST['gebruiker'] != $admin_gebruiker || md5($_POST['wachtwoord']) != $admin_wachtwoord)
{
$_SESSION['foutmelding'] = '<strong>Login gegevens zijn onjuist!</strong>';
header ('location: administratie.php');
}
else
{
setcookie ('admin_gebruiker', $admin_gebruiker, time()+60*60*24*$cookie_tijd);
setcookie ('admin_wachtwoord', $admin_wachtwoord, time()+60*60*24*$cookie_tijd);
$_SESSION['inlog_melding'] = '';
header ('location: administratie.php');
}
}
}
}
// Wel als admin ingelogged, weergave configuraties
else
{
// Button om uit te loggen uit het administratie paneel
?>
<form action="" method="post">
<input name="uitloggen" type="submit" value="Admin Uitloggen" /><br /><br />
</form>
<?PHP
if (isset ($_POST['uitloggen']))
{
setcookie ('admin_gebruiker', '', time()-1);
setcookie ('admin_wachtwoord', '', time()-1);
header ('location: administratie.php');
}
if (!isset ($_SESSION['inlog_melding']))
{
$_SESSION['inlog_melding'] = '';
}
echo $_SESSION['inlog_melding'];
?>
<form action="" method="post">
Admin Gebruikersnaam: <input name="admin_gebruiker" type="text" size="15" maxlength="20" value="<?=$admin_gebruiker;?>" /><br />
Admin Wachtwoord: <input name="admin_wachtwoord" type="password" size="15" maxlength="20" /><br />
Wachtwoord Herhalen: <input name="herhaal_wachtwoord" type="password" size="15" maxlength="20" /><br />
<input name="inlog_update" type="submit" value="Inlog gegevens updaten" /><br /><br />
</form>
<?PHP
$_SESSION['inlog_melding'] = '';
if (isset ($_POST['inlog_update']))
{
if (empty ($_POST['admin_gebruiker']) || empty ($_POST['admin_wachtwoord']) || empty ($_POST['herhaal_wachtwoord']))
{
$_SESSION['inlog_melding'] = '<strong>Alle drie de velden zijn verplicht!</strong>';
header ('location: administratie.php');
}
elseif ($_POST['admin_wachtwoord'] != $_POST['herhaal_wachtwoord'])
{
$_SESSION['inlog_foutmelding'] = '<strong>De wachtwoorden zijn niet gelijk aan elkaar!</strong>';
header ('location: administratie.php');
}
else
{
mysql_query ( "UPDATE email_config
SET cfg_gebruiker = '" . $_POST['admin_gebruiker'] . "',
cfg_wachtwoord = '" . md5 ($_POST['admin_wachtwoord']) . "'")
or die (mysql_error ());
$_SESSION['foutmelding'] = '<strong>Uw login gegevens zijn gewijzigd, opnieuw inloggen alst u blieft</strong>';
header ('location: administratie.php');
}
}
if (!isset ($_SESSION['config_melding']))
{
$_SESSION['config_melding'] = '';
}
echo $_SESSION['config_melding'];
?>
<form action="" method="post">
E-mail eigenaar naam: <input name="gebruiker_naam" type="text" size="20" maxlength="30" value="<?=$eigen_naam;?>" /><br />
Ontvangend e-mail adres: <input name="gebruiker_email" type="text" size="25" maxlength="50" value="<?=$eigen_email;?>" /><br /><br />
Anti-spamtijd in minuten: <input name="anti_spam" type="text" size="4" maxlength="3" value="<?=$anti_spam;?>" /><br />
Admin inlogtijd in dagen: <input name="cookie_tijd" type="text" size="4" maxlength="6" value="<?=$cookie_tijd;?>" /><br />
Minimum # karakters bericht: <input name="minimum_lengte" type="text" size="4" maxlength="6" value="<?=$min_lengte;?>" /><br />
Zinsafbreking na # karakters: <input name="wrap_lengte" type="text" size="4" maxlength="3" value="<?=$wordwrap_lengte;?>" /><br />
<input name="config_update" type="submit" value="Configuratie Updaten" /><br /><br />
</form>
<?PHP
$_SESSION['config_melding'] = '';
if (isset ($_POST['config_update']))
{
if ( !is_numeric ($_POST['anti_spam']) || !is_numeric ($_POST['cookie_tijd']) || !is_numeric ($_POST['minimum_lengte']) || !is_numeric ($_POST['wrap_lengte']))
{
$_SESSION['config_melding'] = '<strong>Tijden en lengtes moeten met nummers worden ingevuld!</strong>';
header ('location: administratie.php');
}
else
{
mysql_query ( "UPDATE email_config
SET cfg_naam = '" . $_POST['gebruiker_naam'] . "',
cfg_email = '" . $_POST['gebruiker_email'] . "',
cfg_spam = '" . $_POST['anti_spam'] . "',
cfg_cookie = '" . $_POST['cookie_tijd'] . "',
cfg_minlengte = '" . $_POST['minimum_lengte'] . "',
cfg_wrap = '" . $_POST['wrap_lengte'] . "'")
or die (mysql_error ());
$_SESSION['config_melding'] = '<strong>Gegevens zijn succesvol gewijzigd</strong>';
header ('location: administratie.php');
}
}
if (!isset ($_SESSION['email_config_melding']))
{
$_SESSION['email_config_melding'] = '';
}
echo $_SESSION['email_config_melding'];
?>
<form action="" method="post">
Html e-mail berichten:
aan<input name="html_email" type="radio" value="1"
<?PHP if ($html_email == 1){ echo 'checked'; }?> />
uit<input name="html_email" type="radio" value="0"
<?PHP if ($html_email == 0){ echo 'checked'; }?> /><br />
Automatische reactie:
aan<input name="reactie_email" type="radio" value="1"
<?PHP if ($reactie_email == 1){ echo 'checked'; }?> />
uit<input name="reactie_email" type="radio" value="0"
<?PHP if ($reactie_email == 0){ echo 'checked'; }?> /><br />
<textarea name="reactie_bericht"><?=$reactie_bericht;?></textarea><br /><br />
E-mail ondertekening:
aan<input name="onderteken_email" type="radio" value="1"
<?PHP if ($onderteken_email == 1){ echo 'checked'; }?> />
uit<input name="onderteken_email" type="radio" value="0"
<?PHP if ($onderteken_email == 0){ echo 'checked'; }?> /><br />
<textarea name="onderteken_bericht"><?=$onderteken_bericht;?></textarea><br />
<input name="email_config_update" type="submit" value="Configuratie Updaten" /><br /><br />
</form>
<?PHP
$_SESSION['email_config_melding'] = '';
if (isset ($_POST['email_config_update']))
{
mysql_query ( "UPDATE email_config
SET cfg_html = '" . $_POST['html_email'] . "',
cfg_reactie = '" . $_POST['reactie_email'] . "',
cfg_reactbericht = '" . $_POST['reactie_bericht'] . "',
cfg_onderteken = '" . $_POST['onderteken_email'] . "',
cfg_onderbericht = '" . $_POST['onderteken_bericht'] . "'")
or die (mysql_error ());
$_SESSION['email_config_melding'] = '<strong>Gegevens zijn succesvol gewijzigd</strong>';
header ('location: administratie.php');
}
}
?>
</body>
</html>
<?PHP // Session en header starten, en alle fouten weergeven in browser ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Administratie Paneel</title> </head> <body> <?PHP // Includen van de configuratie die in de rootfolder is geplaatst require ('configuratie.php'); // Niet als admin ingelogged, weergave inlog formulier if (!controle_admin ()) { if (!isset ($_POST['inloggen'])) { if (!isset ($_SESSION['foutmelding'])) { $_SESSION['foutmelding'] = ''; } echo $_SESSION['foutmelding']; ?> <form action="" method="post"> Gebruikersnaam: <input name="gebruiker" type="text" size="15" maxlength="30" /> Wachtwoord: <input name="wachtwoord" type="password" size="15" maxlength="20" /> <input name="inloggen" type="submit" value="Admin Inloggen" /> </form> <?PHP $_SESSION['foutmelding'] = ''; } else { if (empty ($_POST['gebruiker']) && empty ($_POST['wachtwoord'])) { $_SESSION['foutmelding'] = '<strong>Beide velden zijn verplicht!</strong>'; header ('location: administratie.php'); } else { if ($_POST['gebruiker'] != $admin_gebruiker || md5($_POST['wachtwoord']) != $admin_wachtwoord) { $_SESSION['foutmelding'] = '<strong>Login gegevens zijn onjuist!</strong>'; header ('location: administratie.php'); } else { setcookie ('admin_gebruiker', $admin_gebruiker, time()+60*60*24*$cookie_tijd); setcookie ('admin_wachtwoord', $admin_wachtwoord, time()+60*60*24*$cookie_tijd); $_SESSION['inlog_melding'] = ''; header ('location: administratie.php'); } } } } // Wel als admin ingelogged, weergave configuraties else { // Button om uit te loggen uit het administratie paneel ?> <form action="" method="post"> <input name="uitloggen" type="submit" value="Admin Uitloggen" /><br /><br /> </form> <?PHP if (isset ($_POST['uitloggen'])) { header ('location: administratie.php'); } if (!isset ($_SESSION['inlog_melding'])) { $_SESSION['inlog_melding'] = ''; } echo $_SESSION['inlog_melding']; ?> <form action="" method="post"> Admin Gebruikersnaam: <input name="admin_gebruiker" type="text" size="15" maxlength="20" value="<?=$admin_gebruiker;?>" /><br /> Admin Wachtwoord: <input name="admin_wachtwoord" type="password" size="15" maxlength="20" /><br /> Wachtwoord Herhalen: <input name="herhaal_wachtwoord" type="password" size="15" maxlength="20" /><br /> <input name="inlog_update" type="submit" value="Inlog gegevens updaten" /><br /><br /> </form> <?PHP $_SESSION['inlog_melding'] = ''; if (isset ($_POST['inlog_update'])) { if (empty ($_POST['admin_gebruiker']) || empty ($_POST['admin_wachtwoord']) || empty ($_POST['herhaal_wachtwoord'])) { $_SESSION['inlog_melding'] = '<strong>Alle drie de velden zijn verplicht!</strong>'; header ('location: administratie.php'); } elseif ($_POST['admin_wachtwoord'] != $_POST['herhaal_wachtwoord']) { $_SESSION['inlog_foutmelding'] = '<strong>De wachtwoorden zijn niet gelijk aan elkaar!</strong>'; header ('location: administratie.php'); } else { SET cfg_gebruiker = '" . $_POST['admin_gebruiker'] . "', cfg_wachtwoord = '" . md5 ($_POST['admin_wachtwoord']) . "'") $_SESSION['foutmelding'] = '<strong>Uw login gegevens zijn gewijzigd, opnieuw inloggen alst u blieft</strong>'; header ('location: administratie.php'); } } if (!isset ($_SESSION['config_melding'])) { $_SESSION['config_melding'] = ''; } echo $_SESSION['config_melding']; ?> <form action="" method="post"> E-mail eigenaar naam: <input name="gebruiker_naam" type="text" size="20" maxlength="30" value="<?=$eigen_naam;?>" /><br /> Ontvangend e-mail adres: <input name="gebruiker_email" type="text" size="25" maxlength="50" value="<?=$eigen_email;?>" /><br /><br /> Anti-spamtijd in minuten: <input name="anti_spam" type="text" size="4" maxlength="3" value="<?=$anti_spam;?>" /><br /> Admin inlogtijd in dagen: <input name="cookie_tijd" type="text" size="4" maxlength="6" value="<?=$cookie_tijd;?>" /><br /> Minimum # karakters bericht: <input name="minimum_lengte" type="text" size="4" maxlength="6" value="<?=$min_lengte;?>" /><br /> Zinsafbreking na # karakters: <input name="wrap_lengte" type="text" size="4" maxlength="3" value="<?=$wordwrap_lengte;?>" /><br /> <input name="config_update" type="submit" value="Configuratie Updaten" /><br /><br /> </form> <?PHP $_SESSION['config_melding'] = ''; if (isset ($_POST['config_update'])) { { $_SESSION['config_melding'] = '<strong>Tijden en lengtes moeten met nummers worden ingevuld!</strong>'; header ('location: administratie.php'); } else { SET cfg_naam = '" . $_POST['gebruiker_naam'] . "', cfg_email = '" . $_POST['gebruiker_email'] . "', cfg_spam = '" . $_POST['anti_spam'] . "', cfg_cookie = '" . $_POST['cookie_tijd'] . "', cfg_minlengte = '" . $_POST['minimum_lengte'] . "', cfg_wrap = '" . $_POST['wrap_lengte'] . "'") $_SESSION['config_melding'] = '<strong>Gegevens zijn succesvol gewijzigd</strong>'; header ('location: administratie.php'); } } if (!isset ($_SESSION['email_config_melding'])) { $_SESSION['email_config_melding'] = ''; } echo $_SESSION['email_config_melding']; ?> <form action="" method="post"> Html e-mail berichten: aan<input name="html_email" type="radio" value="1" <?PHP if ($html_email == 1){ echo 'checked'; }?> /> uit<input name="html_email" type="radio" value="0" <?PHP if ($html_email == 0){ echo 'checked'; }?> /><br /> Automatische reactie: aan<input name="reactie_email" type="radio" value="1" <?PHP if ($reactie_email == 1){ echo 'checked'; }?> /> uit<input name="reactie_email" type="radio" value="0" <?PHP if ($reactie_email == 0){ echo 'checked'; }?> /><br /> <textarea name="reactie_bericht"><?=$reactie_bericht;?></textarea><br /><br /> E-mail ondertekening: aan<input name="onderteken_email" type="radio" value="1" <?PHP if ($onderteken_email == 1){ echo 'checked'; }?> /> uit<input name="onderteken_email" type="radio" value="0" <?PHP if ($onderteken_email == 0){ echo 'checked'; }?> /><br /> <textarea name="onderteken_bericht"><?=$onderteken_bericht;?></textarea><br /> <input name="email_config_update" type="submit" value="Configuratie Updaten" /><br /><br /> </form> <?PHP $_SESSION['email_config_melding'] = ''; if (isset ($_POST['email_config_update'])) { SET cfg_html = '" . $_POST['html_email'] . "', cfg_reactie = '" . $_POST['reactie_email'] . "', cfg_reactbericht = '" . $_POST['reactie_bericht'] . "', cfg_onderteken = '" . $_POST['onderteken_email'] . "', cfg_onderbericht = '" . $_POST['onderteken_bericht'] . "'") $_SESSION['email_config_melding'] = '<strong>Gegevens zijn succesvol gewijzigd</strong>'; header ('location: administratie.php'); } } ?> </body> </html>
==| mailform.php |========================================
<?PHP
// Session en header starten, en alle fouten weergeven in browser
error_reporting (E_ALL);
session_start ();
ob_start ();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Nrzonline's Mailformulier</title>
</head>
<body>
<?PHP
// Includen van de configuratie die in de rootfolder is geplaatst
require ('configuratie.php');
// Antispam lijst opruimen
if (opruimen_antispam () !== TRUE)
{
die ('Fout bij het opruimen van de antispam');
}
// Lege sessions aanmaken om foutmeldingen te voorkomen
if (empty ($_SESSION['naam'])){ $_SESSION['naam'] = ''; }
if (empty ($_SESSION['email'])){ $_SESSION['email'] = ''; }
if (empty ($_SESSION['onderwerp'])){ $_SESSION['onderwerp'] = ''; }
if (empty ($_SESSION['gebruiker_bericht'])){ $_SESSION['gebruiker_bericht'] = ''; }
if (empty ($_SESSION['form_melding'])) { $_SESSION['form_melding'] = ''; }
// Melding weergeven over verzending en antispam
if (controle_antispam ($afzender_ip) == TRUE)
{
echo $_SESSION['form_melding'] . '<br>';
echo '<strong>Antispam ingeschakeld (Tijd: ' . $anti_spam . ' minuten)</strong>';
$_SESSION['form_melding'] = '';
}
else
{
// Het formulier wat de gebruiker moet invullen
?>
<form action="" method="post">
Volledige naam: <input name="naam" type="text" size="30" maxlength="30" value="<?PHP echo $_SESSION['naam']; ?>" /><br />
Uw e-mail adres: <input name="email" type="text" size="30" maxlength="50" value="<?PHP echo $_SESSION['email']; ?>" /><br />
E-mail onderwerp: <input name="onderwerp" type="text" size="38" maxlength="60" value="<?PHP echo $_SESSION['onderwerp']; ?>" /><br />
E-mail bericht:
<textarea name="bericht" cols="30" rows="4"><?PHP echo $_SESSION['gebruiker_bericht']; ?></textarea><br />
<input name="verzenden" type="submit" value="controleren en verzenden" />
</form>
<?PHP
// (fout)Melding session weergeven, daarna leegmaken
echo $_SESSION['form_melding'];
$_SESSION['form_melding'] = '';
// E-mail bericht aanmaken, gegevens controleren en vervolgens verzenden
if (isset ($_POST['verzenden']))
{
// De sessions met de ingevoerde gegevens updaten
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['onderwerp'] = $_POST['onderwerp'];
$_SESSION['gebruiker_bericht'] = $_POST['bericht'];
// Email uitwerking zonder HTML
if ($html_email !== TRUE)
{
$headers = "Ontvangen via online contact formulier\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$bericht = "Naam: " . $_SESSION['naam'] . "\r\n";
$bericht .= "E-Mail: " . $_SESSION['email'] . "\r\n";
$bericht .= "Onderwerp: " . $_SESSION['onderwerp'] . "\r\n";
$bericht .= "---------------------------------------------\r\n";
$bericht .= "Bericht:\n" . wordwrap ($_SESSION['gebruiker_bericht'], $wordwrap_lengte, "\r\n", 1) . "\r\n";
$bericht .= "---------------------------------------------\r\n";
$bericht .= "Afzender IP: " . $afzender_ip . "\r\n";
$bericht .= "Afzender Host: " .$afzender_host . "\r\n";
}
// Email uitwerking met HTML
else
{
$headers = "Ontvangen via online contact formulier\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Return-Path: Mail-Error <" . $eigen_naam . ">\r\n";
$bericht = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN";
$bericht .= "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">";
$bericht .= "<html xmlns=\"http://www.w3.org/1999/xhtml\">";
$bericht .= "<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />";
$bericht .= "<br />";
$bericht .= "<table>";
$bericht .= "<tr><td>Naam:</td><td>" . $_SESSION['naam'] . "</td></tr>";
$bericht .= "<tr><td>E-Mail:</td><td>" . $_SESSION['email'] . " (<a href=\"mailto:" . $_SESSION['email'] . "\">Reageer</a>)</td></tr>";
$bericht .= "<tr><td>Ondewerp:</td><td>" . $_SESSION['onderwerp'] . "</td></tr>";
$bericht .= "<br>";
$bericht .= "<tr><td>Bericht:</td><td>" . $_SESSION['gebruiker_bericht'] . "</td></tr>";
$bericht .= "<tr><td colspan=\"2\"> </td></tr>";
$bericht .= "<br>";
$bericht .= "<tr><td>Datum:</td><td>" . $datum_tijd . "</td></tr>";
$bericht .= "<tr><td>Afzender IP:</td><td>" . $afzender_ip . "</td></tr>";
$bericht .= "<tr><td>Afzender Host:</td><td>" . $afzender_host . "</td></tr>";
$bericht .= "</table></body></html>";
}
// De controles van de ingevoerde gegevens
if (empty ($_SESSION['naam']) || empty ($_SESSION['email']) || empty ($_SESSION['onderwerp']) || empty ($_SESSION['gebruiker_bericht']))
{
$_SESSION['form_melding'] = '<strong>Alle vier de velden moeten worden ingevuld</strong>';
header ('location: mailform.php');
}
elseif (strlen($_SESSION['naam']) <= 2)
{
$_SESSION['form_melding'] = '<strong>Uw naam is te kort, gelieve uw volledige naam te gebruiken</strong>';
header ('location: mailform.php');
}
elseif (email_controle ($_SESSION['email']) != TRUE)
{
$_SESSION['form_melding'] = '<strong>Uw gekozen e-mail adres is niet geldig</strong>';
header ('location: mailform.php');
}
elseif (strlen($_SESSION['gebruiker_bericht']) <= $min_lengte)
{
$_SESSION['form_melding'] = '<strong>Uw bericht is te klein (min: ' . $min_lengte . ' karakters)</strong>';
header ('location: mailform.php');
}
// Alles in orde, email kan eindelijk verstuurd worden
else
{
if (mail ($eigen_email, $_SESSION['onderwerp'], $bericht, $headers))
{
// Automatische reactie e-mail maken, als deze is aangezet
if ($reactie_email == 1)
{
$headers_reactie = "Ontvangen via online contact formulier\r\n";
$headers_reactie .= "MIME-Version: 1.0\r\n";
$headers_reactie .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$bericht_reactie = "Deze e-mail is automatisch gegenereerd \r\n";
$bericht_reactie .= "--------------------------------------\r\n";
$bericht_reactie .= wordwrap ($reactie_bericht, $wordwrap_lengte, "\r\n", 1) . "\r\n";
// Reactie e-mail ondertekenen, als deze is aangezet
if ($onderteken_email == 1)
{
$bericht_reactie .= "--------------------------------------\r\n";
$bericht_reactie .= $onderteken_bericht . "\r\n";
}
// Controleren of reactie e-mail is verzonden, zoja een bevestiging en antispam aanzetten
if (mail ($_SESSION['email'], 'E-Mail Ontvangen, Bedankt!', $bericht_reactie, $headers_reactie))
{
$_SESSION['form_melding'] = '<strong>Uw e-mail is verzonden, een auto-reactie is verstuurd!</strong>';
plaats_antispam ($afzender_ip, $anti_spam);
header ('location: mailform.php');
}
// De bevestigings e-mail kon niet worden verzonden, foutmelding weergeven
else
{
$_SESSION['form_melding'] = '<strong>FATALE FOUT bij verzenden, mogelijk doet de mailserver het niet!</strong>';
header ('location: mailform.php');
}
}
// Reactie e-mail staat niet aan, gewone e-mail is verzonden en antispam aanzetten
else
{
$_SESSION['form_melding'] = '<strong>Uw e-mail is verzonden!</strong>';
plaats_antispam ($afzender_ip, $anti_spam);
header ('location: mailform.php');
}
}
// De gebruiker zijn e-mail kon niet worden verzonden, een foutmelding
else
{
$_SESSION['form_melding'] = '<strong>FATALE FOUT bij verzenden, mogelijk doet de mailserver het niet!</strong>';
header ('location: mailform.php');
}
}
}
}
?>
</body>
</html>
<?PHP // Session en header starten, en alle fouten weergeven in browser ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Nrzonline's Mailformulier</title> </head> <body> <?PHP // Includen van de configuratie die in de rootfolder is geplaatst require ('configuratie.php'); // Antispam lijst opruimen if (opruimen_antispam () !== TRUE) { die ('Fout bij het opruimen van de antispam'); } // Lege sessions aanmaken om foutmeldingen te voorkomen if (empty ($_SESSION['naam'])){ $_SESSION['naam'] = ''; } if (empty ($_SESSION['email'])){ $_SESSION['email'] = ''; } if (empty ($_SESSION['onderwerp'])){ $_SESSION['onderwerp'] = ''; } if (empty ($_SESSION['gebruiker_bericht'])){ $_SESSION['gebruiker_bericht'] = ''; } if (empty ($_SESSION['form_melding'])) { $_SESSION['form_melding'] = ''; } // Melding weergeven over verzending en antispam if (controle_antispam ($afzender_ip) == TRUE) { echo $_SESSION['form_melding'] . '<br>'; echo '<strong>Antispam ingeschakeld (Tijd: ' . $anti_spam . ' minuten)</strong>'; $_SESSION['form_melding'] = ''; } else { // Het formulier wat de gebruiker moet invullen ?> <form action="" method="post"> Volledige naam: <input name="naam" type="text" size="30" maxlength="30" value=" <?PHP echo $_SESSION['naam']; ?>" /><br /> Uw e-mail adres: <input name="email" type="text" size="30" maxlength="50" value=" <?PHP echo $_SESSION['email']; ?>" /><br /> E-mail onderwerp: <input name="onderwerp" type="text" size="38" maxlength="60" value=" <?PHP echo $_SESSION['onderwerp']; ?>" /><br /> E-mail bericht: <textarea name="bericht" cols="30" rows="4"> <?PHP echo $_SESSION['gebruiker_bericht']; ?></textarea><br /> <input name="verzenden" type="submit" value="controleren en verzenden" /> </form> <?PHP // (fout)Melding session weergeven, daarna leegmaken echo $_SESSION['form_melding']; $_SESSION['form_melding'] = ''; // E-mail bericht aanmaken, gegevens controleren en vervolgens verzenden if (isset ($_POST['verzenden'])) { // De sessions met de ingevoerde gegevens updaten $_SESSION['naam'] = $_POST['naam']; $_SESSION['email'] = $_POST['email']; $_SESSION['onderwerp'] = $_POST['onderwerp']; $_SESSION['gebruiker_bericht'] = $_POST['bericht']; // Email uitwerking zonder HTML if ($html_email !== TRUE) { $headers = "Ontvangen via online contact formulier\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $bericht = "Naam: " . $_SESSION['naam'] . "\r\n"; $bericht .= "E-Mail: " . $_SESSION['email'] . "\r\n"; $bericht .= "Onderwerp: " . $_SESSION['onderwerp'] . "\r\n"; $bericht .= "---------------------------------------------\r\n"; $bericht .= "Bericht:\n" . wordwrap ($_SESSION['gebruiker_bericht'], $wordwrap_lengte, "\r\n", 1) . "\r\n"; $bericht .= "---------------------------------------------\r\n"; $bericht .= "Afzender IP: " . $afzender_ip . "\r\n"; $bericht .= "Afzender Host: " .$afzender_host . "\r\n"; } // Email uitwerking met HTML else { $headers = "Ontvangen via online contact formulier\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "Return-Path: Mail-Error <" . $eigen_naam . ">\r\n"; $bericht = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN"; $bericht .= "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"; $bericht .= "<html xmlns=\"http://www.w3.org/1999/xhtml\">"; $bericht .= "<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />"; $bericht .= "<br />"; $bericht .= "<table>"; $bericht .= "<tr><td>Naam:</td><td>" . $_SESSION['naam'] . "</td></tr>"; $bericht .= "<tr><td>E-Mail:</td><td>" . $_SESSION['email'] . " (<a href=\"mailto:" . $_SESSION['email'] . "\">Reageer</a>)</td></tr>"; $bericht .= "<tr><td>Ondewerp:</td><td>" . $_SESSION['onderwerp'] . "</td></tr>"; $bericht .= "<br>"; $bericht .= "<tr><td>Bericht:</td><td>" . $_SESSION['gebruiker_bericht'] . "</td></tr>"; $bericht .= "<tr><td colspan=\"2\"> </td></tr>"; $bericht .= "<br>"; $bericht .= "<tr><td>Datum:</td><td>" . $datum_tijd . "</td></tr>"; $bericht .= "<tr><td>Afzender IP:</td><td>" . $afzender_ip . "</td></tr>"; $bericht .= "<tr><td>Afzender Host:</td><td>" . $afzender_host . "</td></tr>"; $bericht .= "</table></body></html>"; } // De controles van de ingevoerde gegevens if (empty ($_SESSION['naam']) || empty ($_SESSION['email']) || empty ($_SESSION['onderwerp']) || empty ($_SESSION['gebruiker_bericht'])) { $_SESSION['form_melding'] = '<strong>Alle vier de velden moeten worden ingevuld</strong>'; header ('location: mailform.php'); } elseif (strlen($_SESSION['naam']) <= 2) { $_SESSION['form_melding'] = '<strong>Uw naam is te kort, gelieve uw volledige naam te gebruiken</strong>'; header ('location: mailform.php'); } elseif (email_controle ($_SESSION['email']) != TRUE) { $_SESSION['form_melding'] = '<strong>Uw gekozen e-mail adres is niet geldig</strong>'; header ('location: mailform.php'); } elseif (strlen($_SESSION['gebruiker_bericht']) <= $min_lengte) { $_SESSION['form_melding'] = '<strong>Uw bericht is te klein (min: ' . $min_lengte . ' karakters)</strong>'; header ('location: mailform.php'); } // Alles in orde, email kan eindelijk verstuurd worden else { if (mail ($eigen_email, $_SESSION['onderwerp'], $bericht, $headers)) { // Automatische reactie e-mail maken, als deze is aangezet if ($reactie_email == 1) { $headers_reactie = "Ontvangen via online contact formulier\r\n"; $headers_reactie .= "MIME-Version: 1.0\r\n"; $headers_reactie .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $bericht_reactie = "Deze e-mail is automatisch gegenereerd \r\n"; $bericht_reactie .= "--------------------------------------\r\n"; $bericht_reactie .= wordwrap ($reactie_bericht, $wordwrap_lengte, "\r\n", 1) . "\r\n"; // Reactie e-mail ondertekenen, als deze is aangezet if ($onderteken_email == 1) { $bericht_reactie .= "--------------------------------------\r\n"; $bericht_reactie .= $onderteken_bericht . "\r\n"; } // Controleren of reactie e-mail is verzonden, zoja een bevestiging en antispam aanzetten if (mail ($_SESSION['email'], 'E-Mail Ontvangen, Bedankt!', $bericht_reactie, $headers_reactie)) { $_SESSION['form_melding'] = '<strong>Uw e-mail is verzonden, een auto-reactie is verstuurd!</strong>'; plaats_antispam ($afzender_ip, $anti_spam); header ('location: mailform.php'); } // De bevestigings e-mail kon niet worden verzonden, foutmelding weergeven else { $_SESSION['form_melding'] = '<strong>FATALE FOUT bij verzenden, mogelijk doet de mailserver het niet!</strong>'; header ('location: mailform.php'); } } // Reactie e-mail staat niet aan, gewone e-mail is verzonden en antispam aanzetten else { $_SESSION['form_melding'] = '<strong>Uw e-mail is verzonden!</strong>'; plaats_antispam ($afzender_ip, $anti_spam); header ('location: mailform.php'); } } // De gebruiker zijn e-mail kon niet worden verzonden, een foutmelding else { $_SESSION['form_melding'] = '<strong>FATALE FOUT bij verzenden, mogelijk doet de mailserver het niet!</strong>'; header ('location: mailform.php'); } } } } ?> </body> </html>
Download code (.txt)
|
|
Stemmen |
Niet ingelogd. |
|