Webdesign in Siegen

Formular Pflichtfelder ändern sich farbig

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

Formular Pflichtfelder ändern sich farbig

Beitragvon -Denise- am 10.07.2008, 11:55

Hallo!

In einem Formular sollen die input-Felder von den Pflichtfeldern andersfarbig werden, wenn nichts eingetragen ist. Und eine Fehlermeldung wird dann auch angezeigt...

Das klappt auch alles soweit ganz gut, ich habe es von diesem http://www.selfphp.de/kochbuch/kochbuch.php?code=20 Tutorial in meinen schon vorhandenen Code eingebunden. Nun aber 2 Dinge, die noch nicht funktionieren.

Zum einen, die Pflichtfelder-Klasse hat am Anfang nicht die InputField-Klasse, das heißt, das diese Felder anders aussehen wo bei
Code: Alles auswählen
class="<?PHP echo $errorClass['message']; ?>"
steht. Wenn ich nichts eintrage, dann wird das Feld auch wie gewünscht gelb, wenn ich es dann wieder rausnehme hat auch das Feld die gewünschte Klasse... Was ist falsch an meinem Code, dass die Klasse nicht von Anfang an verwendet wird?

Und zum anderen wird zwar die Fehlermeldung ausgeben, dass die Pflichtfelder ausgefüllt werden müssen, wenn das aber getan wurde, dann erscheint die Nachricht nicht, dass die Felder übermittelt wurden... Kann mir da vll jemand sagen, woran das liegt?

Hier mein Code:
Code: Alles auswählen
<?php
$script = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"];

$empfaenger = ".....";
$ip = getenv ("REMOTE_ADDR");
$betreff = '.....';
$arr_daten = array(
'Nachricht' => $_POST['message'],
'Firma' => $_POST['firma'],
'Ansprechpartner' => $_POST['ansprechpartner'],
'Straße' => $_POST['strasse'],
'PLZ Ort' => $_POST['plzort'],
'Telefon' => $_POST['telefon'],
'Fax' => $_POST['fax'],
'E-Mail' => $_POST['email'],
'Imagebroschüre' => $_POST['broschure'],
'Rückruf' => $_POST['rueckruf'],
);
$errorFields = array(
'message',
'ansprechpartner',
'strasse',
'plzort',
'email');

function checkEmail( $email )
         {
            $nonascii      = "\x80-\xff";   
          $nqtext        = "[^\\\\$nonascii\015\012\"]";
          $qchar         = "\\\\[^$nonascii]";
          $normuser      = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
          $quotedstring  = "\"(?:$nqtext|$qchar)+\"";
          $user_part     = "(?:$normuser|$quotedstring)";
          $dom_mainpart  = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
          $dom_subpart   = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
          $dom_tldpart   = '[a-zA-Z]{2,5}';
          $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";
          $pattern       = "$user_part\@$domain_part";
   
          if (!preg_match( "/^$pattern$/", $email ))
          {
           return FALSE;
          }
          else
          {
           return TRUE;
          }
         }

if($_REQUEST['senden'])
{   
   if ($_POST['email_address'] !== '') {
    exit('<h1>Es ist ein Fehler aufgetreten!</h1>Sie haben ein Feld ausgefüllt, das nicht ausgefüllt weden darf.</h1>');
   }
   else {   

   for($x=0;$x<count($errorFields);$x++)
   {
    $errorClass[$errorFields[$x]] = 'inputField';
   }
   $error = FALSE;
    foreach($errorFields as $key => $value)
    {
   
        if(empty($_POST[$errorFields[$key]]))
        {
            $error = TRUE;
            $errorClass[$value] = 'errorField';
        }
   
    }
   }
if($_GET['check'] == "TRUE")
{
    $errorMessage = '<table width="100%" class="errorTable"><tr><td><b>
                    Vielen Dank!<br>Ihre Daten wurden weitergeleitet.</td></tr></table><br>';
}

if(isset($_POST['senden'])){
   
    if($error == TRUE)
    {
        $errorMessage = '<table width="100%" class="errorTable"><tr><td>
                             </td><td><b>Achtung!</b><br>
                    Es ist zu einem Fehler gekommen. Bitte füllen Sie alle
                    farblich markierten Pflichtfelder aus.</td></tr></table><br>';
    }
   else
    {
      header("Location: $script?check=TRUE");
      $header .= 'From:' .$email;
      
      $nachricht .= "Folgende Nachricht wurde von $ansprechpartner gesendet:\n\n";
         
      foreach($arr_daten as $key_daten => $value_daten)
      { if(!empty($value_daten)) { $nachricht .= "$key_daten: $value_daten\n"; }}

      $nachricht .= "IP: ".$ip."\n";
      
      mail($empfaenger, $betreff, $nachricht, $header);
      echo"<table width=\"300\" border=\"0\" class=\"yes\" cellspacing=\"0\" cellpadding=\"0\">
             <tr><td>Vielen Dank!<br />Wir werden uns umgehend bei Ihnen melden!<br /><br /><b><a href=\"javascript:history.back();\">zurück</a></td></tr></table>";
   
   }
} }

