php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.06.2008, 04:26  
Neuer Benutzer
 
Registriert seit: 27.06.2008
Beiträge: 2
Skaos befindet sich auf einem aufstrebenden Ast
Standard 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">
  &nbsp;&nbsp;&nbsp;&nbsp;<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($flfilesize($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($flfilesize($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
Skaos ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.06.2008, 04:39  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Bitte zeig deine Versuche, den relevanten Code und das konkrete Problem oder stell das Posting als Gesuch ins entsprechende Forum.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 27.06.2008, 06:05  
Neuer Benutzer
 
Registriert seit: 27.06.2008
Beiträge: 2
Skaos befindet sich auf einem aufstrebenden Ast
Standard

Ich wollte das Bsp. von Zahlen Captcha PHP Script - Captcha Tutorial - stoppt-den-spam.info einbauen irgendwie geht das aber nicht es kommt auch keine Fehlermeldung
Skaos ist offline  
Alt 27.06.2008, 06:34  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Stell das Error-Reporting hoch.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gleichungs Captcha PHP litterauspirna PHP-Fortgeschrittene 17 25.05.2008 21:06
Frage zu spam bots und captcha litterauspirna PHP Tipps 2008 6 20.05.2008 23:56
Captcha in Website einbauen Dartgott PHP Tipps 2008 9 23.04.2008 15:53
Captcha in bestehendes GB einbauen ZeroQL PHP Tipps 2008 6 08.04.2008 15:32
Captcha Frage und vorstelung meiner seite oerny18 PHP Tipps 2008 10 31.03.2008 20:05
Captcha - Session Problem Toby PHP Tipps 2008 9 11.03.2008 19:38
Captcha? Ja, Nein oder? stefanjann Off-Topic Diskussionen 12 20.02.2008 12:59
Captcha Adminator Off-Topic Diskussionen 6 09.09.2007 23:06
mit ajax captcha neu laden und generieren jjackisc PHP-Fortgeschrittene 10 10.08.2007 15:41
Captcha unsicher? PHP Tipps 2007 7 20.03.2007 16:10
[Erledigt] Probleme mit Einbindung Captcha PHP Tipps 2006 0 18.08.2006 19:42
captcha PHP Tipps 2006 8 16.06.2006 13:48
Gästebuch mit captcha emerge PHP Tipps 2006 8 01.04.2006 10:06
[Erledigt] Design Pattern - MySQL Sitzung in allen Objekten nutzen PHP-Fortgeschrittene 21 28.04.2005 22:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php formular captcha, factory php recaptcha, benutzerhandbuch styling factory, email header \preg_match_all(\'/^subject:\, ikey.id von the bat fehlt, captcha_factory einbauen, factory netform, content-type \text/plain; quoted-printable\, \factory netform\, ctype captcha entry site, preg split text, $key => $var, preg_replace \/(\.$key.\)/i\, fopen form formular an datei, captcha factory php, php preg_replace referenzierung, form post captcha, php form captcha

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum