Ankündigung

Einklappen
Keine Ankündigung bisher.

Problemlösung: Kontaktformular

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problemlösung: Kontaktformular

    Hallo zusammen,
    ich brauche dringend eure Hilfe! Ich habe vor ein Website Template zu benutzen und auch das darin eingebaute Kontaktformular. Leider habe ich keine Ahnung wie ich dieses zum laufen bekomme, ich hoffe ihr könnt mir helfen. Ich poste mal alles was damit zu tun hat.

    in der Index.html
    Code:
                                            <form action="#" id="ContactForm">	
                                            <div class="success"> Contact form submitted!&nbsp;We will be in touch soon.</div>	
           								 		<fieldset class="left">	
                                                            <div class="block">
                                                            <label class="name padRight3">
                                                                <span class="title1">Name:</span>
                                                                <span class="bg"><input type="text" value="" class="input"></span>
                                                                <span class="error">*This is not a valid name.</span> <span class="empty">*This field is required.</span> </label>
            											     <label class="email">
                                                                <span class="title1">Email:</span>
                											    <span class="bg"><input type="email" value="" class="input"></span>
                											    <span class="error">*This is not a valid email address.</span> <span class="empty">*This field is required.</span></label>   
                                                             
                                                             <label class="phone">
                                                             <span class="title1">Phone:</span>
                                                                <span class="bg"><input type="tel" value="" class="input"></span>
                                                                <span class="error">*This is not a valid number.</span> <span class="empty">*This field is required.</span> </label>
                                                             </div>
                                                             
                                                             <div class="block">
                                                             <label class="message">
                                                             <span class="title1">Message:</span>
                											    <span class="bg"><textarea rows="1" cols="2"></textarea></span>
                											    <span class="error">*The message is too short.</span> <span class="empty">*This field is required.</span> </label>
            										         </div>
                                                             <div class="formButtons">
                                                              <div class="formBtn">
                                                                    <a href="#" data-type="submit" class="moreButton">Send</a>
                                                              </div>
                                                              <div class="formBtn">
                                                                     <a href="#" data-type="reset" class="moreButton">Clear</a>
                                                              </div>
                                                             </div> 
        								  		    </fieldset>
                                                </form>
                                        </div>
    In der form.js
    Code:
    //forms
    ;(function($){
    	$.fn.forms=function(o){
    		return this.each(function(){
    			var th=$(this)
    				,_=th.data('forms')||{
    					errorCl:'error',
    					emptyCl:'empty',
    					invalidCl:'invalid',
    					notRequiredCl:'notRequired',
    					successCl:'success',
    					successShow:'4000',
    					mailHandlerURL:'bin/MailHandler.php',
    					ownerEmail:'#',
    					stripHTML:true,
    					smtpMailServer:'localhost',
    					targets:'input,textarea',
    					controls:'a[data-type=reset],a[data-type=submit]',
    					validate:true,
    					rx:{
    						".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
    						".state":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
    						".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:'input'},
    						".phone":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
    						".fax":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
    						".message":{rx:/.{20}/,target:'textarea'}
    					},
    					preFu:function(){
    						_.labels.each(function(){
    							var label=$(this),
    								inp=$(_.targets,this),
    								defVal=inp.val(),
    								trueVal=(function(){
    											var tmp=inp.is('input')?(tmp=label.html().match(/value=['"](.+?)['"].+/),!!tmp&&!!tmp[1]&&tmp[1]):inp.html()
    											return defVal==''?defVal:tmp
    										})()
    							trueVal!=defVal
    								&&inp.val(defVal=trueVal||defVal)
    							label.data({defVal:defVal})								
    							inp
    								.bind('focus',function(){
    									inp.val()==defVal
    										&&(inp.val(''),_.hideEmptyFu(label),label.removeClass(_.invalidCl))
    								})
    								.bind('blur',function(){
    									_.validateFu(label)
    									if(_.isEmpty(label))
    										inp.val(defVal)
    										,_.hideErrorFu(label.removeClass(_.invalidCl))											
    								})
    								.bind('keyup',function(){
    									label.hasClass(_.invalidCl)
    										&&_.validateFu(label)
    								})
    							label.find('.'+_.errorCl+',.'+_.emptyCl).css({display:'block'}).hide()
    						})
    						_.success=$('.'+_.successCl,_.form).hide()
    					},
    					isRequired:function(el){							
    						return !el.hasClass(_.notRequiredCl)
    					},
    					isValid:function(el){							
    						var ret=true
    						$.each(_.rx,function(k,d){
    							if(el.is(k))
    								ret=d.rx.test(el.find(d.target).val())										
    						})
    						return ret							
    					},
    					isEmpty:function(el){
    						var tmp
    						return (tmp=el.find(_.targets).val())==''||tmp==el.data('defVal')
    					},
    					validateFu:function(el){							
    						el.each(function(){
    							var th=$(this)
    								,req=_.isRequired(th)
    								,empty=_.isEmpty(th)
    								,valid=_.isValid(th)								
    							
    							if(empty&&req)
    								_.showEmptyFu(th.addClass(_.invalidCl))
    							else
    								_.hideEmptyFu(th.removeClass(_.invalidCl))
    							
    							if(!empty)
    								if(valid)
    									_.hideErrorFu(th.removeClass(_.invalidCl))
    								else
    									_.showErrorFu(th.addClass(_.invalidCl))								
    						})
    					},
    					getValFromLabel:function(label){
    						var val=$('input,textarea',label).val()
    							,defVal=label.data('defVal')								
    						return label.length?val==defVal?'nope':val:'nope'
    					}
    					,submitFu:function(){
    						_.validateFu(_.labels)							
    						if(!_.form.has('.'+_.invalidCl).length)
    							$.ajax({
    								type: "POST",
    								url:_.mailHandlerURL,
    								data:{
    									name:_.getValFromLabel($('.name',_.form)),
    									email:_.getValFromLabel($('.email',_.form)),
    									phone:_.getValFromLabel($('.phone',_.form)),
    									fax:_.getValFromLabel($('.fax',_.form)),
    									state:_.getValFromLabel($('.state',_.form)),
    									message:_.getValFromLabel($('.message',_.form)),
    									owner_email:_.ownerEmail,
    									stripHTML:_.stripHTML
    								},
    								success: function(){
    									_.showFu()
    								}
    							})			
    					},
    					showFu:function(){
    						_.success.slideDown(function(){
    							setTimeout(function(){
    								_.success.slideUp()
    								_.form.trigger('reset')
    							},_.successShow)
    						})
    					},
    					controlsFu:function(){
    						$(_.controls,_.form).each(function(){
    							var th=$(this)
    							th
    								.bind('click',function(){
    									_.form.trigger(th.data('type'))
    									return false
    								})
    						})
    					},
    					showErrorFu:function(label){
    						label.find('.'+_.errorCl).slideDown()
    					},
    					hideErrorFu:function(label){
    						label.find('.'+_.errorCl).slideUp()
    					},
    					showEmptyFu:function(label){
    						label.find('.'+_.emptyCl).slideDown()
    						_.hideErrorFu(label)
    					},
    					hideEmptyFu:function(label){
    						label.find('.'+_.emptyCl).slideUp()
    					},
    					init:function(){
    						_.form=_.me						
    						_.labels=$('label',_.form)
    
    						_.preFu()
    						
    						_.controlsFu()
    														
    						_.form
    							.bind('submit',function(){
    								if(_.validate)
    									_.submitFu()
    								else
    									_.form[0].submit()
    								return false
    							})
    							.bind('reset',function(){
    								_.labels.removeClass(_.invalidCl)									
    								_.labels.each(function(){
    									var th=$(this)
    									_.hideErrorFu(th)
    									_.hideEmptyFu(th)
    								})
    							})
    						_.form.trigger('reset')
    					}
    				}
    			_.me||_.init(_.me=th.data({forms:_}))
    			typeof o=='object'
    				&&$.extend(_,o)
    		})
    	}
    })(jQuery)
    
    $(window).load(function() {
        $('#ContactForm').forms({
            ownerEmail:'#'
       	});
    });
    in Mailhandler.php

    PHP-Code:
    <?php
        $owner_email 
    $_POST["owner_email"];
        
    $headers 'From:' $_POST["email"];
        
    $subject 'A message from your site visitor ' $_POST["name"];
        
    $messageBody "";
        
        if(
    $_POST['name']!='nope'){
            
    $messageBody .= '<p>Visitor: ' $_POST["name"] . '</p>' "\n";
            
    $messageBody .= '<br>' "\n";
        }
        if(
    $_POST['email']!='nope'){
            
    $messageBody .= '<p>Email Address: ' $_POST['email'] . '</p>' "\n";
            
    $messageBody .= '<br>' "\n";
        }else{
            
    $headers '';
        }
        if(
    $_POST['state']!='nope'){        
            
    $messageBody .= '<p>State: ' $_POST['state'] . '</p>' "\n";
            
    $messageBody .= '<br>' "\n";
        }
        if(
    $_POST['phone']!='nope'){        
            
    $messageBody .= '<p>Phone Number: ' $_POST['phone'] . '</p>' "\n";
            
    $messageBody .= '<br>' "\n";
        }    
        if(
    $_POST['fax']!='nope'){        
            
    $messageBody .= '<p>Fax Number: ' $_POST['fax'] . '</p>' "\n";
            
    $messageBody .= '<br>' "\n";
        }
        if(
    $_POST['message']!='nope'){
            
    $messageBody .= '<p>Message: ' $_POST['message'] . '</p>' "\n";
        }
        
        if(
    $_POST["stripHTML"] == 'true'){
            
    $messageBody strip_tags($messageBody);
        }
        
        try{
            if(!
    mail($owner_email$subject$messageBody$headers)){
                throw new 
    Exception('mail failed');
            }else{
                echo 
    'mail sent';
            }
        }catch(
    Exception $e){
            echo 
    $e->getMessage() ."\n";
        }
    ?>
    in MailHandler.ashx

    Code:
    <%@ WebHandler Language="C#" Class="Handler" Debug="true" %>
    
    using System;
    using System.Web;
    using System.Net.Mail;
    using System.Text.RegularExpressions;
    
    public class Handler : IHttpHandler {
    	public void ProcessRequest (HttpContext context) {
    		SmtpClient mailClient = new SmtpClient(context.Request.Form.Get("smtpMailServer"));
    		string owner_email = context.Request.Form.Get("owner_email");
    		string subject = "A message from your site visitor " + context.Request.Form.Get("name");
    		string email = context.Request.Form.Get("email");
    		string messageBody = "";
    	
    		messageBody += "<p>Visitor: " + context.Request.Form.Get("name") + "</p>\n";
    		messageBody += "<br>\n";
    		messageBody += "<p>Email Address: " + context.Request.Form.Get("email") + "</p>\n";
    		messageBody += "<br>\n";
    		messageBody += "<p>Phone Number: " + context.Request.Form.Get("phone") + "</p>\n";
    		messageBody += "<br>\n";
    		messageBody += "<p>Message: " + context.Request.Form.Get("message") + "</p>\n";
    	
    			
    		MailMessage message = new MailMessage();
    	
    		try{
    			message.From = new MailAddress(email.ToString());
    		}catch (FormatException e) {
    			context.Response.Write(e.Message);
    		}
    	
    		message.To.Add(owner_email);
    		message.Subject = subject;
    		if(context.Request.Form.Get("stripHTML") == "true"){
    			message.IsBodyHtml = false;
                messageBody = Regex.Replace(messageBody, "<.*?>", string.Empty);
    		}else{
    		  	message.IsBodyHtml = true;
    		}
    		message.Body = messageBody;
    		
    		try{
    			mailClient.Send(message);
    		}catch (SmtpException e) {
    			context.Response.Write("mail failed");
    		}
    		context.Response.Write("mail sent");
    	}
    
    	public bool IsReusable {
    		get	{
    			return false;
    		}
    	}
    }
    Das war's eigentlich. Beim Rest kann ich mir nicht zusammen reimen...

    Nun meine Frage wie bekomme ich sowas ans laufen? Habe schon verzweifelt nach einem "mailto" oder mailsent" Begriff gesucht also irgendwo wo ich meine Emailadresse eingeben kann.
    Ich wäre euch sehr sehr Dankbar!


  • #2
    Ich poste mal alles was damit zu tun hat.
    Sorry, aber: Nö, so geht das nicht.


    Fachfragen zu bestimmten Softwareprodukten

    Forenrichtlinien


    [MOD: Thread geschlossen]
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar

    Lädt...
    X