?>


Bin noch nicht so gut in php...

Liebe Grüße Denise
Benutzeravatar
-Denise-
Mitglied
 
Beiträge: 36
Registriert: 18.02.2008, 19:04
Wohnort: Sachsen

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon Basti am 10.07.2008, 12:09

Kein leichtes Script, was du dir da für den Anfang ausgesucht hast.

Leider kann ich derzeit aber noch nicht ganz nachvollziehen, was genau du meinst. Möchtest du den input-Feldern die normale Klasse für die Formatierung der Formularfelder und bei Bedarf zusätzlich die für die Markierung bei Fehlern zuweisen?
Und welche Meldung meinst du mit, "dass die Felder übertragen wurden"?
Benutzeravatar
Basti
Moderator
 
Beiträge: 2000
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon -Denise- am 10.07.2008, 12:17

Mhmm naja ich hab ja extra das Tutorial mitgeschickt, da steht ja drin wie das alles gemeint ist...
und dort steht auch:
Die CSS-Klasse belegen wir im Grundzustand mit unserer normalen CSS-Definition (15-17), da das Formular gerade erst geladen wurde und noch keine Fehler enthalten kann. Erst wenn das Formular abgeschickt wird, können sich die Klassen verändern. Zwar werden erst einmal alle Felder mit der Grundklasse belegt, im Fehlerfall aber mit der Fehler-Klasse überschrieben.


Und das klappt bei mir aber nicht....Weil bei den Pflichtfeldern steht wie schon gesagt
Code: Alles auswählen
class="<?PHP echo $errorClass['message']; ?>"


Naja und mit der Fehlermeldung, also wenn nicht alle ausgefüllt sind kommt ja: Achtung!Es ist zu einem Fehler gekommen. Bitte füllen Sie alle farblich markierten Pflichtfelder aus.

Und wenn alle ausgefüllt sind dann kommt an der Stelle halt dann sowas wie Vielen Dank! Ihre Daten wurden verschickt. Aber das wird nicht angezeigt. Ich nehme an, das hat was mit dem
Code: Alles auswählen
header("Location: $script?check=TRUE");
zu tun.
Aber ich weiß halt nicht wie ich das in meinem Script schreiben muss, damit das funktioniert.

So, ich hoffe jetzt ist noch ein bisschen Klarheit in die ganze Sache reingekommen. :)

edit: Ich bin jetzt auch nicht mehr sooo der Anfänger, habe mich in letzter viel mit php beschäftigt... Also gehöre jetzt nicht zu den vollkommenen Anfängern, aber auch nicht zu Fortgeschrittenen... ;)
Benutzeravatar
-Denise-
Mitglied
 
Beiträge: 36
Registriert: 18.02.2008, 19:04
Wohnort: Sachsen

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon Basti am 10.07.2008, 12:53

So...

Ich werde den Quelltext jetzt mal chronologisch durchgehen und alles sagen, was mir aufgefallen ist.

In Zeile 17 kannst du das Komma am Ende der Zeile weglassen. Es handelt sich ja hierbei um das letzte Element des Arrays.

