..was ist falsch am Formular?

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

  • ..was ist falsch am Formular?

    Guten Morgen,

    ich habe das Problem das mein Script zwar einwandfrei sendet, aber mir statt dem Bild was ich lade nur eine Textdatei mitsendet. Wieso?
    Und zudem bringt es mir diese Meldung im Browser:

    Warning: fread(): supplied argument is not a valid stream resource in /var/www/l3s9466/html/dream.php on line 34

    Warning: fclose(): supplied argument is not a valid stream resource in /var/www/l3s9466/html/dream.php on line 35
    email wurde versandt

    _dream.php ist diese Seite._

    Vielen Dank!

    Hier mein Script:

    <html><head><title>Mail verschicken mit PHP </title></head>
    <body>
    <form action=<?php print $_SERVER['../ether-net']; ?> enctype=multipart/form-data method=post>
    <table>
    <tr><td>Nachname</td><td><input type=text name=Nachname></td></tr>
    <tr><td>Vorname</td><td><input type=text name=Vorname></td></tr>
    <tr><td>Beruf</td><td><input type=text name=Beruf></td></tr>
    <tr><td>Telefon</td><td><input type=text name=Telefon></td></tr>
    <tr><td>email</td><td><input type=text name=mailaddi></td></tr>
    <tr><td colspan=2><input type=file name=datei></td></tr>
    <tr><td colspan=2 align=middle><input type=submit value="abschicken"></td></tr>
    </table></form>
    </body>
    </html>
    <?
    $grenze="grenzlinie";
    $name_des_bildes=$HTTP_POST_FILES['datei']['name'];
    $headers ="MIME-Version: 1.0\r\n";
    $headers.="From: $mailaddi\n";
    $headers.="Content-Type: multipart/mixed;\n\tboundary=$grenze\n";
    #$botschaft<I></I>="\n--$grenze\n";
    $botschaft.="Content-transfer-encoding: 7BIT\r\n";
    $botschaft.="Content-type: text/plain\n\n";
    $botschaft.= "Guten Tag $Vorname $Nachname. $Beruf ist ein schöner Beruf.
    Wir werden uns in Kürze unter der genannten Rufnummer
    $Telefon mit Ihnen in Verbindung setzen. \n";
    $botschaft.="\n\n";
    $botschaft.="\n--$grenze\n";
    $botschaft.="Content-Type: application/octetstream;\n\tname=$name_des_bildes\n";
    $botschaft.="Content-Transfer-Encoding: base64\n";
    $botschaft.="Content-Disposition: attachment;\n\tfilename=$name_des_bildes\n\n";
    $zeiger_auf_datei=fopen("$datei","rb");
    $inhalt_der_datei=fread($zeiger_auf_datei,filesize("$datei"));
    fclose($zeiger_auf_datei);
    $inhalt_der_datei=chunk_split(base64_encode($inhalt_der_datei));
    $botschaft.=$inhalt_der_datei;
    $botschaft.="\n\n";
    $botschaft.="--$grenze";
    mail("s.k@ether-net.de","test mit attachements",$botschaft,$headers);
    print "email wurde versandt";
    ?>

  • #2
    1. an die spielregeln halten und [ php ] tags benutzen, um deinen code auch hier lesbar zu machen.
    2. HTTP_POST_FILES ist völlig veraltet und wird bald nicht mehr unterstützt, also $_FILES, $_POST und $_GET verwenden.
    3. error_reporting(E_ALL); als erste zeile aller deiner skripte verwenden. damit hättest du den fehler auch selbst gefunden.
    4. keine short open tags. <?php statt nur <?, sonst gibt's konflikte mit sonstigen dateien, z.b. XML.
    5. $_SERVER['../ether-net']; äh... gibt's das überhaupt? nö.
    6. $datei statt "$datei". verhindert typecasting.
    7. $datei ist undeklariert. du meinst wohl $_FILES['datei']['tmp_name'] ?

    das erstmal... und dann nochmal weiterschauen.

    Kommentar


    • #3
      Heißer Tipp: lesen statt raten.

      http://de.php.net/manual/de/features.file-upload.php

      Kommentar


      • #4
        bitte code formatieren.. danke
        2 meiner pages:

        Kommentar

        Lädt...
        X