Autor |
Nachricht |
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 15.01.2007 17:39
Titel
|
|
|
So, hier Quelltext:
Code: |
<link rel="stylesheet" type="text/css" href="style.css">
<div id="content">
<div class="spalte_ganz" style="outline: 2px solid #AA0000">
<h2 style="margin: 10px">Contact:</h1>
<p style="margin: 10px">This site is under maintence! Please visit again soon.</p>
<?php
// *** Spam Schutz
session_start();
function check_email($email) // Checkt, ob Emails gültig sind
{
$nonascii = "\x80-\xff"; # Non-ASCII-Chars are not allowed
$nqtext = "[^\\\\$nonascii\015\012\"]";
$qchar = "\\\\[^$nonascii]";
$protocol = '(?:mailto:)';
$normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";
$dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
$dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
$dom_tldpart = '[a-zA-Z]{2,5}';
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";
$regex = "$protocol?$user_part\@$domain_part";
// RegEx end
return preg_match("/^$regex$/",$email);
}
if(isset($_POST['Senden']))
{
if (isset($_SESSION['uid']) && isset($_POST['uid']) && $_SESSION['uid'] == $_POST['uid'])
{
// alles ok... mail verschicken...
unset($_SESSION['uid']);
foreach($_POST as $key=>$value) $_POST[$key]=trim(strip_tags($value)); // Leerzeichen und HTML löschen
foreach($_POST as $key=>$value) $_POST[$key]=preg_replace("/\r\n|\r|\n/", "\n", $value); // \r\n und \r ändern in \n
if((!empty($_POST['name'])) && (!empty($_POST['nachricht'])))
{
$name=utf8_decode($_POST['name']);
if(check_email($_POST['email']))
{
$email=$_POST['email'];
}
else
{
$email="";
}
$betreff=$_POST['betreff'];
$nachricht=$_POST['nachricht'];
// === BCC Spam check =======================================================
if
(
eregi("\r",$email) || eregi("\n",$email) || eregi("\r\n",$email)
|| eregi("\r",$name) || eregi("\n",$name) || eregi("\r\n",$name)
)
{
die('Get lost');
}
foreach($_POST as $k=>$v)
{
if(eregi("bcc:",$v)){
die('Get lost');
}
if(eregi("MIME-Version:",$v)){
die('Get lost');
}
if(eregi("Content-Type:",$v)){
die('Get lost');
}
}
// === BCC Spam check end =======================================================
$message="Contactform"
."#################################################################\n"
."\n"
."A new message was written from the contact form.\n"
."\n"
."By: $name, Email: $email\n\n"
."Content: $betreff\n\n"
."Message:\n"
."\n"
."$nachricht";
$message=utf8_decode($message);
if (isset($_POST['empfaenger'])) {
switch ($_POST['empfaenger']) {
case '####':
$email = '-.-@-.de';
break;
case '####':
$email = '-@-.de';
default:
$email = '-@-.de';
}
}
$absender=$name." <".$email.">"; // Absender, wird automatisch erstellt
$titel="$betreff | hannemann Photography - Contact"; // Titel/Betreff der Email - kann geändert werden
$extheader = "From: $absender\n" // Nötige HEADER-Angaben
."Content-Type: text/plain; charset=\"iso-8859-1\"\n"
."Content-Transfer-Encoding: 8bit\n"
."Return-Path: $empfaenger\n"
."X-Mailer: PHP ".phpversion()." / PHP Mail";
mail("$empfaenger","$titel","$message","$extheader");
$fehler='<p style="color: #0c0; font-weight: bold;">Thank you. The message was sent.</p>';
}
else
{
$fehler='<p style="color: #f00; font-weight: bold;">! You have to fill recommended fields <em>(recommended)</em></p>';
}
}
else
{
echo "Sorry. There had been an error. Please try again!";
exit;
}
}
// UID erzeugen für den Spamschutz
$_SESSION['uid'] = md5(microtime()*rand());
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<div id="kontaktform">
<h1>Kontakt</h1>
<hr />
<form action="/kontakt/" method="post" id="kontaktform">
<?php if(isset($fehler)) echo $fehler."\n"; ?>
<p><label for="empfaenger"><b>To:</b></label><br />
<select name="empfaenger" id="empfaenger">
<option value="###" selected="selected">###</option>
<option value="###">###</option>
</select></p>
<p><label for="vorname"><b>prename:</b> <em>(recommended)</em></label><br />
<input type="text" id="vorname" name="vorname" size="30" maxlength="15" tabindex="1" /></p>
<p><label for="nachname"><b>name:</b> <em>(recommended)</em></label><br />
<input type="text" id="nachname" name="nachname" size="30" maxlenghth="20" tabindex="1" /></p>
<p><label for="straße"><b>street, number:</b></label><br />
<input type="text" id="strasse" name="strasse" size="23" maxlength="30" tabindex="1" />
<input type="text" id="hausnr" name="hausnr" size="1" maxlength="3" tabindex="1" /></p>
<p><label for="ort"><b>zip, city:</b></label><br />
<input type="text" id="plz" name="plz" size="4" maxlength="5" tabindex="1" />
<input type="text" id="ort" name="ort" size="20" maxlength="25" tabindex="1" /></p>
<p><label for="tel"><b>phone:</b></label><br />
<input type="text" id="tel" name="tel" size="30" maxlength="20" tabindex="1" /></p>
<p><label for="email"><b>mail-adress:</b> <em>(recommended)</em></label><br />
<input type="text" id="email" name="email" size="30" maxlength="40" tabindex="2" /></p>
<p><label for="betreff"><b>subject:</b></label><br />
<select name="betreff" id="betreff" tabindex="3">
<option value="Allgemeines" selected="selected">general</option>
<option value="Jobangebot">request</option>
<option value="Problem">website</option>
</select></p>
<p><label for="nachricht"><b>your message:</b> <em>(recommended)</em></label><br />
<textarea id="nachricht" name="nachricht" rows="8" cols="30" tabindex="4"></textarea></p>
<p>
<label for="Senden"><input id="Senden" name="Senden" value="Abschicken" type="submit" tabindex="5" /><input type="hidden" name="uid" value="<?php echo $_SESSION['uid']; ?>" /></label>
<laber for="Reset"><input id="Reset" name="Reset" value="reset" type="reset" tabindex="6"
</p>
</form>
</div>
</div>
</div>
|
vorher wird nur eine id variable per GET übergeben, was aber normalerweise kein problem darstellen sollte.
|
|
|
|
|
schachbrett
Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht:
|
Verfasst Mo 15.01.2007 17:57
Titel
|
|
|
ROFL - da steht ja 'n ganzes Buch vor deinem session_start()
|
|
|
|
|
Anzeige
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mo 15.01.2007 17:59
Titel
|
|
|
rtfm!!!
schreib mal in die ERSTE Zeile deiner Datei <?php ob_start()?>
und in die LETZTE Zeile deiner Datei <?php ob_end_flush()?>
dann sollte es funzen. Und lies dir bitte mal die Doku zu php-sessions durch, bevor du hier mehrseitige Spamthreads produzierst...
Zuletzt bearbeitet von am Mo 15.01.2007 17:59, insgesamt 1-mal bearbeitet
|
|
|
|
|
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 15.01.2007 21:49
Titel
|
|
|
OK! Danke für eure Hilfe! Leider steht halt in meinem Buch nix drin und da ich noch n ziemlicher PHP noob bin...
Thx!
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
Verfasst Di 16.01.2007 01:02
Titel
|
|
|
Deswegen möchten wir dir auch die offizielle PHP-Doku ans Herz legen.
Neben der eigentlichen Dokumentation findest Du in den am Ende der Seite
stehenden User-Kommentaren viele nützliche Tipps und Tricks.
http://de.php.net/manual/en/function.session-start.php#71764
Zitat: | I hope this helps spare someone time debugging sessions that won't save.
I had a include that had trailing spaces after the ?> close before the session_start() function. This caused a headers already sent error and the session/cookie failure.
Hope this helps someone else. |
|
|
|
|
|
schachbrett
Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht:
|
Verfasst Di 16.01.2007 08:51
Titel
|
|
|
...oder einfach die Antworten hier nicht schneller lesen, als du sie auch verstehen kannst -- und selbst damit zitier ich nur dastefs zweiten Post (der erste enthielt ja schon die vollstaendige Loesung)!!!
|
|
|
|
|
|
|
|