Dann zu Zeile 50: Warum die Abfrage if($_REQUEST['senden'])? Wenn dies der Submit-Button des Formulars sein soll, verwendest du besser if(isset($_POST['senden'])). Jedoch frage ich mich, warum eine derartige Frage dann noch einmal in Zeile 79 folgt, wir sind ja bereits innerhalb der geschweiften Klammern der Abfrage.
Deshalb wird die Meldung (Zeile 73-77) vermutlich auch nicht angezeigt, weil dafür ja ebenfalls das Formular abgeschickt worden sein müsste. Nach der Weiterleitung per header()-Anweisung kann auf die POST-Daten aber nicht mehr zugegriffen werden.
Eine weitere mögliche Fehlerquelle ist, dass du eben diese header()-Anweisung noch vor weitere Operationen schreibst, sogar mit echo-Ausgaben. Über diese Anweisung wird jedoch ein neuer Header zugewiesen, sodass keine weiteren Ausgaben mehr gemacht werden sollten, zumal es sich ja um eine Weiterleitung handelt.
Deshalb sollte Zeile 90 erst nach Versand der Email notiert werden und die echo-Ausgabe ganz gestrichen werden. Dafür gibt es dann ja eine entsprechende Abfrage im Script anhand des übergebenen check-Parameters.
Benutzeravatar
Basti
Moderator
 
Beiträge: 2000
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon -Denise- am 10.07.2008, 13:30

Code: Alles auswählen
      <?php
$script = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"];

$empfaenger = "....";
$ip = getenv ("REMOTE_ADDR");
$betreff = '....';
$arr_daten = array(
'Nachricht' => $_POST['message'],
'Firma' => $_POST['firma'],
'Ansprechpartner' => $_POST['ansprechpartner'],
'Straße' => $_POST['strasse'],
'PLZ Ort' => $_POST['plzort'],
'Telefon' => $_POST['telefon'],
'Fax' => $_POST['fax'],
'E-Mail' => $_POST['email'],
'Imagebroschüre' => $_POST['broschure'],
'Rückruf' => $_POST['rueckruf']
);
$errorFields = array(
'message',
'ansprechpartner',
'strasse',
'plzort',
'email');

function checkEmail( $email )
         {
            $nonascii      = "\x80-\xff";   
          $nqtext        = "[^\\\\$nonascii\015\012\"]";
          $qchar         = "\\\\[^$nonascii]";
          $normuser      = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
          $quotedstring  = "\"(?:$nqtext|$qchar)+\"";
          $user_part     = "(?:$normuser|$quotedstring)";
          $dom_mainpart  = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
          $dom_subpart   = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
          $dom_tldpart   = '[a-zA-Z]{2,5}';
          $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";
          $pattern       = "$user_part\@$domain_part";
   
          if (!preg_match( "/^$pattern$/", $email ))
          {
           return FALSE;
          }
          else
          {
           return TRUE;
          }
         }

if(isset($_POST['senden']))
{   
   if ($_POST['email_address'] !== '') {
    exit('<h1>Es ist ein Fehler aufgetreten!</h1>Sie haben ein Feld ausgefüllt, das nicht ausgefüllt weden darf.</h1>');
   }
   else {   

   for($x=0;$x<count($errorFields);$x++)
   {
    $errorClass[$errorFields[$x]] = 'inputField';
   }
   $error = FALSE;
    foreach($errorFields as $key => $value)
    {
   
        if(empty($_POST[$errorFields[$key]]))
        {
            $error = TRUE;
            $errorClass[$value] = 'errorField';
        }
   
    }
   }
if($_GET['check'] == "TRUE")
{
    $errorMessage = '<table width="100%" class="errorTable"><tr><td><b>
                    Vielen Dank!<br>Ihre Daten wurden weitergeleitet.</td></tr></table><br>';
}

   
    if($error == TRUE)
    {
        $errorMessage = '<table width="100%" class="errorTable"><tr><td>
                             </td><td><b>Achtung!</b><br>
                    Es ist zu einem Fehler gekommen. Bitte füllen Sie alle
                    farblich markierten Pflichtfelder aus.</td></tr></table><br>';
    }
   else
    {
      
      $header .= 'From:' .$email;
      
      $nachricht .= "Folgende Nachricht wurde von $ansprechpartner gesendet:\n\n";
         
      foreach($arr_daten as $key_daten => $value_daten)
      { if(!empty($value_daten)) { $nachricht .= "$key_daten: $value_daten\n"; }}

      $nachricht .= "IP: ".$ip."\n";
      
      mail($empfaenger, $betreff, $nachricht, $header);
      
      header("Location: $script?check=TRUE");
   }
}
?>


Habs jetzt so geschrieben, aber da kommt eine Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\.....\kontakt.php:5) in C:\xampp\htdocs\.....\kontakt.php on line 135
Benutzeravatar
-Denise-
Mitglied
 
Beiträge: 36
Registriert: 18.02.2008, 19:04
Wohnort: Sachsen

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon Basti am 10.07.2008, 14:12

Aktuell kann ich keine Ausgabe finden, die noch vor oder nach der header()-Funktion kommt, was aber definitiv die Fehlerquelle ist.

Hast du denn sonst noch etwas in dem Dokument stehen was du nicht hier gepostet hast? Oder hat sich PHP wieder nur in der Zeile "vertan", denn 135 Zeilen hat der Quelltext ja gar nicht.
Benutzeravatar
Basti
Moderator
 
Beiträge: 2000
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon -Denise- am 10.07.2008, 14:17

Das ist von dem Script alles, aber es ist direkt mit in der Datei, wo auch das Formular mit ist. Und das ist ja aber für den Teil hier nicht wichtig. Also weißt du nicht wo das Problem liegt?
Benutzeravatar
-Denise-
Mitglied
 
Beiträge: 36
Registriert: 18.02.2008, 19:04
Wohnort: Sachsen

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon Basti am 10.07.2008, 14:36

Dann hängt es vermutlich mit dem Formular zusammen. Wenn danach noch die normale Ausgabe des Formulars folgt, dann wird der Fehler natürlich dadurch hervorgerufen. Die Weiterleitung nach erfolgreichem Versand der Email ist aber meiner Meinung nach gar nicht notwendig, da du die entsprechende Meldung ja noch auf der gleichen Seite ausgeben kannst. Du musst dann nur durch entsprechende Abfragen sicherstellen, dass das Formular auch nur dann angezeigt wird, wenn es angezeigt werden soll.
Benutzeravatar
Basti
Moderator
 
Beiträge: 2000
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon -Denise- am 10.07.2008, 14:43

Mhmmm... aber ansonsten geht ja alles... es wird halt nur die Fehlermeldung nicht angezeigt und der CSS-Stil nicht übernommen...
Benutzeravatar
-Denise-
Mitglied
 
Beiträge: 36
Registriert: 18.02.2008, 19:04
Wohnort: Sachsen

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon Ingo am 10.07.2008, 15:28

Hm, je mehr Selbstaufrufe, desto verzwickter wird's.
Soweit ich sehe, ist die Bedingung $_GET['check'] == 'TRUE' an einer Stelle eingebaut,
wo sie nicht wahr sein kann, d.h. die "Vielen Dank"-Meldung wird nie erreicht:

Entweder der Nutzer hat das Formular abgeschickt, dann ist 'check' nicht gesetzt;
oder aber es wurde vorher die Mail versendet und 'check' gesetzt, dann (beim Redirect)
hat der Nutzer aber das Formular nicht abgeschickt und 'senden' ist nicht gesetzt.

Ich fand Bastis Vorschlag, ohne Redirect zu arbeiten, einfacher und logischer. Wenn
sich das irgendwie einrichten ließe, wäre das sicher der bessere Weg. *stups*

Gruß, Ingo :)
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 782
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon -Denise- am 10.07.2008, 15:31

mhmmm, hab leider nicht so viel Ahnung davon, dass ich mir das jetzt umbauen könnte... Also so fand ich das schon nicht schlecht wie es ist, aber funktionieren müsste es halt nur noch :)


An welche Stelle müsste ich es denn einbauen, damit es funktioniert?
Benutzeravatar
-Denise-
Mitglied
 
Beiträge: 36
Registriert: 18.02.2008, 19:04
Wohnort: Sachsen

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon Ingo am 10.07.2008, 15:48

Wirf noch einmal einen Blick auf die Original-Tutorial-Datei: Dort ist die check-Abfrage
oberhalb des zweiten if(isset($_POST['submit'])) eingefügt. Das sollte besser klappen. :wink:
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 782
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon -Denise- am 10.07.2008, 15:55

Code: Alles auswählen
      <?php
$script = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"];

