Henry: URL wenn Formular abgesendet wurde herausfinden

Hallo,

für einen Kunden möchte ich mit Hilfe von Google Analytics auswerten, wie häufig das Kontaktformular abgesendet wird.

Diesbezüglich muss ich in Google-Analytics die URL hinterlegen, welche erreicht wird, nachdem auf den Button "Absenden" auf dem Kontaktformular geklickt wurde.

Sobald ich auf das Kontaktformular gehe wird folgende URL im Browserfenster angezeigt:

http://<domäne Kunde>/Kontakt

Nachdem ich auf den Absenden Button des Kontaktformulars geklickt habe ändert sich die URL leider nicht. Erhofft hätte ich mir, dass sich die URL folgendermaßen ändern:

http://<domäne Kunde>/Kontakt/abgesendet

Würde ich bei Google Analytics "http://<domäne Kunde>/Kontakt" hinterlegen, so würden alle die, die das Kontaktformular besuchen getrackt, ich möchte aber nur jene tracken, die auch auf "Absenden" geklickt haben.

Welche Möglichkeit gibt es um dies zu realisieren?

Muss ich da vielleicht irgendeinen Parameter mit angeben?

Falls ja, wie kann ich herausfinden was ich angeben muss?

  1. مرحبا

    Welche Möglichkeit gibt es um dies zu realisieren?

    Eine ganze Menge.

    Muss ich da vielleicht irgendeinen Parameter mit angeben?

    Du könntest die neue Adresse direkt im Formular im action-Attribut angeben, dann wird der User bei Post auf die Seite geschickt.

    <form action"/kontakt/gesendet" method="wai">  
    </form>
    

    Oder mit PHP bei erfolgreichem Post auf die Seite weiterleiten via header().

    Oder mit einem Meta-Redirect auf die betreffende Seite leiten.

    Oder mit Javascript.

    Falls ja, wie kann ich herausfinden was ich angeben muss?

    Wie ist dein Formular aufgebaut?

    mfg

    1. Wie ist dein Formular aufgebaut?

      Hier der Link zur konkreten URL. Vielleicht könnt Ihr mir sagen, wie ich mein Anliegen mit dem betreffenden Formularaufbau am einfachsten realisieren kann:

      http://www.fs-buerosysteme.lu/kontakt/

      1. مرحبا

        Wie ist dein Formular aufgebaut?

        Hier der Link zur konkreten URL. Vielleicht könnt Ihr mir sagen, wie ich mein Anliegen mit dem betreffenden Formularaufbau am einfachsten realisieren kann:

        http://www.fs-buerosysteme.lu/kontakt/

        Da wird das Formular doch auf eine entsprechende Seite geleitet?

        <form method="post" id="validate_form" name="contact_form" action="http://www.fs-buerosysteme.lu/wp-content/themes/fs-buerosysteme/contact_form.php">  
        </form>
        

        Da ich nicht weiss, wohin die Mail geht, habe ich mir einen Post erspart. Wenn alles richtig läuft, sollte der User nach erfolgreichem Post auf die Seite

        /wp-content/themes/fs-buerosysteme/contact_form.php

        umgeleitet werden. Darf ich zu testzwecken eine Mail abschicken?

        mfg

        1. Da ich nicht weiss, wohin die Mail geht, habe ich mir einen Post erspart. Wenn alles richtig läuft, sollte der User nach erfolgreichem Post auf die Seite

          /wp-content/themes/fs-buerosysteme/contact_form.php

          umgeleitet werden. Darf ich zu testzwecken eine Mail abschicken?

          Genau das ist mein Problem, nachdem ich die E-Mail versandt habe wir nach wie vor

          http://www.fs-buerosysteme.lu/kontakt/

          in der Browserleiste angezeigt und eben nicht

          /wp-content/themes/fs-buerosysteme/contact_form.php

          Ich kenn mich mir dem Quellcodekram nicht so gut aus, ich möchte einfach nur herausfinden, welches Seite ich in Analytics angeben muss, um nur die versandten Formulare zu tracken.

          Du kannst sehr gerne zu testzwecken eine E-Mail abschicken.

          Vielen Dank überigens für Deine Hilfe.

          1. مرحبا

            Genau das ist mein Problem, nachdem ich die E-Mail versandt habe wir nach wie vor

            http://www.fs-buerosysteme.lu/kontakt/

            in der Browserleiste angezeigt und eben nicht

            /wp-content/themes/fs-buerosysteme/contact_form.php

            Da das ganze vorher mit Javascript abgefangen wird, ändert sich nichts in der Adresszeile. Wird wohl irgendein Plugin machen.
            Jedenfalls kannst du es ganz einfach umgehen, in dem du ein Paar Zeilen Javascript einfügst.

            http://jsfiddle.net/kbwtS/

            Das folgende müsste in dein Javascript:

            $(function(){  
            $('#contact_form #validate_form').on('submit', function(event) {  
                   window.location = 'http://bing.com'; // natürlcih erst nach Prüfung, ob POST erfolgreich war; also ganz zum Schluss aufrufen  
            });  
            });
            

            Ich weiss nicht, ob es mit deiner JQuery-Version funktioniert. Du hast da eine etwas ältere Version installiert.

            mfg

            1. Das folgende müsste in dein Javascript:

              $(function(){

              $('#contact_form #validate_form').on('submit', function(event) {
                     window.location = 'http://bing.com'; // natürlcih erst nach Prüfung, ob POST erfolgreich war; also ganz zum Schluss aufrufen
              });
              });

              
              >   
              > Ich weiss nicht, ob es mit deiner JQuery-Version funktioniert. Du hast da eine etwas ältere Version installiert.  
                
              Ohje,  
                
              ich habe keine Ahnung von JavaScript, weiß nichtmal was JQuery ist :-(.  
                
              Muss ich  das jetzt allers lernen nur um zu wissen welche Zeile ich bei Google Analytics einfügen muss?  
                
              Die Seite ist mit Wordpress erstellt hab auch Zugriff auf das Backend. Wo und wie ich das was modifizieren muss weiß ich aber nicht :-(.  
                
              Irgendwelche Tipps?
              
              1. مرحبا

                Ohje,

                ich habe keine Ahnung von JavaScript, weiß nichtmal was JQuery ist :-(.

                Das ist schlecht.

                Muss ich  das jetzt allers lernen nur um zu wissen welche Zeile ich bei Google Analytics einfügen muss?

                Es hat ja nichts mit Google zutun, dein Problem ist ein Wordpress-Plugin.

                Die Seite ist mit Wordpress erstellt hab auch Zugriff auf das Backend. Wo und wie ich das was modifizieren muss weiß ich aber nicht :-(.

                Das ist nicht mal eben gemacht. Man müsste erstmal das betreffende Plugin finden. Bei dir werden unzählige Scripte geladen, die alles mögliche tun. Wer hat dir das eingerichtet und warum Fixed diese Person nicht das Problem?

                mfg

                1. Das ist nicht mal eben gemacht. Man müsste erstmal das betreffende Plugin finden. Bei dir werden unzählige Scripte geladen, die alles mögliche tun. Wer hat dir das eingerichtet und warum Fixed diese Person nicht das Problem?

                  Das Plugin hab ich herausgerunden. Es handelt sich um "Contact Form 7"

                  Unter "Design" ==> "Editor" ==> "contact_form.php" steht folgender Code:

                    
                  <?  
                  $your_email=trim($_POST['your_email']);  
                  $your_web_site_name=trim($_POST['your_web_site_name']);  
                  ?>  
                    
                  <?php  
                  //If the form is submitted  
                  if(isset($_POST['name'])) {  
                    
                  		//Check to make sure that the name field is not empty  
                  		if(trim($_POST['name']) === '') {  
                  			$hasError = true;  
                  		} else {  
                  			$name = trim($_POST['name']);  
                  		}  
                  		  
                  		//Check to make sure sure that a valid email address is submitted  
                  		if(trim($_POST['email']) === '')  {  
                  			$hasError = true;  
                  		} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {  
                  			$hasError = true;  
                  			$errorMessage = "Bitte tragen Sie ein g&uuml;ltige e-Mail-Adresse ein!";  
                  		} else {  
                  			$email = trim($_POST['email']);  
                  		}  
                    
                  		//Check to make sure that the phone field is not empty  
                  		if(trim($_POST['phone']) === '') {  
                  			$hasError = true;  
                  		} else {  
                  			$phone = trim($_POST['phone']);  
                  		}  
                    
                  		//company name  
                  		$company_name = trim($_POST['company_name']);  
                    
                  		//company url  
                  		$company_url = trim($_POST['company_url']);  
                    
                  			  
                  		//Check to make sure comments were entered	  
                  		if(trim($_POST['message']) === '') {  
                  			$hasError = true;  
                  		} else {  
                  			if(function_exists('stripslashes')) {  
                  				$comments = stripslashes(trim($_POST['message']));  
                  			} else {  
                  				$comments = trim($_POST['message']);  
                  			}  
                  		}  
                    
                    
                    
                  		//If there is no error, send the email  
                  		if(!isset($hasError)) {  
                    
                  			$emailTo = $your_email;  
                  			$subject = 'Eine Nachricht von '.$name;  
                  			  
                  			//message body  
                  			$body  ="Name: $name \n\n";  
                  			$body .="Email: $email \n\n";  
                  			$body .="Phone:$phone\n\n";  
                  			$body .="Company Name:$company_name\n\n";  
                  			$body .="Company Url:$company_url \n\n";  
                  			$body .="Message: $comments";  
                    
                    
                  			$headers = 'From: '.$your_web_site_name.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;  
                  			  
                  			mail($emailTo, $subject, $body, $headers);  
                    
                  			$emailSent = true;  
                  	}  
                  }  
                  ?>  
                    
                  <?php if(isset($emailSent) == true) { ?>  
                  	<div class="ok_box">  
                  		<h3>Danke, <?php echo $name;?></h3>  
                  		<p>Ihre Nachricht wurde erfolgreich verschickt. Wir melden uns in Kuerze bei Ihnen.</p>  
                  	</div>  
                  <?php } ?>  
                    
                  <?php if(isset($hasError) ) { ?>  
                  	<div class="error_box">  
                  		Es ist ein Fehler aufgetreten.  
                  		<br />  
                  		<?php echo $errorMessage;?>  
                  	</div>  
                  <?php } ?>  
                  
                  

                  Hilft dies irgendwie bei der Lösung meines Problems weiter?

                  Muss ich an diesem Code etwas ändern?

                  1. مرحبا

                    Das Plugin hab ich herausgerunden. Es handelt sich um "Contact Form 7"

                    Sehr gut!

                    <?php if(isset($emailSent) == true) { ?>
                    <div class="ok_box">
                    <h3>Danke, <?php echo $name;?></h3>
                    <p>Ihre Nachricht wurde erfolgreich verschickt. Wir melden uns in Kuerze bei Ihnen.</p>
                    </div>
                    <?php } ?>

                    kommt dir dieser Textabschnitt bekannt vor?
                    Hier kannst du mit header() weiterleiten, dafür wird dann aber nicht mehr dieser Text angezeigt, was dir aber egal sein dürfte :)

                    Ersetze folgendes (hier darfst du aber nichts falsch machen)

                    <?php if(isset($emailSent) == true) { ?>  
                    	<div class="ok_box">  
                    		<h3>Danke, <?php echo $name;?></h3>  
                    		<p>Ihre Nachricht wurde erfolgreich verschickt. Wir melden uns in Kuerze bei Ihnen.</p>  
                    	</div>  
                    <?php } ?>
                    

                    mit

                    <?php if(isset($emailSent) == true) {  
                      # Bei bedarf kannst du die URL natürlich nach belieben anpassen  
                      header ('Location: http://www.fs-buerosysteme.lu/wp-content/themes/fs-buerosysteme/contact_form.php');  
                    }  
                    ?>
                    

                    Das dürfte bereits reichen. Allerdings ist das wieder weg, sobald dieses Spezielle Plugin ein Update widerfährt.

                    mfg

                    --
                    Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
  2. Om nah hoo pez nyeetz, Henry!

    Das action-Attribut des Formulars bestimmt, wohin die Formulardaten gesendet werden.

    <form action="example.com/gesendet.html">...</form>

    und die Datei gesendet.html könnte ein "Vielen Dank" auf den Bildschirm zaubern.

    Matthias

    --
    1/z ist kein Blatt Papier.

    1. Om nah hoo pez nyeetz, Henry!

      Das action-Attribut des Formulars bestimmt, wohin die Formulardaten gesendet werden.

      <form action="example.com/gesendet.html">...</form>

      und die Datei gesendet.html könnte ein "Vielen Dank" auf den Bildschirm zaubern.

      Matthias

      Leider ist das ja nicht mit der Datei "gesendet.html" realisiert :-(.

      Wie mache ich das denn für folgende Formularrealisierung am einfachsten?

      http://www.fs-buerosysteme.lu/kontakt/