.js Datei soll Übermittlung eines Formmailersüberprüfen

uwej72

Mitglied
Hallo,

ich rätsel schon seit mehreren Tagen anfolgendem Problem.

Ich habe einen Formmailer in meine Seite eingebaut mit Überprüfung der
Eingaben (var).
Das klappt auch soweit.
Nun soll er am Ende wenn der Formmailer übermittlet wurde eine Zeile "Die Übermittlung war erfolgreich" oder bei nicht senden "Die Nachricht konnte nicht übermittelt werden.

Nur leider zeigt er mir immer nur die Zeile an, dass die nachricht NICHT gesendet wurde, ob die Mail nun gesendet oder nicht gesendet wurde.

kann mir bitte jemand helfen?

Hier der Teil der xxx.js Datei
Code:
//now when the validation is done we check if the error variable is false (no errors)
				if(error == false){
					//disable the submit button to avoid spamming
					//and change the button text to Sending...
					$('#send_message').attr({'disabled' : 'true', 'value' : 'senden...' });
					
					/* using the jquery's post(ajax) function and a lifesaver
					function serialize() which gets all the data from the form
					we submit it to MO_FormInputMail.php */
					$.post("../vionlink-formmailer.php", $("#contact_form").serialize(),function(result){
						//and after the ajax request ends we check the text returned
						if(result == 'sent'){
							//if the mail is sent remove the submit paragraph
							 $('#button').remove();
							//and show the mail success div with fadeIn
							$('#mail_success').fadeIn(500);
						}else{
							//show the mail failed div
							$('#mail_fail').fadeIn(500);
							//reenable the submit button by removing attribute disabled and change the text back to Send The Message
							$('#send_message').removeAttr('disabled').attr('value', 'absenden');
						}
					});

Es wird immer die Zeile mit "mail_fail" ausgegeben!!

Hier noch der HTML Teil:
Code:
       <li class="clearfix">
          <div id="button">
            <input type="reset" id="reset" onfocus="this.blur()" class="button float_2" value="löschen"><input name="send_message" type="submit" id="send_message" 

onfocus="this.blur()" class="button float_2" value="absenden">
          <p id="mail_fail" class="error">Ihre Nachricht konnte nicht übermittelt werden.</p>
          <p id="mail_success" class="success">Vielen Dank. Ihre Bewerbung wurde erfolgreich übermittelt.</p>
          </div>
	</li>
 
Zuletzt bearbeitet:
Der Teil success wird nur aufgerufen, wenn die Anfrage erfolgreich über AJAX versandt wurde. Dementsprechend wird deine Anfrage seitens AJAX richtig ausgeführt, dein Problem liegt eher bei PHP.
 
Hi,

erstmal vielen Dank für die Antwort.

Ich bin nicht sehr bewandert in solchen Sachen.
Meinst Du die formmailer.php?
 
Wenn du damit die Datei vionlink-formmailer.php meinst, dann reden wir von der gleichen Datei. Wäre praktisch, wenn du mal den Quelltext dieser Datei posten würdest.
 
Hi,

ich habe hier einmal die xxx.js Datei eingefügt.
Code:
$(document).ready(function(){
			$('#send_message').click(function(e){
				
				//stop the form from being submitted
				e.preventDefault();
				
				/* declare the variables, var error is the variable that we use on the end
				to determine if there was an error or not */
				var error = false;
				var name = $('#name').val();
				var email = $('#email').val();
				var subject = $('#subject').val();
				var message = $('#message').val();
				
				/* in the next section we do the checking by using VARIABLE.length
				where VARIABLE is the variable we are checking (like name, email),
				length is a javascript function to get the number of characters.
				And as you can see if the num of characters is 0 we set the error
				variable to true and show the name_error div with the fadeIn effect. 
				if it's not 0 then we fadeOut the div( that's if the div is shown and
				the error is fixed it fadesOut. 
				
				The only difference from these checks is the email checking, we have
				email.indexOf('@') which checks if there is @ in the email input field.
				This javascript function will return -1 if no occurence have been found.*/
				if(name.length == 0){
					var error = true;
					$('#name_error').fadeIn(500);
				}else{
					var error = false;
					$('#name_error').fadeOut(500);
				}
				if(email.length == 0 || email.indexOf('@') == '-1'){
					var error = true;
					$('#email_error').fadeIn(500);
				}else{
					var error = false;
					$('#email_error').fadeOut(500);
				}
				if(subject.length == 0){
					var error = true;
					$('#subject_error').fadeIn(500);
				}else{
					var error = false;
					$('#subject_error').fadeOut(500);
				}
				if(message.length == 0){
					var error = true;
					$('#message_error').fadeIn(500);
				}else{
					var error = false;
					$('#message_error').fadeOut(500);
				}
				
				//now when the validation is done we check if the error variable is false (no errors)
				if(error == false){
					//disable the submit button to avoid spamming
					//and change the button text to Sending...
					$('#send_message').attr({'disabled' : 'true', 'value' : 'senden...' });
					
					/* using the jquery's post(ajax) function and a lifesaver
					function serialize() which gets all the data from the form
					we submit it to MO_FormInputMail.php */
					$.post("../vionlink-formmailer.php", $("#contact_form").serialize(),function(result){
						//and after the ajax request ends we check the text returned
						if(result == 'sent'){
							//if the mail is sent remove the submit paragraph
							 $('#button').remove();
							//and show the mail success div with fadeIn
							$('#mail_success').fadeIn(500);
						}else{
							//show the mail failed div
							$('#mail_fail').fadeIn(500);
							//reenable the submit button by removing attribute disabled and change the text back to Send The Message
							$('#send_message').removeAttr('disabled').attr('value', 'absenden');
						}
					});
				}
			});    
		});

Was ich jetzt gerne hätte ist ein Fomrmailer, der dazu passt.
Kann mir jemand dazu einen Formmailer empfehlen, der leicht anzupassen ist und auch einen SPAM-Schutz hat?

Wäre super******!
 
Ja das war mir bewusst, aber ich denke daß das Problem meine Fähigkeiten übersteigt.

Ich habe aber trotzdem mal die Datei beigefügt:

Code:
<?php session_start();
$sendmailto = 'emailadresse@provider.xy';
    $mtxt_anfang ='Über das Kontaktformular ist folgende Mitteilung eingegangen <br><br>';
    $mtxt_ende   ='<br> Ende der Mitteilung ';
    $use_captcha = '1';
    $use_reply = '1';
   $mail_subject = 'Kontaktformular';
    $charset='iso-8859-1';
    $contentart='html';

// initialisieren

if(!isset($sendmailto)){die();}
if(!isset($sendmailcopy)){$sendmailcopy =array();}
if(!isset($copy2user)){$copy2user='0';}
if(!isset($copy2user_ckbox)){$copy2user_ckbox='0';}
if(!isset($use_reply)){$use_reply='0';}
if(!isset($needed)){$needed =array();}
if(!isset($check_ml_synthax)){$check_ml_synthax=array();}
if(!isset($check_tel_synthax)){$check_tel_synthax=array();}
if(!isset($use_depot)){$use_depot='0';}
if(!isset($depot_foldername)){$depot_foldername='0';}
if(!isset($thx_use)){$thx_use='0';}
if(!isset($dankeseite)){$dankeseite='0';}
if(!isset($use_captcha)){$use_captcha='0';}
if(!isset($trennzeichen)){$trennzeichen=" = \t";}else{$trennzeichen  .="\t";}
if(!isset($contentart)){$contentart='plain';}

###############################

if(!isset($mail_subject)){$mail_subject='Kontaktformular';}
if(!isset($mail_copysubject)){$mail_copysubject = 'Kopie Ihrer Nachricht';}
if(!isset($vielendank)){$vielendank='Vielen Dank fuer Ihre Mitteilung!';}
if(!isset($codenichtkorrekt)){$codenichtkorrekt='Sicherheitstext ist nicht korrekt!<br>';}
if(!isset($f_synthax_email)){$f_synthax_email=' keine g&uuml;ltige Emailadresse!<br> ';}
if(!isset($f_synthax_tel)){$f_synthax_tel=' keine g&uuml;ltige Telefonnummer!<br> ';}
if(!isset($f_ehi_check)){$f_ehi_check=' Ihre Eingabe enth&auml;lt kritische Zeichen!<br> ';}
if(!isset($f_badwords)){$f_badwords=' unerlaubte Wörter entdeckt!<br>';}
if(!isset($mtxt_anfang)){$mtxt_anfang =' Über das Kontaktformular ist folgende Mitteilung eingegangen <br><br>';}
if(!isset($mtxt_ende)){ $mtxt_ende   ='<br> Ende der Mitteilung ';}
if(!isset($mtxtkopie_anfang)){$mtxtkopie_anfang =' Vielen Dank für Ihre Mitteilung.<br>Folgende Daten haben Sie an uns übermittelt:<br><br>';}
if(!isset($mtxtkopie_ende)){$mtxtkopie_ende   ='<br> Mit freundlichen Grüßen <br>';}
$ignoreFormFields = array('scd', 'submitto', 'wannacopy');

// more init
$mailtext ="";
$needed_err ="";
$zeit=time();
    // Captcha
    if($use_captcha==1)
    {
    $eingabe=mig($_POST['cap']);
    if($eingabe=="" || $eingabe!=$_SESSION['cod']){$err=1; $needed_err.=$codenichtkorrekt;}
    }
    // Durchlauf
    while(list($fieldname,$fieldvalue) = each($_POST)){

        // Generalcheck
        $fieldname=mig($fieldname); 
        $fieldvalue=mig($fieldvalue); 



        if(is_array($fieldvalue))
        {
           foreach($fieldvalue as $fieldvalue_array)
           {
           $fieldvalue_array=mig($fieldvalue_array);

           // Mailtext 
           $mailtext .= $fieldname.$trennzeichen.$fieldvalue_array."<br>";
         
           

          } // foreach

       }else{


          // Email synthax check 
          if(in_array($fieldname,$check_ml_synthax))
          {
          $fieldvalue=migmail($fieldvalue);
          if($fieldvalue==""){$err=1; $needed_err.=$f_synthax_email;} 
          }

          // Telefonnummer synthax check
          if(in_array($fieldname,$check_tel_synthax))
          {
          $fieldvalue=migtelefon($fieldvalue);
          if($fieldvalue==""){$err=1; $needed_err.=$f_synthax_tel;} 
          }

          // genereller Pflichtfeld check
          if(in_array($fieldname,$needed) && $fieldvalue==""){$err=1; $needed_err.="Bitte das Feld $fieldname ausf&uuml;llen!<br>";}



         // vermeintlich böse Wörter 
         if(check_badwords($fieldvalue, $badwordsarray)>=1){$err=1; $badworderror=1; }

      } 


      // Mailtext       
      if($fieldname!="cap" && $fieldname!="submitto"  && $fieldname!="wannacopy" ){

         $mailtext .= $fieldname.$trennzeichen.$fieldvalue."<br>";
             
           

      }


    } // END WHILE
if(!isset($err)){
    $yseco=migmail($_POST['Email']);
// Mail senden
    $headers  = '';
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/$contentart; charset=$charset\r\n";



    if($use_reply=="1" && $yseco!=""){
    $headers .= "Reply-To: $yseco <$yseco>\r\n";
    $headers .= "From: $yseco <$yseco>\r\n";
    }else{
    $headers .= "From: $sendmailto <$sendmailto>\r\n";
    }

    if($sendmailcopy!=""){
    foreach($sendmailcopy as $bccv){$headers .= "Bcc: $bccv \r\n";}
    }  

    $headers .= "X-Mailer: formmailer by vionlink.de \r\n";
    $mtx=$mtxt_anfang.$mailtext.$mtxt_ende;
    if($contentart=="plain"){$mtx=str_replace("<br>", "\r\n", $mtx);}
    @mail($sendmailto, $mail_subject, $mtx, $headers);
    // Maildepot 
    if($saveit=="1"){

    $time=date("dmYHis",$zeit);
    $filename=$depot_foldername.'email_'.$time.'.txt';
    $depot_mailtext=str_replace("<br>", "\n\r", $mailtext);
    $depotmail = @fopen($filename, "w+");
    @fwrite($depotmail, $depot_mailtext);
    @fclose($depotmail);

    }



    // Ausgabe
    session_destroy();
        //zur eigenen Dankeseite?
        if($thx_use=="1" && $dankeseite!="0"){header("Location: $dankeseite"); exit();}
        //doch nicht, gib Meldung aus
        $template = join('', file("danke_template.htm"));
        $inhalt = preg_replace("=\[MELDUNGEN\]=", $vielendank, $template);
        echo $inhalt; exit();



  } else {

    // Fehlerausgabe 

    $template = join('', file("meldung_template.htm"));
    $inhalt = preg_replace("=\[MELDUNGEN\]=", $needed_err, $template);
    echo $inhalt;  exit();


  } 




} // isset POST
function check($get){return mig($get);}

function ehi_check(){
$achtung=0;
foreach($_REQUEST as $val){

$pos = strpos($val, '\x2F'); if($pos !== false){$achtung++;}
$pos = strpos($val, '\x3A'); if($pos !== false){$achtung++;}
$pos = strpos($val, '\x5D'); if($pos !== false){$achtung++;}
$pos = strpos($val, '\x3D'); if($pos !== false){$achtung++;}
$pos = strpos($val, '\x5B'); if($pos !== false){$achtung++;}

$pos = strpos(strtolower($val), 'content-type:'); if($pos !== false){$achtung++;}
$pos = strpos(strtolower($val), 'content-type');  if($pos !== false){$achtung++;}
$pos = strpos(strtolower($val), 'bcc:');          if($pos !== false){$achtung++;}
$pos = strpos(strtolower($val), 'bcc');           if($pos !== false){$achtung++;}
$pos = strpos(strtolower($val), '[url=');         if($pos !== false){$achtung++;}
$pos = strpos(strtolower($val), '[link=');        if($pos !== false){$achtung++;}
} //endforeach
return $achtung;  // wenn Null dann Alles Okay
} //func end


function safety_first($get){
$get=strip_tags($get); 
$get=preg_replace("/(\[url|content-type:|bcc:|cc:|to:|from:)/im", "",$get);
$get=trim($get); return $get;}