$empfaenger = "......";
$ip = getenv ("REMOTE_ADDR");
$betreff = '......';
$arr_daten = array(
'Nachricht' => $_POST['message'],
'Firma' => $_POST['firma'],
'Ansprechpartner' => $_POST['ansprechpartner'],
'Straße' => $_POST['strasse'],
'PLZ Ort' => $_POST['plzort'],
'Telefon' => $_POST['telefon'],
'Fax' => $_POST['fax'],
'E-Mail' => $_POST['email'],
'Imagebroschüre' => $_POST['broschure'],
'Rückruf' => $_POST['rueckruf']
);
$errorFields = array(
'message',
'ansprechpartner',
'strasse',
'plzort',
'email');

function checkEmail( $email )
         {
            $nonascii      = "\x80-\xff";   
          $nqtext        = "[^\\\\$nonascii\015\012\"]";
          $qchar         = "\\\\[^$nonascii]";
          $normuser      = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
          $quotedstring  = "\"(?:$nqtext|$qchar)+\"";
          $user_part     = "(?:$normuser|$quotedstring)";
          $dom_mainpart  = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
          $dom_subpart   = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
          $dom_tldpart   = '[a-zA-Z]{2,5}';
          $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";
          $pattern       = "$user_part\@$domain_part";
   
          if (!preg_match( "/^$pattern$/", $email ))
          {
           return FALSE;
          }
          else
          {
           return TRUE;
          }
         }
               if($_GET['check'] == "TRUE")
      {
    $errorMessage = '<table width="100%" class="errorTable"><tr><td><b>
                    Vielen Dank!<br>Ihre Daten wurden weitergeleitet.</td></tr></table><br>';
      }

if(isset($_POST['senden']))
{   
   if ($_POST['email_address'] !== '') {
    exit('<h1>Es ist ein Fehler aufgetreten!</h1>Sie haben ein Feld ausgefüllt, das nicht ausgefüllt weden darf.</h1>');
   }
   else {   

   for($x=0;$x<count($errorFields);$x++)
   {
    $errorClass[$errorFields[$x]] = 'inputField';
   }
   $error = FALSE;
    foreach($errorFields as $key => $value)
    {
   
        if(empty($_POST[$errorFields[$key]]))
        {
            $error = TRUE;
            $errorClass[$value] = 'errorField';
        }
   
    }
   }
    if($error == TRUE)
    {
        $errorMessage = '<table width="100%" class="errorTable"><tr><td>
                             </td><td><b>Achtung!</b><br>
                    Es ist zu einem Fehler gekommen. Bitte füllen Sie alle
                    farblich markierten Pflichtfelder aus.</td></tr></table><br>';
    }
   else
    {
      
      $header .= 'From:' .$email;
      
      $nachricht .= "Folgende Nachricht wurde von $ansprechpartner gesendet:\n\n";
         
      foreach($arr_daten as $key_daten => $value_daten)
      { if(!empty($value_daten)) { $nachricht .= "$key_daten: $value_daten\n"; }}

      $nachricht .= "IP: ".$ip."\n";
      
      mail($empfaenger, $betreff, $nachricht, $header);
      
      header("Location: $script?check=TRUE");
   }
}
?>


Also so habe ich es jetzt, allerdings kommt eine Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\siriusmedia\kontakt.php:5) in C:\xampp\htdocs\......\kontakt.php on line 133

und es funktioniert auch so trotzdem nicht, das Feld wird immernoch nicht angezeigt.... hmm......
Benutzeravatar
-Denise-
Mitglied
 
Beiträge: 36
Registriert: 18.02.2008, 19:04
Wohnort: Sachsen

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon Basti am 10.07.2008, 16:04

Wie bereits gesagt liegt das an den Formularausgaben, die deinen Angaben zufolge danach noch gemacht werden. Deshalb kannst du entweder das Formular nur als else-Teil der $_GET['check'] == "TRUE" Abfrage ausgeben lassen oder einmal den gesamten Quelltext posten, damit wir dir zeigen, wie es gemacht werden müsste.
Benutzeravatar
Basti
Moderator
 
Beiträge: 2000
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon -Denise- am 10.07.2008, 16:35

Code: Alles auswählen
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
......
</head>

