kostenloser Webspace werbefrei: lima-city


Formular Auswertung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    stargate

    Kostenloser Webspace von stargate

    stargate hat kostenlosen Webspace.

    Hallo!

    Ich habe von PHP keine Ahnung, möchte aber ein Formular auswerten, sodass der Inhalt per PHP Mail versendet wird.

    Ein passendes Script habe ich schon gefunden, wollte es umschreiben aber das hat nicht so funktioniert wie ich es wollte.
    Das Script zeigt an, dass nicht alles ausgefüllt wurde, das stimmt aber nicht ;)

    Wenn sich bitte jemand das Script mal ansehen möchte:

    HTML:
    <div id="main">
    
    <h4>Hüpfburgen - Anfrageformular</h4>
    
    <form name="kontaktformular" action="formular-senden.php" method="post" />
    
    <ul>
      
      <li>
      	<li><h5>Name:</h5>
      	<input name="name" type="text" size="40" maxlength="100" />
      </li>
      
      <li>
      	<h5>E-Mail Adresse:</h5>
      	<input name="email" type="text" id="email" size="40" maxlength="100" />
      </li>
      
      <li>
      	<h5>Telefonnummer:</h5>
      	<input name="phone" type="text" size="40" maxlength="50" />
      </li>
      
      <li>
      	<h5>Datum: von</h5>
     	 <input id="date-von" name="datum" type="text" size="40" maxlength="50" />
      </li>
    
      <li>
      	<h5>Datum: bis</h5>
     	 <input id="date-bis" name="datum" type="text" size="40" maxlength="50" />
      </li>
      
      <li>
      
      	<h5>Gewünschte Hüpfburgen</h5>
        <ul>
        	<li><input name="happyhop" type="checkbox" /> <label>Happy Hop</label></li>
        	<li><input name="greenhopper" type="checkbox" /> <label>Green Hopper</label></li>
        	<li><input name="drache" type="checkbox" /> <label>Drache</label></li>
            
            <div class="clear"></div>
            
        	<li><input name="ritterburg" type="checkbox" /> <label>Ritterburg</label></li>
        	<li><input name="feuerwehr" type="checkbox" /> <label>Feuerwehr</label></li>
        	<li><input name="rutsche" type="checkbox" /> <label>Rutsche</label></li>
            
            <div class="clear"></div>
        </ul>
      
      </li>
      
      <li>
      	<h5>Anmerkung:</h5>
      	<textarea name="nachricht" cols="40" rows="10" style="white-space: nowrap;"></textarea>
      </li>
      
      
      <div class="clear"></div>
      
      <li>
      <input class="submit" type="submit" value="Abschicken" name="submit" />
      </li>
    
    </ul>
      
    </form>
    
    </div>



    Auswertungsscript:
    <?php
    if(isset($_POST['email'])) {
         
        // EDIT THE 2 LINES BELOW AS REQUIRED
        $email_to = "webservice@worxxx.at";
        $email_subject = "Hüpfburg Anfrage";
         
         
        function died($error) {
            // your error code can go here
            echo "Es sind leider Fehler aufgetreten!";
            echo "Folgende Probleme wurden festgestellt:<br /><br />";
            echo $error."<br /><br />";
            echo "Bitte korrigiere diese Fehler!</a><br /><br />";
            die();
        }
         
        // validation expected data exists
        if(!isset($_POST['name']) ||
            !isset($_POST['email']) ||
            !isset($_POST['phone']) ||
            !isset($_POST['date-von']) ||
            !isset($_POST['nachricht'])) {
            died('Bitte füllen Sie alle Felder aus!');       
        }
         
        $name = $_POST['name']; // required
        $email = $_POST['email']; // required
        $phone = $_POST['phone']; // required
        $nachricht = $_POST['nachricht']; // required
    		
    	$huepfburgen[1] = $_POST['happyhop'];
    	$huepfburgen[2] = $_POST['greenhopper'];
    	$huepfburgen[3] = $_POST['drache'];
    	$huepfburgen[4] = $_POST['ritterburg'];
    	$huepfburgen[5] = $_POST['feuerwehr'];
    	$huepfburgen[6] = $_POST['rutsche'];
    	
    	$date[1] = $_POST['date-von'];
    	$date[2] = $_POST['date-bis'];
    	    
        $error_message = "";
        $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
      if(!preg_match($email_exp,$name)) {
        $error_message .= 'Bitte geben Sie einen gültigen Namen ein!<br />';
      }
        $string_exp = "/^[A-Za-z .'-]+$/";
      if(!preg_match($string_exp,$email)) {
        $error_message .= 'Bitte geben Sie eine gültige Email Adresse ein!<br />';
      }
      if(!preg_match($string_exp,$phone)) {
        $error_message .= 'Bitte geben Sie eine gültige Telefonnummer an!<br />';
      }
      if(strlen($nachricht) < 2) {
        $error_message .= 'Bitte geben Sie eine gültige Anmerkung ein!<br />';
      }
      if(strlen($error_message) > 0) {
        died($error_message);
      }
        $email_message = "Form details below.\n\n";
         
        function clean_string($string) {
          $bad = array("content-type","bcc:","to:","cc:","href");
          return str_replace($bad,"",$string);
        }
         
        $email_message .= "Name: ".clean_string($name)."\n";
        $email_message .= "Email Adresse: ".clean_string($email)."\n";
        $email_message .= "Telefonnummer: ".clean_string($phone)."\n";
        $email_message .= "Datum: ".clean_string($date)."\n";
        $email_message .= "Anmerkung: ".clean_string($nachricht)."\n";
        $email_message .= "Gewünschte Hüpfburgen: ".clean_string($huepfburgen)."\n";
         
         
    // create email headers
    $headers = 'From: '.$email."\r\n".
    'Reply-To: '.$email."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    @mail($email_to, $email_subject, $email_message, $headers);  
    ?>
     
    <!-- include your own success html here -->
     
    Thank you for contacting us. We will be in touch with you very soon.
     
    <?php
    }
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo,

    du versucht auf das id vom inputfeld zuzugreifen...
    PHP greift aber auf den Name zu.

    Ändere den Namen (name) von diesen 2 Feldern.


    <li>
      	<h5>Datum: von</h5>
     	 <input id="date-von" name="datum" type="text" size="40" maxlength="50" />
      </li>
    
      <li>
      	<h5>Datum: bis</h5>
     	 <input id="date-bis" name="datum" type="text" size="40" maxlength="50" />
      </li>
  4. Autor dieses Themas

    stargate

    Kostenloser Webspace von stargate

    stargate hat kostenlosen Webspace.

    Schon einmal danke für die Hilfe.
    Nachdem dieser Fehler behoben war, funktionierte das Script nach ein paar weiteren Änderungen endlich.

    Jetzt habe ich nur noch das Problem, dass die Kodierung nicht stimmt, das heißt in der Email werden die Umlaute falsch angezeigt.
    Ich weiß jetzt nicht, wo genau ich die Kodierung einstellen kann.

    Im Internet habe ich gesucht und bin auch fündig geworden:

    "Content-type: text/html; charset=utf-8"

    Man sollte das im Email Header einbauen, hab das auch schon probiert aber es funktioniert nicht:

    // create email headers
    $headers = 'From: '.$email."\r\n"."Content-type: text/html; charset=utf-8".
    'Reply-To: '.$email."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    @mail($email_to, $email_subject, $email_message, $headers )  
    ?>
  5. s*************h

    Versuche mal den Header so aufzubauen wie auf der folgenden Seite in Beispiel #4:
    http://php.net/manual/de/function.mail.php

    Oder du prüfst ob alle Dateien in UTF-8 codiert sind. Das kannst du z.B. mit Notepad++ überprüfen und gegebenenfalls konvertieren.

    Gruß S.Brosch
  6. Eventuell noch bei der Datumseingabe etw mehr Komfort gibts mit jqueryui http://jqueryui.com/demos/datepicker/,

    zum Zeichensatzproblem, ergänz mal noch
    <form action="#" method="#"  accept-charset="utf-8" > ....


    Beitrag zuletzt geändert: 3.4.2012 10:58:34 von imho
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!