function mig($get){
$get=safety_first($get);
$get=str_replace("\n", "", $get); 
return $get;}

function migmail($get){
$get=safety_first($get);
$get=str_replace("\n", "", $get); 
$get=substr($get, 0, 50); 
if($get=="" || !preg_match('#^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]{1,4})$#', $get)){$get='';}
return $get;}

function migtelefon($get){
$get=safety_first($get);
$get=str_replace("\n", "", $get); 
if($get=="" || !preg_match('#^[0-9 ()/+-]+$#', $get)){$get='';}
return $get;}



function check_badwords($feldwert, $badwordsarray){
$wortliste=array();
    foreach($badwordsarray as $boeseswort){
    if($boeseswort!=""){$wortliste[]=strtolower($boeseswort);}}
    for($st=0, $hochzaehlen=0; count($wortliste)>$st ; $st++){ 
    if(strpos(strtolower($feldwert), $wortliste[$st]) !== false){$hochzaehlen++;}} 
return $hochzaehlen;
}//endfunc


if (!function_exists('add_magic_quotes')){
function add_magic_quotes($array) {
foreach($array as $k => $v) {
if(is_array($v)){$array[$k] = add_magic_quotes($v);}
else{$array[$k] = addslashes($v);}
}return $array;}}

if (!get_magic_quotes_gpc()) {
$_GET    = add_magic_quotes($_GET   );
$_POST   = add_magic_quotes($_POST  );
$_COOKIE = add_magic_quotes($_COOKIE);
$_SERVER = add_magic_quotes($_SERVER); }
?>

Ich habe zu wenig Ahnung davon!
 
Darf man fragen, welche PHP-Version du nutzt? So wie das Skript nämlich aussieht, ist dieses noch für PHP 4 geschrieben und sollte dementsprechend überarbeitet werden. Außerdem frage ich mich gerade, wer so ein unübersichtliches Skript erstellt hat. Das ist wirklich entsetzend!
 
Ja du hast recht ist ein Script für PHP 4.
Hat mir ein bekannter geschickt!

Habe aber nun im Internet einmal weiter recherchiert und einen Formmailer gefunden, der alles gleichzeitig beinhaltet. Spam-Schutz und überprüfung der Felder im Formmailer!

Muss es jetzt noch an meine Bedürfnisse anpassen!

Erstmal vielen Dank für die Hilfe!
Sollte ich nochmals Hilfe dazu brauchen, dann melde ich mich wieder!

Super Sache dieses Tutorial hier!
 
Zurück