<body>
<div id="wrapper">
  <div id="oben"><?php include('header.php'); ?></div>
  <div id="menu"><?php include('menu.php'); ?></div>
         <div id="content" style="background-image:url(images/kontakt2.jpg); background-repeat:no-repeat; background-position:bottom left;">
            <table width="650" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="10">&nbsp;</td>
    <td align="right" valign="middle"><font class="seitentitel">Kontakt</font></td>
    <td colspan="4" align="right"><img src="images/kontakt.jpg" alt="Willlkommen" width="374" height="100" /></td>
    </tr>
  <tr>
    <td width="10">&nbsp;</td>
    <td valign="bottom">&nbsp;</td>
    <td width="20">&nbsp;</td>
    <td width="10">&nbsp;</td>
    <td width="353"><p><br />
      <?php
$script = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"];

$empfaenger = "...";
$ip = getenv ("REMOTE_ADDR");
$betreff = '....';
$arr_daten = array(
'Nachricht' => $_POST['message'],
'Firma' => $_POST['firma'],
'Ansprechpartner' => $_POST['ansprechpartner'],
'Straße' => $_POST['strasse'],
'PLZ Ort' => $_POST['plzort'],
'Telefon' => $_POST['telefon'],
'Fax' => $_POST['fax'],
'E-Mail' => $_POST['email'],
'Imagebroschüre' => $_POST['broschure'],
'Rückruf' => $_POST['rueckruf']
);
$errorFields = array(
'message',
'ansprechpartner',
'strasse',
'plzort',
'email');

function checkEmail( $email )
         {
            $nonascii      = "\x80-\xff";   
          $nqtext        = "[^\\\\$nonascii\015\012\"]";
          $qchar         = "\\\\[^$nonascii]";
          $normuser      = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
          $quotedstring  = "\"(?:$nqtext|$qchar)+\"";
          $user_part     = "(?:$normuser|$quotedstring)";
          $dom_mainpart  = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
          $dom_subpart   = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
          $dom_tldpart   = '[a-zA-Z]{2,5}';
          $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";
          $pattern       = "$user_part\@$domain_part";
   
          if (!preg_match( "/^$pattern$/", $email ))
          {
           return FALSE;
          }
          else
          {
           return TRUE;
          }
         }
               if($_GET['check'] == "TRUE")
      {
    $errorMessage = '<table width="100%" class="errorTable"><tr><td><b>
                    Vielen Dank!<br>Ihre Daten wurden weitergeleitet.</td></tr></table><br>';
      }

if(isset($_POST['senden']))
{   
   if ($_POST['email_address'] !== '') {
    exit('<h1>Es ist ein Fehler aufgetreten!</h1>Sie haben ein Feld ausgefüllt, das nicht ausgefüllt weden darf.</h1>');
   }
   else {   

   for($x=0;$x<count($errorFields);$x++)
   {
    $errorClass[$errorFields[$x]] = 'inputField';
   }
   $error = FALSE;
    foreach($errorFields as $key => $value)
    {
   
        if(empty($_POST[$errorFields[$key]]))
        {
            $error = TRUE;
            $errorClass[$value] = 'errorField';
        }
   
    }
   }
    if($error == TRUE)
    {
        $errorMessage = '<table width="100%" class="errorTable"><tr><td>
                             </td><td><b>Achtung!</b><br>
                    Es ist zu einem Fehler gekommen. Bitte füllen Sie alle
                    farblich markierten Pflichtfelder aus.</td></tr></table><br>';
    }
   else
    {
      
      $header .= 'From:' .$email;
      
      $nachricht .= "Folgende Nachricht wurde von $ansprechpartner gesendet:\n\n";
         
      foreach($arr_daten as $key_daten => $value_daten)
      { if(!empty($value_daten)) { $nachricht .= "$key_daten: $value_daten\n"; }}

      $nachricht .= "IP: ".$ip."\n";
      
      mail($empfaenger, $betreff, $nachricht, $header);
      
      header("Location: $script?check=TRUE");
   }
}
?>
      Wir freuen uns über Ihren Besuch in unserer Agentur oder über einen Gesprächstermin in Ihrem Haus. 
      <p align="left">Dabei wollen wir Ihnen die Sicherheit geben, dass wir der richtige Partner für Ihre Projekte im Bereich Werbung und Unternehmenskommunikation sind.<br />
        <br />
      </p>
      </p><br />
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td><strong>Full-Service Werbeagentur <br />
.....<br />
          </strong><br />
......<br />
Fon:   (.....0<br />
Fax:   (0.....<br />
<a href......</td>
          <td><a href="...... target="_blank">Google Maps</a></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
      <br />
     <br />
     <table width="300" border="0" cellspacing="0" cellpadding="0">
       <tr>
         <td><?PHP echo $errorMessage; ?></td>
       </tr>
     </table>
     <br />
        <form enctype="multipart/form-data" action="<?PHP echo $script; ?>" method="post">
            <dl>
                <dt><label>F&uuml;r Ihre Kommentare, Fragen, Anregungen<font color="#ff0000" size="-1">*</font><br />
                  <textarea style="font-family: Arial; font-size: 10pt;" class="<?PHP echo $errorClass['message']; ?>" name="message" id="message" cols="40" rows="5"><?PHP echo $_POST['message']; ?></textarea></label>
                  <br />
                  <br />
                  <br />
                </dt>
                <table width="335" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="117"><label>Firma</label></td>
              <td width="218"><label><input name="firma" class="inputField" type="text" id="firma" size="30" value="<?PHP echo $_POST['firma']; ?>" /></label></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>Ansprechpartner<font color="#ff0000" size="-1">*</font></td>
                    <td><label><input name="ansprechpartner" class="<?PHP echo $errorClass['ansprechpartner']; ?>" type="text" id="ansprechpartner" value="<?PHP echo $_POST['ansprechpartner']; ?>" size="30" />
                    </label></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>Stra&szlig;e<font color="#ff0000" size="-1">*</font></td>
                    <td><label>
                      <input name="strasse" class="<?PHP echo $errorClass['strasse']; ?>" type="text" id="strasse" value="<?PHP echo $_POST['strasse']; ?>" size="30" />
                    </label></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>PLZ, Ort<font color="#ff0000" size="-1">*</font></td>
                    <td><label>
                      <input name="plzort" class="<?PHP echo $errorClass['plzort']; ?>" type="text" id="plzort" value="<?PHP echo $_POST['plzort']; ?>" size="30" />
                    </label></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td height="23">Telefon</td>
                    <td><label>
                      <input name="telefon" type="text" class="inputField" id="telefon" value="<?PHP echo $_POST['telefon']; ?>" size="30" />
                    </label></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>Fax</td>
                    <td><label>
                      <input name="fax" type="text" class="inputField" id="fax" value="<?PHP echo $_POST['fax']; ?>" size="30" />
                    </label></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>E-Mail<font color="#ff0000" size="-1">*</font></td>
                    <td><label>
                      <input name="email" class="<?PHP echo $errorClass['email']; ?>" type="text" id="email" value="<?PHP echo $_POST['email']; ?>" size="30" />
                    </label></td>
                  </tr>
                </table>
                <br />
                <table width="353" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="8%">
                    <input type="checkbox" name="broschure" id="broschure" value="<?PHP echo $_POST['broschure']; ?>" /></td>
                    <td><font style="line-height: 12px;">Bitte senden Sie mir kostenlos und unverbindlich eine Imagebrosch&uuml;re zu.</font></td>
                  </tr>
                  <tr>
                    <td><input type="checkbox" name="rueckruf" id="rueckruf" value="<?PHP echo $_POST['rueckruf']; ?>" /></td>
                    <td><font style="line-height: 12px;">Bitte rufen Sie mich zurück.</font></td>
                  </tr>
                </table>
                <br />
            </dl><label for="email_address"><font color="#FFFFFF">Dieses Feld bitte nicht ausfüllen:</font><input type="text" name="email_address" id="email_address" size="20" /></label>
            <!-- Ende der Beispielangaben -->
            <p>
            <input type="submit" value="Senden" name="senden" />
            <input type="reset" value="Zurücksetzen" />
            </p>
            <p><font color="#ff0000" size="-1">*</font>notwendige Angaben</p>
         </form>
      <p><br />
         <br />
</td>
    <td width="4">&nbsp;</td>
  </tr>
</table>
  </div>
  <div id="footer"><?php include('footer.php'); ?></div>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-3531808-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</body>
</html>
Benutzeravatar
-Denise-
Mitglied
 
Beiträge: 36
Registriert: 18.02.2008, 19:04
Wohnort: Sachsen

Nächste

Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast