Anzeige

Kontaktformular mit Anhang - if empty Anhang else Echo

Kontaktformular mit Anhang - if empty Anhang else Echo | PSD-Tutorials.de

Erstellt von nostra87, 30.06.2010.

  1. nostra87

    nostra87 Nicht mehr ganz neu hier

    Dabei seit:
    20.06.2007
    Beiträge:
    176
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Photoshop
    Kontaktformular mit Anhang - if empty Anhang else Echo
    Hallo Leute,

    habe folgendes Problem. Ich nutze gelegentlich dieses PHP
    Script. Habe es nach Wunsch angepasst, doch kann ich
    dem kein Befehl erteilen, dass sofern der Anhang leer ist,
    ein Echo erscheint:" Bitte füllen Sie alle Felder und hängen
    Sie eine Datei an"


    Er ignoriert einfach meine If-empty-Anhang Abfrage.
    Warum?



    PHP:
    1. <?php
    2.  
    3. $Empfaenger = "Max@Mustermann.de";
    4.  
    5. if($_REQUEST['Send'])
    6. {
    7.     if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Phone']) || empty($_REQUEST['Age'])  || empty($_REQUEST['Nationality']) || empty($_REQUEST['Firstname']) || empty($_REQUEST['Languageskills']) || empty($_REQUEST['Anhang']))
    8.     {
    9.         echo"Please complete all fields!";
    10.     }
    11.     else
    12.     {
    13.         $Mailbetreff = "Kontakt: ";
    14.         $Mailbetreff .= $_REQUEST['Name'];
    15.  
    16.         $Trenner = md5(uniqid(time()));
    17.  
    18.         $Header = "From: ".$_REQUEST['Email'];
    19.         $Header .= "\n";
    20.         $Header .= "MIME-Version: 1.0";
    21.         $Header .= "\n";
    22.         $Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
    23.         $Header .= "\n\n";
    24.         $Header .= "This is a multi-part message in MIME format";
    25.         $Header .= "\n";
    26.         $Header .= "--$Trenner";
    27.         $Header .= "\n";
    28.         $Header .= "Content-Type: text/plain";
    29.         $Header .= "\n";
    30.         $Header .= "Content-Transfer-Encoding: 8bit";
    31.         $Header .= "\n\n";
    32.         $Header .= "Sie haben folgende Nachricht erhalten: \n\n";
    33.  
    34.         while(list($Formularfeld, $Wert) = each($_REQUEST))
    35.         {
    36.             if($Formularfeld != "Send" && $Formularfeld != "Anhang")
    37.             {
    38.                 $Header .= $Formularfeld.": ".$Wert."\n";
    39.             }
    40.         }
    41.  
    42.         $Header .= "\nDatum/Zeit: ";
    43.         $Header .= date("d.m.Y H:i:s");
    44.         $Header .= "\n";
    45.         $Header .= "--$Trenner";
    46.         $Header .= "\n";
    47.         $Header .= "Content-Type: ";
    48.         $Header .= $_FILES['Anhang']['type'];
    49.         $Header .= "; name=";
    50.         $Header .= $_FILES['Anhang']['name'];
    51.         $Header .= "\n";
    52.         $Header .= "Content-Transfer-Encoding: base64";
    53.         $Header .= "\n";
    54.         $Header .= "Content-Disposition: attachment; filename=";
    55.         $Header .= $_FILES['Anhang']['name'];
    56.         $Header .= "\n\n";
    57.         $Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
    58.         $Header .= chunk_split(base64_encode($Dateiinhalt));
    59.         $Header .= "\n";
    60.         $Header .= "--$Trenner--";
    61.  
    62.         mail($Empfaenger, $Mailbetreff, "", $Header);
    63.         echo"Antwort Nachricht.";
    64.    }
    65. }
    66. else
    67. {
    68. ?>
     
    #1      
  2. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Kontaktformular mit Anhang - if empty Anhang else Echo
    AW: Kontaktformular mit Anhang - if empty Anhang else Echo

    PHP: $_REQUEST - Manual
    $_FILES gehört nicht (mehr) dazu ;)
     
    #2      
  3. nostra87

    nostra87 Nicht mehr ganz neu hier

    Dabei seit:
    20.06.2007
    Beiträge:
    176
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Photoshop
    Kontaktformular mit Anhang - if empty Anhang else Echo
    AW: Kontaktformular mit Anhang - if empty Anhang else Echo

    Hallo, danke für deine Antwort.

    wieso, ein _FILES ist bei der Abfrage garnicht vorhanden

    PHP:
    1. empty($_REQUEST['Anhang'])
    Ich änders mal mit _GET


    Edit: Muss ich etwa alle
    PHP:
    1. _FILES
    mit
    PHP:
    1. $HTTP_FILES_VARS
    ersetzen?
     
    Zuletzt bearbeitet: 30.06.2010
    #3      
  4. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Kontaktformular mit Anhang - if empty Anhang else Echo
    AW: Kontaktformular mit Anhang - if empty Anhang else Echo

    Na eben, willst Du auf Dateiuploadvariablen zugreifen musst Du $_FILES anstelle von GET, POST, REQUEST verwenden. Hast Du übrigens im übrigen Script gemacht, hier z.B.

    PHP:
    1.  
    2. $Header .= $_FILES['Anhang']['type'];
    3.  
    Grüße

    Zum Edit: Nein, die waren richtig. Nur empty($_REQUEST['Anhang']) ist falsch.
     
    Zuletzt bearbeitet: 30.06.2010
    #4      
  5. nostra87

    nostra87 Nicht mehr ganz neu hier

    Dabei seit:
    20.06.2007
    Beiträge:
    176
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Photoshop
    Kontaktformular mit Anhang - if empty Anhang else Echo
    AW: Kontaktformular mit Anhang - if empty Anhang else Echo


    Ersetzt habe ich
    PHP:
    1. empty($_REQUEST['Anhang'])
    mit:

    PHP:
    1. !isset($_REQUEST['Anhang']
    Erst dann funktionierte die If Abfrage reibungslos. Haha, der Schein trügt.
    Tatsächlich aber, verschickt er nichts mehr.

    Leider. Das Formular schickt, trotz der gefüllten Felder
    und dem gefülltem Anhang, keine Mail ab.

    :'(

    Mit:

    PHP:
    1. empty($_FILES['Anhang']
    Scheint er die IF Abfrage nicht ernst zu nehmen.

    Lieben Gruß
     
    #5      
  6. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Kontaktformular mit Anhang - if empty Anhang else Echo
    AW: Kontaktformular mit Anhang - if empty Anhang else Echo

    Poste doch bitte mal das komplette Formular; von <form... bis .../form>
     
    #6      
  7. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    Kontaktformular mit Anhang - if empty Anhang else Echo
    AW: Kontaktformular mit Anhang - if empty Anhang else Echo

    Hier das Manual zum Fileupload: PHP: Dateiuploads mit POST - Manual

    Die Prüfung per if zu Beginn muss um folgendes erweitert werden:
    Code (Text):
    1.  
    2. if(... && !isset($_FILES['anhang']['name'])) { ..
    3.  
     
    #7      
  8. nostra87

    nostra87 Nicht mehr ganz neu hier

    Dabei seit:
    20.06.2007
    Beiträge:
    176
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Photoshop
    Kontaktformular mit Anhang - if empty Anhang else Echo
    AW: Kontaktformular mit Anhang - if empty Anhang else Echo


    Hallo @saila!

    (gelöst) Genau das war der Punkt:

    bei:
    PHP:
    1. empty($_FILES['Anhang']['name'])
    Funktioniert es einwandfrei. Vielen lieben Dank.

    :)



    Auch ein großes Dankeschön an @netbandit
    Vielen Dank.

    :)
     
    #8      
x
×
×