Webdesign in Siegen

Formular Pflichtfelder ändern sich farbig

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon Ingo am 10.07.2008, 18:00

Na, also. Land in Sicht. Wie Basti sagte, ist alles eine Frage der Reihenfolge: Vor einem header() darf nichts
anderes ausgegeben werden. D.h. für deinen Code: Der PHP-Teil muss ganz oben in der Datei stehen, es
dürfen vorher keine Ausgaben gemacht werden, auch keine DTD oder <head>, nicht einmal Leerzeichen:

Code: Alles auswählen
<?php 
                      --- Das Skript       ... header() ...      ---
?>
<!DOCTYPE html PUBLIC ...schnippschnapp... transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
...
</html>

PS: Und jetzt von Basti die Luxus-Version:
Zuletzt geändert von Ingo am 10.07.2008, 18:06, insgesamt 1-mal geändert.
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 724
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon Basti am 10.07.2008, 18:03

So, ich habe mir gerade noch einmal die Zeit genommen, das ganze zu überarbeiten. Ich war auch so frei, das ganze etwas übersichtlicher zu machen ;)

Bei der for-Schleife für die Standardbelegung mit der Klasse inputField war wichtig, dass diese außerhalb der Bedingung isset($_POST['senden']) steht, da diese sonst ja nur bei Versand des Formulars stattfinden würde. Stattdessen soll sie ja immer stattfinden.

Das mit der header()-Funktion musste doch wieder anders herum geschrieben werden, da die mail()-Funktion anscheinend auch für Ausgaben sorgt.

Eigentlich sollte es jetzt aber funktionieren soweit ich das testen konnte. Ich würde dir aber auf Dauer von diesem Script abraten, da es nicht wirklich vom Feinsten ist, vieles ist einfach ziemlich umständlich gelöst und ließe sich vorallem für Anfänger leichter lösen.

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'
);

for($x=0;$x<count($errorFields);$x++)
{
  $errorClass[$errorFields[$x]] = 'inputField';
}

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
  {
    $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("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);
  }
}

?>
<!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 />
          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
Basti
Moderator
 
Beiträge: 1974
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Re: Formular Pflichtfelder ändern sich farbig

Beitragvon -Denise- am 11.07.2008, 08:22

Hey danke, es funktioniert! :thumbsup:

Also mit dem Script muss ich sagen, komm ich eigentlich wirklich gut zurecht, so wie es geschrieben ist. Das ist mühsam zusammengearbeitet ^^

dankeeeschöööön!

LG Denise
Benutzeravatar
-Denise-
Mitglied
 
Beiträge: 36
Registriert: 18.02.2008, 19:04
Wohnort: Sachsen

Vorherige

Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast