Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular mit Upload

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formular mit Upload

    habe da ein kleines problem! versuche da im formular einzufügen,
    das man eine datei mitversenden kann!
    soweit hat es auch schon mal geklappt,
    aber jetzt bekomme ich eine fehlermeldung und die
    datei wird nicht übertragen! wie kann ich am besten in mein
    bestehendes formular einbauen?! hat jemand eine idee?

    so sieht der code aus, welches die datei verarbeiten und mitsenden sollte:

    PHP-Code:
    $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";
    while(list(
    $Formularfeld$Wert)=each($_REQUEST))
    {
    if(
    $Formularfeld!="senden" && $Formularfeld!="Anhang")
    {
    $Header .= $Formularfeld.": ".$Wert."\n";
    }
    }

    $Header .= "\nDatum und Zeit: ";
    $Header .= date("d.m.Y - H:i:s");
    $Header .= "\n\n\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--"

    vorallem mit dieser zeile habe ich probleme:

    PHP-Code:
    $Dateiinhalt fread(fopen($_FILES['Anhang']['tmp_name'], "r"),  $_FILES['Anhang']['size']); 

    da bekomme ich folgende meldung:

    Warning: fread(): supplied argument is not a valid stream resource

    So kommt bei mir übrigens der Anhang an: GIF89a¼ æ


    kann mir da jemand weiterhelfen?

    danke vielmals......

  • #2
    um mail Fehlern vorzubeugen PHPmailer benutzen.

    Da klappt dann sowas auch ...

    Ausserdem könntest du bitte die PHP-Tags mit benutzen .. sonst liest sich Quellcode wirklich nicht gut

    Kommentar


    • #3
      hmm.... danke für den link. verzeihung wegen dem Code

      ansonsten funktioniert das auch. nur jetzt nicht als ich es in ein formular eingebunden habe, das ich geschrieben habe.

      alles wird mitverschickt, nur eben der anhang nicht!

      Kommentar


      • #4
        verzeihung wegen dem Code
        Dann korrigier das auch bitte, vorher schau ich ihn mir nicht an!

        Kommentar


        • #5
          verzeihung, habs gerade getan aber noch nicht abgeschickt

          Kommentar


          • #6
            weiss niemand einen rat? wo liegt wohl der fehler?

            Kommentar


            • #7
              Benutz den PHPmailer für sowas ansonsten Google:

              Zitat von Google
              Ergebnisse 1 - 10 von ungefähr 2.180.000 für "supplied argument is not a valid stream resource". (0,53 Sekunden)

              *lol*

              Kommentar


              • #8
                Naja, die meisten dieser Treffer sind selber dieser Fehler^^

                Kommentar


                • #9
                  mailbody wird nicht übertragen

                  Das Bild wird übertragen, nur eben der mailbody nicht?! hat jemand eine idee, woran das liegen könnte?

                  PHP-Code:
                      //Anhang - Datei mitsenden (Verarbeitung)
                          
                  $Trenner md5(uniqid(time()));

                          
                  $Upload .= "MIME-Version: 1.0"
                          
                  $Upload .= "\n"
                          
                  $Upload .= "Content-Type: multipart/mixed;boundary=$Trenner"
                          
                  $Upload .= "\n\n"
                          
                  $Upload .= "This is a multi-part message in MIME format"
                          
                  $Upload .= "\n"
                          
                  $Upload .= "--$Trenner"
                          
                  $Upload .= "\n"
                          
                  $Upload .= "Content-Type: text/plain"
                          
                  $Upload .= "\n"
                          
                  $Upload .= "Content-Transfer-Encoding: 8bit"
                          
                          
                  $Upload .= "\nDatum und Zeit: ";
                          
                  $Upload .= date("d.m.Y - H:i:s");
                          
                  $Upload .= "\n\n\n"
                          
                  $Upload .= "--$Trenner"
                          
                  $Upload .= "\n"
                          
                  $Upload .= "Content-Type: ";
                          
                  $Upload .= $_FILES['Anhang']['type'];
                          
                  $Upload .= "; name=";
                          
                  $Upload .= $_FILES['Anhang']['name']; 
                          
                  $Upload .= "\n"
                          
                  $Upload .= "Content-Transfer-Encoding: base64"
                          
                  $Upload .= "\n"
                          
                  $Upload .= "Content-Disposition: attachment; filename=";
                          
                  $Upload .= $_FILES['Anhang']['name']; 
                          
                  $Upload .= "\n\n"
                          
                  $Dateiinhalt fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
                          
                  $Upload .= chunk_split(base64_encode($Dateiinhalt));
                          
                  $Upload .= "\n";
                          
                  $Upload .= "--$Trenner--";
                      
                          
                      
                  // check ob ein fehler aufgetaucht 
                      
                  if ($isError){
                          
                  // fehlermeldung ausgeben und form neu zeichnen 
                          
                  include("formupload.php");
                          
                      } else {
                          
                  // mail body zusammensetzen 
                          
                  $mailbody  "Es ist folgendes Formular eingetroffen!\n\n";
                          
                  $mailbody .= "Betreff: " .$betreff."\n\n";
                          
                  $mailbody .= "Namen: " .$namen."\n";
                          
                  $mailbody .= "Email: " .$email."\n\n";
                          
                  $mailbody .= "Kommentar: " .$kommentar."\n\n";
                      
                          
                  // mail versenden 
                          // mail(empfaenger, subject, nachricht [,header]) :  versendet ein mail mit dem angegeben subject und dem entsprechenden
                          //                                                       inhalt an den empfaenger. gibt bei erfolg true anderalls false zurueck
                          
                          
                  $header "From:" .$email."\nReply-To: ".$email."\n" .$Upload."";
                          
                          if (
                  mail("E-Mail Adresse Empfänger""Upload Formular"$mailbody$header )) {
                              
                              
                  ?> 

                  Kommentar


                  • #10
                    Zitat von M3g4Star
                    um mail Fehlern vorzubeugen PHPmailer benutzen.
                    der PHPMailer beißt nicht, ist kostenlos und stubenrein. Außerdem funktioniert er im Gegensatz zu deinem Skript.

                    Was spricht nochmal dagegen ihn einzusetzen?

                    Kommentar


                    • #11
                      hast dir schon mal deinen mailbody ausgeben lassen bevor du ihn abschickst ?!?!

                      Ansonsten .. Kann ich nur wieder mal sagen :

                      http://phpmailer.sourceforge.net/

                      Kommentar


                      • #12
                        nichts. ich wollte nur mein script zum funktionieren bringen

                        Kommentar


                        • #13
                          Das ist auch legitim, aber bevor man sich zu sehr verhaddert ist das Zurückgreifen auf altbewährtes allemal besser.
                          Außerdem könntest du dir ja anschauen, wie der PHPMailer deine Mail formatiert und dann vergleichen.

                          Kommentar


                          • #14
                            PHP-Code:
                            <?php
                            if ($isError){
                                    
                            // fehlermeldung ausgeben und form neu zeichnen 
                                    
                            include("formupload.php");
                                    
                                } else { 
                            ?>
                            damit begrnzt du doch irgentwas .. hast du $isError schon mal ausgeben lassen .. !??! Mei jetzt lass dir nicht alles aus der Nase ziehen ...

                            Wenn $mailbody leer bleibt dann musst halt weiter forschen ...

                            Kommentar


                            • #15
                              also ich habe zwei dateien. ein formupload.php
                              und ein upload.php. die erste datei beinhaltet das formular,
                              den aufbau und das ganze.

                              das upload.php verarbeitet das ganze. erstens wird
                              übrprüft ob, namen, email, nachricht usw. korrekt
                              ausgefüllt wurden.
                              wenn nicht werden error meldungen ausgeben, mit

                              PHP-Code:
                              // check ob ein fehler aufgetaucht 
                                  
                              if ($isError){
                                      
                              // fehlermeldung ausgeben und form neu zeichnen 
                                      
                              include("formupload.php"); 
                              wird das das formular neu ausgegeben.

                              ich habe mit einem echo, geschaut ob die
                              daten übetragen werden, und dies ist auch der fall.
                              nur wenn man die email bekommt, ist lediglich das bild davei
                              aber keine angaben zur person, wie name,
                              email usw.! und genau das möchte ich noch
                              zum funktionieren bringen. das formular
                              funktioniert ansonsten einwandfrei, auch ohne dateianhang.

                              Kommentar

                              Lädt...
                              X