Antworten auf deine Fragen:
Neues Thema erstellen

Kontaktformular mit Anhang - if empty Anhang else Echo

nostra87

Nicht mehr ganz neu hier

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:
<?php

$Empfaenger = "Max@Mustermann.de";

if($_REQUEST['Send'])
{
    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']))
    {
        echo"Please complete all fields!";
    }
    else
    {
        $Mailbetreff = "Kontakt: ";
        $Mailbetreff .= $_REQUEST['Name'];

        $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"Antwort Nachricht.";
   }
}
else
{
?>
 

nostra87

Nicht mehr ganz neu hier

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:
empty($_REQUEST['Anhang'])
Ich änders mal mit _GET


Edit: Muss ich etwa alle
PHP:
_FILES

mit
PHP:
$HTTP_FILES_VARS
ersetzen?
 
Zuletzt bearbeitet:

netbandit

Aktives Mitglied

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:
$Header .= $_FILES['Anhang']['type'];

Grüße

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

nostra87

Nicht mehr ganz neu hier

AW: Kontaktformular mit Anhang - if empty Anhang else Echo

Na eben, willst Du auf Dateiuploadvariablen

Zum Edit: Nein, die waren richtig. Nur empty($_REQUEST['Anhang']) ist falsch.


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

PHP:
!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:
empty($_FILES['Anhang']
Scheint er die IF Abfrage nicht ernst zu nehmen.

Lieben Gruß
 

netbandit

Aktives Mitglied

AW: Kontaktformular mit Anhang - if empty Anhang else Echo

Poste doch bitte mal das komplette Formular; von <form... bis .../form>
 

nostra87

Nicht mehr ganz neu hier

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:
if(... && !isset($_FILES['anhang']['name'])) { ..


Hallo @saila!

(gelöst) Genau das war der Punkt:

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

:)



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

:)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben