Saintsam: Formular verschicken / aber ohne "leere" Felder

Moin Moin,

ich habe mir für eine "Art" Webshop ein php-Formular so umgebaut, dass es mir alle Angaben per eMail zuschickt.

Mein Problem: ich habe ein haufen Text-Felder die beim Versand evtl. leer sind oder mit einer 0 gefüllt.

Damit ich diese Felder bzw. die nicht mit der Mail bekommen müsste ich mein scipt so umbauen das es mir z.B. sagt: wenn das Feld (name="xy") leer ist oder eine 0 drinsteht - die Daten bitte nicht verschicken.

Und genau das bekomme ich einfach nicht hin - und BITTE BITTE BITTE euch um Hilfe:

Hier das Script:

<?php

$Empfaenger = "meineadresse@meinemserver.com";

if($_REQUEST['Send'])
{

if(empty($_REQUEST['Name']) || empty($_REQUEST['Vorname']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']) || empty($_REQUEST['Crew_Nr']) || empty($_REQUEST['Strasse']) || empty($_REQUEST['Ort']) || empty($_REQUEST['PLZ']))
 {
  echo "<center><font size=5><b>Bitte gehen Sie <a href="javascript:history.back();">zur&uuml;ck</a> und f&uuml;llen Sie alle Felder aus!</b></font></center>";
 }
 else
 {
  $Mailbetreff = "Kontakt: ";
  $Mailbetreff .= $_REQUEST['Betreff'];

$Trenner = md5(uniqid(time()));

$Header = "From: ".$_REQUEST['Email'];
  $Header .= "\n";
  $Header .= "MIME-Version: 1.0";
  $Header .= "\n";
  $Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
  $Header .= "\n\n";
  $Header .= "This is a multi-part message in MIME format";
  $Header .= "\n";
  $Header .= "--$Trenner";
  $Header .= "\n";
  $Header .= "Content-Type: text/plain";
  $Header .= "\n";
  $Header .= "Content-Transfer-Encoding: 8bit";
  $Header .= "\n\n";
  $Header .= "Sie haben folgende Nachricht erhalten: \n\n";
  while(list($Formularfeld, $Wert)=each($_REQUEST))
  {
   if($Formularfeld!="Send" && $Formularfeld!="Anhang")
   {
    $Header .= $Formularfeld.": ".$Wert."\n";
   }
  }
  $Header .= "\nDatum/Zeit: ";
  $Header .= date("d.m.Y H:i:s");
  $Header .= "\n";
  $Header .= "--$Trenner";
  $Header .= "\n";
  $Header .= "Content-Type: ";
  $Header .= $_FILES['Anhang']['type'];
  $Header .= "; name=";
  $Header .= $_FILES['Anhang']['name'];
  $Header .= "\n";
  $Header .= "Content-Transfer-Encoding: base64";
  $Header .= "\n";
  $Header .= "Content-Disposition: attachment; filename=";
  $Header .= $_FILES['Anhang']['name'];
  $Header .= "\n\n";
  $Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
  $Header .= chunk_split(base64_encode($Dateiinhalt));
  $Header .= "\n";
  $Header .= "--$Trenner--";

mail($Empfaenger, $Mailbetreff, "", $Header);
  echo "<center><font size=5><b>Die Daten wurden verschickt!</b><br>Bitte gehen Sie <a href="javascript:history.back();">hier zur&uuml;ck!</a><br> Danke!</font></center>";
   }
}
else
{
?>

und das form:

<form action="<?php echo$_SERVER['PHP_SELF']; ?>" name="anfrage" enctype="multipart/form-data" method="post">

dann folgen ein haufen text-felder - von denen ich aber nur die mit der Email verschicken möchte die auch ausgefüllt wurden.

Wie müsste ich den Code ändern?

VIELEN DANK IM VORAUS!!!

Gruss Sam!

  1. Hi,

    Mein Problem: ich habe ein haufen Text-Felder die beim Versand evtl. leer sind oder mit einer 0 gefüllt.

    Damit ich diese Felder bzw. die nicht mit der Mail bekommen müsste ich mein scipt so umbauen das es mir z.B. sagt: wenn das Feld (name="xy") leer ist oder eine 0 drinsteht - die Daten bitte nicht verschicken.

    Und genau das bekomme ich einfach nicht hin - und BITTE BITTE BITTE euch um Hilfe:

    Und warum bekommst du das "nicht hin"?
    Was hast du ueberhaupt versucht?

    Hier das Script:

    Die Stelle, an der die Feldinhalte in den Mailtext uebernommen werden, hast du doch sicher gefunden?

    Da ist sogar bereits eine Abfrage drin, um den Absende-Button und das Dateiuploadfeld an dieser Stelle auszuschliessen - also muesstest du dort nur noch eine simple Bedingung fuer "Feld leer oder Wert 0" ergaenzen.

    MfG ChrisB

    1. Jep - genau!

      Das Script hab ich von einer php-site. Bitte frag mich nicht von welcher, ist schon eine zeit lang her. ich habe mir die Formularfelder meinen wünschen nach angepasst. das ganze ist jetzt doch recht gross - aber es funktioniert!

      Zitat:"Da ist sogar bereits eine Abfrage drin, um den Absende-Button und das Dateiuploadfeld an dieser Stelle auszuschliessen - also muesstest du dort nur noch eine simple Bedingung fuer "Feld leer oder Wert 0" ergaenzen."

      Genau das ist mein Problem - das kann ich eben nicht. Ich kann es einfach nicht!!! :-(

      Und daher bitte ich um Hilfe!!!

      Wenn es nur eine simple Bedingung ist - dann bitte, bitte bitte wie ?

      Ich kann es halt nicht! Sorry!

      Gruss Sam! DANKE!

      1. Hi,

        Genau das ist mein Problem - das kann ich eben nicht. Ich kann es einfach nicht!!! :-(

        Und daher bitte ich um Hilfe!!!

        Wenn es nur eine simple Bedingung ist - dann bitte, bitte bitte wie ?

        Ich kann es halt nicht! Sorry!

        Jammern hilft nicht weiter.

        Das Mindeste, was hier von dir erwartet wird, ist, dass du deine eigenen Gedanken, die du dir zum Problem gemacht hast, mitteilst, ebenso wie das, was du bisher unternommen hast um zu versuchen, das Problem zu loesen.
        Und dass du versuchst zu beschreiben, woran du denn nun *genau* scheiterst, was *genau* dir nicht klar ist oder deine Kenntnisse uebersteigt.

        *Dann* kann man dich ggf. darauf hinweisen, ueber welche(n) Aspekt(e) der verwendeten Technik du dich genauer informieren solltest, und dir Links zum Handbuch, Tutorials etc. anbieten.

        MfG ChrisB

        1. hi Danke für die Anregung - habe eine lösung gefunden!!!

          while(list($Formularfeld, $Wert)=each($_REQUEST))
            {
             if($Formularfeld!="Send" && $Formularfeld!="Anhang")
             {
              $Header .= $Formularfeld.": ".$Wert."\n";
             }
            }

          habe hier einfach noch einen if $wert eingesetzt!

          {
          if($Formularfeld!="Send" && $Formularfeld!="Anhang") {
           if ($Wert) {
           $Header .= $Formularfeld.": ".$Wert."\n";
              }
             }
            }

          DANKE nochmal!

          Gruss

          1. Mahlzeit,

            if ($Wert) {

            Damit überprüfst Du, ob der Inhalt der Variablen $Wert TRUE ist. Möchtest Du das wirklich?

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. ich weiss nicht ob ich das will ;-)
              aber es funkitoniert und es macht
              genau das was ich will!!!

              Gruss

      2. Hi!

        Entschuldige, aber willst du uns veralbern? Das was das steht nochmal mit dem Wert, genau so wie du es schon geschrieben hast...

        Du kannst einfach in die if Abfrage, die da schon ist, nochmal ein gleiches Konstrukt bauen wenn es fuer dich zu schwierig ist, alle Bedingungen in einer zu formulieren.

        if (bedingeungen fuers Feld)
        {
         if (deine bedingungen fuer Wert)
         {
          Ausgabe
         }
        }

        Erklaer doch einfach wo Dein Problem dabei ist. Unser Problem dir zu antworten ist, dass wir nicht wissen, wo dein Problem eigentlich ist. Die Frage ist halt total simpel (immerhin lieferst du ja scon den loesungsweg selbst mit),  die Erklaerung (wo dein Loesungsweg untergebracht werden sollte) war korrekt aber 'es geht immer noch nicht'.

        Das php verstehst du doch in Grundzuegen?!