| Neuer Benutzer
Registriert seit: 27.06.2008
Beiträge: 2
| Factory Netform Captcha Hallo
Habe ein kleines Problem beim Kontaktformular von Factory Netform - die gibts nicht mehr, daher auch kein Support mehr.
Wie kann ich in das Teil ein Captcha einbauen? Alle Versuche sind bisher gescheitert.
Hiermal die index.php Code: <div class="kontakt">
<form method="post" action="danke.php" enctype="multipart/form-data">
<label for="req_Anrede">Anrede*</label>
<select name="req_Anrede">
<option value="">Bitte wähle</option>
<option value="Herr">Herr</option>
<option value="Frau">Frau</option>
</select>
<br />
<label for="reqchr_Vorname">Vorname:*</label> <input type="text" name="reqchr_Vorname" size="40">
<br />
<label for="reqchr_Name">Name:*</label> <input type="text" name="reqchr_Name" size="40">
<br />
<label for="reqmail_eMail">E-Mail:*</label><input type="text" name="reqmail_eMail" size="40">
<br />
<label for="req_Betreff">Betreff:*</label><input type="text" name="req_Betreff" size="40">
<br />
<br />
<hr />
<br />
<label for="req_Betreff">Nachricht:*</label><textarea name="req_Nachricht" cols="25" rows="5" wrap="physical"></textarea>
<br />
<label for="file_datei">Datei mitschicken:</label><input name="file_datei" type="file" size="30" />
<br />
<div class="center"><input type="reset" name="reset" value="Eingabe löschen">
<input type="submit" name="submit" value="Nachricht senden"><br />
<br />
<div class="klein"><?php
echo "Ihre aktuelle IP-Adresse.: <b>".$_SERVER["REMOTE_ADDR"]."</b>";
?></div>
</div></div>
</form>
die config.php PHP-Code: <?php /* ================================================================================ - factory netFORM 2.0.1 - Konfiguration - - ------------------------------------- - - Bitte lesen Sie das Hanbuch - - Dort stehen alle nötigen Informationen zum Einrichten des FormularMailers - ================================================================================ */
$error->field = '<b>Folgende Felder sind Pflichtangaben:</b>'; $error->entry = '<b>Fehler bei der Eingabe:</b>'; $error->flooding = 'Das Formular wurde versucht mehrmals vom gleichen Absender zu verschicken'; $error->post = 'Das Formular wurde nicht mit der Post-Methode übertragen';
$error->mail = '<i>[key]</i>: Die angegebene Email-Adresse ist nicht gültig'; $error->letter = '<i>[key]</i>: Dieses Feld darf nur Buchstaben enthalten'; $error->nums = '<i>[key]</i>: Dieses Feld darf nur Ziffern enthalten'; $error->data = '<i>[key]</i>: hat ein nicht zulässiges Dateiformat';
$error->file = 'vorlagen/error.htm'; $success = 'vorlagen/okay.htm';
$tempdir = ''; //Der Pfad zum temporären Verzeichnis, wo files //zwischengespeichert werden. Ohne Slash am Ende angeben. //Dieses Verzeichnis muss auf chmod 777 gesetzt werden.
$sendfile = 'vorlagen/test.pdf'; //Der Pfad zur Datei, die versendet werden soll.
$attach->filter = '.doc,.vbs,.exe,.bat';
$rec['name'][1] = 'styling factory'; $rec['mail'][1] = 'info@stylingfactory.de';
/* $rec['name'][2] = ''; $rec['mail'][2] = ''; */
$referer[1] = 'localhost';
$referlog = 'flood.txt';
$timespan = 1;
$mail->mail = 'vorlagen/mail.txt'; $mail->answer = 'vorlagen/sender.txt';
/* ================================================================================ - HINWEIS: Sollten einige Einstellungsmöglichkeiten unklar sein, - - dann lesen Sie bitte im Handbuch nach. - - ---------------------------------------------------------------------------- - - Bei Problemen wenden Sie sich bitte an info@stylingfactory.de - - - - (c)opyright 2002-2003 styling factory - ================================================================================ */ ?> und die netform.php PHP-Code: <?php // evtl. den include-pfad für die config.php anpassen, falls die config verschoben wird
if(!$get = @include("config.php")){ echo "Konnte Konfig-Datei nicht öffnen. Bitte Namen und Pfad kontrollieren!"; die;}
// ab hier bitte nichts mehr ändern | please don't edit the lines below $version = 'factory netFORM 2.0.2'; @reset ($HTTP_POST_VARS); $ferr = check_post($HTTP_POST_VARS);
if($ferr == "post"){ echo $error->post;}
if(!$ferr){ $error_msg = $error_blank = ""; $vars = get_vars($HTTP_POST_VARS,$HTTP_POST_FILES,$tempdir); ref($referer,$serial,$HTTP_REFERER); while(list($key,$val) = each($vars)){ $val = trim($val);
if(eregi("^num_",$key)){ if(check_nums($val) == "error"){ $error_msg .= str_replace("[key]",preg_replace("/num_/i","",$key),$error->nums)."<br>";} } if(eregi("^chr_",$key)){ if(check_chars($val) == "error"){ $error_msg .= str_replace("[key]",preg_replace("/chr_/i","",$key),$error->letter)."<br>";} } if(eregi("^mail_",$key)){ $from_mail = $val; if($val && !ereg('.@.{5}',$val)){ $error_msg .= str_replace("[key]",preg_replace("/mail_/i","",$key),$error->mail)."<br>";} } if(eregi("^file_",$key)){ $filt = split(",",$attach->filter); if($val){ for($i=0;$i<count($filt);$i++){ if(preg_match("/".$filt[$i]."/i",$val)){ $error_msg .= str_replace("[key]",preg_replace("/file_/i","",$key),$error->data)."<br>";} } } }
else if(eregi("^req_",$key)){ if(!$val){ $error_blank .= preg_replace("/req_|req_/i","",$key)."<br>";} } if(eregi("^reqnum_",$key) || eregi("^numreq_",$key)){ if(check_nums($val) == "error"){ $error_msg .= str_replace("[key]",preg_replace("/reqnum_|numreq_/i","",$key),$error->nums)."<br>";} else if(!$val){ $error_blank .= preg_replace("/reqnum_|numreq_/i","",$key)."<br>";} }
if(eregi("^reqchr_",$key) || eregi("^chrreq_",$key)){ if(check_chars($val) == "error"){ $error_msg .= str_replace("[key]",preg_replace("/reqchr_|chrreq_/i","",$key),$error->letter)."<br>";} else if(!$val){ $error_blank .= preg_replace("/reqchr_|chrreq_/i","",$key)."<br>";} }
if(eregi("^reqmail_",$key) || eregi("^mailreq_",$key)){ $from_mail = $val; if($val && !checkmail($val)){ $error_msg .= str_replace("[key]",preg_replace("/reqmail_|mailreq_/i","",$key),$error->mail)."<br>";} else if(!$val){ $error_blank .= preg_replace("/reqmail_|mailreq_/i","",$key)."<br>";} }
if(eregi("^reqfile_",$key) || eregi("^filereq_",$key)){ $filt = split(",",$attach->filter); if($val){
for($i=0;$i<count($filt);$i++){ if(preg_match("/".$filt[$i]."/i",$val)){ $error_msg .= str_replace("[key]",preg_replace("/reqfile_|filereq_/i","",$key),$error->data)."<br>";} } } if(!$val || $val == "none"){ $error_blank .= preg_replace("/reqfile_|filereq_/i","",$key)."<br>";} } }
if($error_blank || $error_msg){ $fl = @fopen($error->file,"r"); $msg = @fread($fl, filesize($error->file)); @fclose($fl); if($error_blank){ $error_blank = $error->field."<br>".$error_blank;} if($error_msg){ $error_msg = "<p>".$error->entry."<br>$error_msg</p>";}
$msg = str_replace("[req_error]",$error_blank,$msg); $msg = str_replace("[ent_error]",$error_msg,$msg);
echo $msg; }}
if(!$error_blank && !$error_msg){
if(!$vars[template]){ $ref_id = date("Ymd")."-"; @reset ($vars); $err = FloodProtect($referlog,$REMOTE_ADDR,$timespan);
if($err == "flooding"){ echo $error->flooding;}
else{ $ref_id .= $err; $fl = @fopen($success,"r"); $conts = @fread($fl, filesize($success)); @fclose($fl); echo convert_tpl($conts,$vars,$ref_id,$REMOTE_ADDR);
//mail_text read $fmail = @join ('',@file($mail->mail)); reset($vars); $fmail = convert_mail($fmail,$vars,$ref_id,$REMOTE_ADDR); $sub = @preg_match_all("/subject:(.*)\n/i",$fmail,$subject); $fmail =@preg_replace("/subject:(.*)\n/i","",$fmail); $i=1; $smail = new mime(); while($i <= sizeof($rec['mail'])){ $smail->mime_mail(); $smail->subject = trim(str_replace("Subject:","",$subject[0][0])); $smail->body = $fmail; reset($vars); while(list($key,$val) = each($vars)){ if((@preg_match("/^(reqfile_|filereq_)/i",$key) || @preg_match("/^file_/i",$key)) && $val != "none"){ $fil = split(":",$val); if($fil[0]){ $attachment = fread(fopen($tempdir."/".$fil[0],"rb"),filesize($tempdir."/".$fil[0])); @unlink($tempdir."/".$fil[0]); $smail->add_attachment($attachment,$fil[0],$fil[1]); }}} $smail->from = $from_mail; $smail->headers = "X-Mailer: $version"; $smail->to = $rec['mail'][$i]; $smail->send(); $i++;}
$amail = @join ('',@file($mail->answer)); reset($vars); $amail = convert_mail($amail,$vars,$ref_id,$REMOTE_ADDR); $sub = @preg_match_all("/subject:(.*)\n/i",$amail,$subject); $amail =@preg_replace("/subject:(.*)\n/i","",$amail); reset($vars); while(list($name,$val) = each($vars)){ if(@preg_match("/(mail|reqmail|mailreq)_(.*)/i",$name)){ if(trim($val)){
$tmail = new mime(); $tmail->mime_mail(); $tmail->subject = trim(str_replace("Subject:","",$subject[0][0])); $tmail->body = $amail; //get attach if($attachfile){ $tattach = fread(fopen($sendfile,"rb"),filesize($sendfile)); $tmail->add_attachment($tattach,basename($sendfile),"*/*"); } //end attach $tmail->from = $rec['name'][1]." <".$rec['mail'][1].">"; $tmail->headers = "X-Mailer: $version"; $tmail->to = $val; $tmail->send(); } } //end read text
}} }else{
$fl = fopen($vars[template],"r"); $content = fread($fl,filesize($vars[template])); fclose($fl);
$content = stripcslashes($content);
reset($vars);$preforms = ""; while(list($hid,$va) = each($vars)){ if($hid != "template"){ $preforms .= "<input type=\"hidden\" name=\"$hid\" value=\"$va\">"; }}
$content = str_replace("</form>",$preforms."</form>",$content); } //echo $content; echo convert_tpl($content,$vars,$ref_id,$REMOTE_ADDR); }
function get_vars($postvars,$filevars,$tempdir){
while(list($key,$var) = each($postvars)){ $vars[$key] = htmlspecialchars(trim($var)); } while(list($key,$var) = each($filevars)){ $vars[$key] = $var[name].":".$var[type]; @copy($var[tmp_name],$tempdir."/".$var[name]); } return $vars;}
function check_post($postvars){
if(empty($postvars)){ $err = "post"; }
return $err;}
function ref($referer,$serial,$ref){
$tt = "("; for($i=1;$i<=count($referer);$i++){ $tt .= ".".$referer[$i].".|".$referer[$i]; if($i < count($referer)){ $tt .= "|"; }
} $tt .= ")"; if(!@eregi($tt,$ref)){ echo "Zugriff verweigert<br> $ref"; die;} echo "<!-- $serial .:FormMail PRO:. -->"; }
function FloodProtect($file,$ip,$time){ $savenew = FALSE; if(file_exists($file)){ $fp = @fopen($file,"r"); $i=0; while (!feof($fp)) { $line[$i] = trim(fgets($fp,100000)); $i++;} @fclose($fp);
$check = split(",",$line[0]); $err = "".($check[sizeof($check)-1]+1).""; $err = str_pad($err,3,"0", STR_PAD_LEFT); if(@preg_match_all("/(($ip),(\d*))/i",$line[1],$compair)){ $comp = split(",",$compair[1][0]);
if((time()-$comp[1]) < $time){ $err = "flooding";} else{ $line[1] = @preg_replace("/$ip,".$comp[1]."/i","$ip,".time(),$line[1]); $line[0] .= ",$err"; $savenew = TRUE;} } else if(!@preg_match_all("/$ip/i",$line[1])){{ $line[1] .= ",$ip,".time();} $line[0] .= ",$err"; $savenew = TRUE; } if($check[0] < date("Ymd")){ $err = "001"; $line[0] = date("Ymd").",$err"; $savenew = TRUE;}
}else{ $err = "001"; $line[0] = date("Ymd").",$err"; $line[1] = $ip.",".time(); $savenew = TRUE; }
if($savenew){ $fp = @fopen($file,"w"); @fputs($fp,$line[0]."\n".$line[1]); @fclose($fp);} @chmod ($file,0700); return $err;}
function check_nums($field){
if(eregi("([a-z])",$field)){ $err="error";}
return $err;}
function check_file($field,$filter){
if(eregi("([a-z])",$field)){ $err="error";}
return $err;}
function check_chars($field){
if(eregi("([0-9|!-?])",$field)){ $err="error";}
return $err;} class mime { var $parts; var $to; var $from; var $headers; var $subject; var $body; function mime_mail(){ $this->parts = array(); $this->to = ""; $this->from = ""; $this->subject = ""; $this->body = ""; $this->headers = ""; } function add_attachment($message, $name, $ctype,$encode = "base64"){ $this->parts[] = array ("ctype" => $ctype,"message" => $message,"encode" => $encode,"name" => $name); } function build_message($part){ $message = $part["message"]; if($part["encode"] == "base64"){ $message = chunk_split(base64_encode($message)); } $encoding = $part["encode"]; return "Content-Type: ".$part[ "ctype"]."; ". ($part[ "name"]? " name = \"".$part[ "name"]. "\"" : ""). "\nContent-Transfer-Encoding: $encoding\n\n$message\n"; } function build_multipart(){ $boundary = "----=_NextPart_FNF_".md5(uniqid(time())); $multipart = "From: ".$this->from."\n"; $multipart .= "Content-Type: multipart/mixed; boundary = \"$boundary\"\n\nThis is a MIME encoded message.\n\n--$boundary"; for($i = sizeof($this->parts)-1; $i >= 0; $i--) { $multipart .= "\n".$this->build_message($this->parts[$i]). "--$boundary"; } return $multipart.= "--\n"; } function send(){ $mime = ""; if (!empty($this->body)) $this->add_attachment($this->body, "", "text/plain","quoted-printable"); $mime .= $this->headers."\n"; $mime .= "MIME-Version: 1.0\n".$this->build_multipart(); @mail($this->to, $this->subject, "", $mime); } };
function checkmail($email) { if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,5}$", $email, $check)) { return true; } return false; }
function convert_mail($text,$vars,$id,$referer){ reset($vars); while(list($key,$val) = each($vars)){ $text = @preg_replace("/\[$key\]/i",$val,$text); } $text = @preg_replace("/\[referenz\]/i",$id,$text);
$text = @preg_replace("/\[ip\]/i",$referer,$text); $text = @preg_replace("/\[date\]/i",date("d.m.Y"),$text); $text = @preg_replace("/\[time\]/i",date("H:i:s"),$text);
$text = @preg_replace("/\[!(.*)(\d*\.?\d*)(.*)!\]/e","\\1",$text);
return $text;}
function convert_tpl($string,$vars,$id,$referer){ @reset($vars); while(list($key,$val) = @each($vars)){ $string = @preg_replace("/\[$key\]/i",$val,$string); } $string = @preg_replace("/\[referenz\]/i",$id,$string);
$string = @preg_replace("/\[ip\]/i",$referer,$string); $string = @preg_replace("/\[date\]/i",date("d.m.Y"),$string); $string = @preg_replace("/\[time\]/i",date("H:i:s"),$string);
$string = @preg_replace("/\[!(.*)(\d*\.?\d*)(.*)!\]/e","\\1",$string); return $string;}
?> wäre nett wenn mir dabei einer helfen könnten
DANKE schonmal |