Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Kontaktformular

Einklappen

Neue Werbung 2019

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

  • Problem mit Kontaktformular

    Im Netz habe ich folgendes Kontaktformular gefunden

    PHP-Code:
    <h1>Bewerbung</h1>

    <?php

    $Empfaenger 
    "empfänger@domain.de";

    if(
    $_REQUEST['Send']) {
        if(empty(
    $_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht'])) {
            echo 
    "Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
        } 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
    "Vielen Dank für Ihre eMail!";
    }
    } else {
    ?>
    <table border="0" cellpadding="1" cellspacing="2">
    <form action="<?php echo $_SERVER['PHP_SELF?site=casting2']; ?>" enctype="multipart/form-data" method="post">
    <tr>
    <td>Name:</td>
    <td><input name="Name" size="20" type="text"></td>
    </tr>
    <tr>
    <td>eMail:</td>
    <td><input name="Email" size="20" type="text"></td>
    </tr>
    <tr>
    <td>Betreff:</td>
    <td><select name="Betreff" size="1"><option>Hilfe</option><option>Kritik</option><option>Werbung</option></select></td>
    </tr>
    <tr>
    <td>Nachricht:</td>
    <td><textarea cols="25" name="Nachricht" rows="5"></textarea></td>
    </tr>
    <tr>
    <td>Anhang:</td>
    <td><input name="Anhang" size="20" type="file"></td>
    </tr>
    <tr>
    <td align="center" colspan="2"><input name="Send" type="submit" value="Abschicken"> <input name="Reset" type="reset" value="Löschen"></td>
    </tr>
    </form>
    </table>
    <?php ?>
    Wenn ich es absende, wird die Mail zwar abgeschickt, jedoch erhalten folgende Fehlermeldung

    Warning: fread(): supplied argument is not a valid stream resource in [...]casting2.php on line 54
    Eine Mail kommt an mit dem Anhang attachment.txt. Wenn ich den Anhang öffnen will, sagt Thunderbird, dass die Mail anscheinend keinen Anhang hat... Wo liegt hier das Problem?


  • #2
    änder mal die zeile
    PHP-Code:
    $Dateiinhalt fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']); 
    in
    PHP-Code:
    $Dateiinhalt =file_get_contents($_FILES['Anhang']['tmp_name']); 
    aber ich denke der Script ist etwas älter wegen den $_REQUEST. würde sagen , such nach einem neuen
    apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

    Kommentar


    • #3
      Älter ist es auf jeden Fall. Das Problem mit der Fehlermeldung ist nun beseitigt. Allerdings bleibt noch das Problem mit dem Anhang. $_REQUEST sollte sich doch durch $_POST ersetzen lassen.

      Kommentar


      • #4
        Zitat von picco Beitrag anzeigen
        Älter ist es auf jeden Fall. Das Problem mit der Fehlermeldung ist nun beseitigt. Allerdings bleibt noch das Problem mit dem Anhang. $_REQUEST sollte sich doch durch $_POST ersetzen lassen.
        nicht überall $_REQUEST ist allgemein bei request spielt es keine rolle ob nun eine wert von $_POST oder $_GET ankommt, es wird immer angenommen. du musst schon drauf achten steht der wert aus der URL in der variable oder aus dem formular
        apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

        Kommentar


        • #5
          Wieder etwas dazugelernt Die Formularfelder werde ich noch ein wenig absichern müssen. Wichtig ist mir erst einmal, dass das Script überhaupt funktioniert.

          Kommentar

          Lädt...
          X