das klappt irgendwie nicht so richtig:
hier mal der Code:
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>artmedic tell a friend</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="copyright" content="Ellen Baitinger, artmedic webdesign, http://www.artmedic.de">
<!--
#############################################################################
# artmedic Tell-a-Friend Version 2.0
# Copyright (c) 2004 Ellen Baitinger, artmedic webdesign
# http://www.artmedic.de (kontakt@artmedic.de)
#
#Sie können dieses Script kostenlos einsetzen, solange Sie die Links auf artmedic webdesign
#und diese Hinweise intakt lassen. Für evl. auftretende Schäden, die durch die
#Verwendung dieses Scripts entstehen, kann artmedic webdesign nicht
#haftbar gemacht werden. Die Benutzung erfolgt auf eigene Gefahr des Anwenders.
#############################################################################
-->
<?
//edit these variables, diese zwei Variablen ändern
//Homepage-URL, Basisverzeichnis der Homepage mit Backslash am Ende
//homepage-URL with backslash at end
$url = "http://YourSite.com/";
//Limit: Anzahl von möglichen Empfehlungen innerhalb von $sperrzeit
//Count of possible recommendation within $sperrzeit
$limit = "10";
//Sperrzeit, falls mehr als $limit Empfehlungen abgegeben wurden von der gleichen IP-Adresse in Sekunden
//timelimit, if more than $limit mails have been sent by same IP-address in seconds
$sperrzeit = "3600"; // 1h
//Textdatei für die Daten, bitte aus Datenschutzgründen umbenennen
//textfile for saving all data, please rename for security reasons
$iplog = "tellafriend.txt";
//ab hier keinen PHP-Code ändern, wenn Sie nicht genau wissen, was Sie tun
//Do not change PHP-Code past here
$time = time();
$id = $_GET[id];
$filled = $_POST[filled];
?>
<style type="text/css">
<!--
.artmedic_box {
padding: 4px;
width: 400px;
border: 1px solid #000000;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
}
.artmedic_link {
font-size: 10px;
font-weight: normal;
color: #000000;
text-decoration: underline;
}
.artmedic_titel {
font-weight: bold;
padding: 2px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #999999;
}
.artmedic_text {
font-weight: normal;
padding: 2px;
}
-->
</style>
</head>
<body>
<?
if($filled == "")
{
?>
<div class="artmedic_box">
<div class="artmedic_titel">Diese Seite weiterempfehlen</div>
<form name="form1" method="post" action="tellafriend.php">
<div>Füllen Sie dazu bitte folgendes Formular aus. Ihre
Eingaben werden nur für diesen Zweck verwendet und nicht gespeichert.<br>
<br>
</div>
<label for="sendername">Ihr Name* </label><br>
<input name="sendername" type="text" id="sendername" size="40"><br>
<label for="senderemail">Ihre E-Mail* </label>
<br>
<input name="senderemail" type="text" id="senderemail" size="40"><br>
<label for="recipientname">Empängername*</label><br>
<input name="recipientname" type="text" id="recipientname" size="40"><br>
<label for="recipientemail">E-Mail des Empfängers*</label>
<br>
<input name="recipientemail" type="text" id="recipientemail" size="40"><br>
<label for="anmerkungen">Ihre Nachricht </label>
an den Empfänger <br>
<textarea name="anmerkungen" cols="40" rows="3" id="anmerkungen"></textarea><br>
<p><br>
<br>
</p>
<p>
<p>Um Spam zu verhindern trage das Ergebnis rechts ein. Danke. </p>
<tr><td><img src="rechen-captcha.php"></td>
<td><input type="text" name="sicherheitscode" size="4"></td>
</tr>
<br>
<br>
<?php
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "41hgkd632");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){
unset($_SESSION['rechen_captcha_spam']);
session_start();
unset($_SESSION['rechen_captcha_spam']);
$zahl1 = rand(10,20); //Erste Zahl 10-20
$zahl2 = rand(1,10); //Zweite Zahl 1-10
$operator = rand(1,2); // + oder -
if($operator == "1"){
$operatorzeichen = " + ";
$ergebnis = $zahl1 + $zahl2;
}else{
$operatorzeichen = " - ";
$ergebnis = $zahl1 - $zahl2;
}
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$_SESSION['rechen_captcha_spam'] = encrypt($ergebnis, "29jfkd921"); //Key
$_SESSION['rechen_captcha_spam'] = str_replace("=", "", $_SESSION['rechen_captcha_spam']);
$rechnung = $zahl1.$operatorzeichen.$zahl2." = ?";
$img = imagecreatetruecolor(80,15);
$schriftfarbe = imagecolorallocate($img,13,28,91);
$hintergrund = imagecolorallocate($img,162,162,162);
imagefill($img,0,0,$hintergrund);
imagestring($img, 3, 2, 0, $rechnung, $schriftfarbe);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
}
?>
</p>
<p><br>
<br>
</p>
<p>
* = erforderliche Angaben
<br>
<input name="Abschicken" type="submit" value="Senden"> <input type="hidden" name="filled" value="1">
<input type="hidden" name="id" value="<? echo $id; ?>">
<div align="right"><a href="http://www.artmedic.de" target="_blank" class="artmedic_link">powered
by artmedic webdesign</a>
</div>
</form>
</div>
<?
}
else
{
$id = $_POST[id];
$sendername = $_POST[sendername];
$senderemail = $_POST[senderemail];
$recipientname = $_POST[recipientname];
$recipientemail = $_POST[recipientemail];
$anmerkungen = $_POST[anmerkungen];
//Dateneingabe überprüfen, check incoming form-variables
if (empty ($sendername)) {
die ("Fehler: Sie müssen Ihren Namen eingeben.<a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if (empty ($senderemail)) {
die ("Fehler: Sie müssen Ihre Emailadresse eingeben.<a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if (empty ($recipientname)) {
die ("Fehler: Sie müssen einen Empfängernamen eingeben.<a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if (empty ($recipientemail)) {
die ("Fehler: Sie müssen eine Empfängeremailadresse eingeben.<a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if(!eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$", $senderemail)) {
die("Fehler: Geben Sie bitte eine gültige Emailadresse ein. <a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if(!eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$", $recipientemail)) {
die("Fehler: Geben Sie bitte eine gültige Empfänger-Emailadresse ein. <a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if(eregi("\n", $recipientemail)) {
die("Fehler: Geben Sie bitte eine gültige Empfänger-E-Mailadresse ein. <a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if(eregi("\r", $recipientemail)){
die("Fehler: Geben Sie bitte eine gültige Empfänger-E-Mailadresse ein. <a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if(eregi("\n", $senderemail)) {
die("Fehler: Geben Sie bitte eine gültige Absender-E-Mailadresse ein. <a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if(eregi("\r", $senderemail)){
die("Fehler: Geben Sie bitte eine gültige Absender-E-Mailadresse ein. <a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if(eregi("\n", $sendername)) {
die("Fehler: Geben Sie bitte einen gültigen Absendernamen ein. <a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
if(eregi("\r", $sendername)){
die("Fehler: Geben Sie bitte einen gültigen Absendernamen ein. <a href=\"javascript:history.go(-1);\">«« Zurück</A>");}
$remote = getenv("REMOTE_ADDR");
//Ablaufzeit in Sekunden
$ablaufzeit = "$time" - "$sperrzeit";
//Abgelaufene IP-Adressen entfernen
$test = @file($iplog);
while (list ($line_num, $line) = @each ($test))
{$s = explode("&&",$line);
if($s[0] <= $ablaufzeit)
{
$fz = fopen( "$iplog", "r+" );
$c = fread($fz, filesize($iplog));
fclose($fz);
$line=quotemeta($line);
$string = "";
$c = ereg_replace($line, $string, $c);
$c1=fopen($iplog, "w+");
@flock($c1,2);
fputs($c1, $c);
@flock($c1,3);
fclose($c1);
}}
//IP-Prüfung
$ippruefung = @file($iplog);
while (list ($line_num, $line) = @each ($ippruefung))
{$ips = explode("&&",$line);
//IP-Adresse finden
if($ips[1] == $remote)
{
$ipf = "1";
//Prüfen, wieviel Empfehlungen bereits versendet wurden
if($ips[2] < $limit)
{
$z = $ips[2];
$z ++;
$fp = fopen($iplog, "r" );
$contents = fread($fp, filesize($iplog));
fclose($fp);
$string = "$ips[0]&&$ips[1]&&$z&&";
$replace = ereg_replace($line, $string, $contents);
$fh=fopen($iplog, "w");
@flock($fh,2);
fputs($fh, $replace);
@flock($fh,3);
fclose($fh);
}
if($ips[2] >= $limit)
{$gesperrt = "1";}
}
}
if($ipf != 1)
{
$string2 = "$time&&$remote&&1&&\n";
$fi=fopen($iplog, "a");
@flock($fi,2);
fputs($fi, $string2);
@flock($fi,3);
fclose($fi);
}
//URL der Seite zusammenstellen
if($gesperrt != "1")
{
$sendurl = "$url$id";
if ($anmerkungen == "")
{$anmerkungen = "Keine";}
//Nachricht versenden
$subject = "Seitenempfehlung von $sendername";
$mailtext = "
Sehr geehrte/r Frau/Herr $recipientname,
$sendername ($senderemail) empfiehlt Ihnen den Besuch
folgender Webseite:
------------------------------------------------------
$sendurl
------------------------------------------------------
Anmerkungen dazu von $sendername:
$anmerkungen
";
mail($recipientemail,$subject,$mailtext,"From: $sendername <$senderemail>");
echo "Vielen Dank $sendername,
Ihre Empfehlung wurde an $recipientname ($recipientemail) gesendet.
Bitte schließen Sie dieses Fenster, um zur Ausgangsseite zurückzukehren.
<a href=\"http://www.artmedic.de\">script by artmedic</a>
";
}
if($gesperrt == "1")
{echo "Aufgrund von Spamschutzeinstellungen können Sie leider nur $limit Empfehlungen versenden.";}
}
?>
</body>
</html>
es wird zwar das Rechenbeispiel angezeit, die Mail aber ohne zu lösen verschickt. Warum?
gruß ins Land
Ralf

