Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehlermeldung beim Kontaktformular

Einklappen

Neue Werbung 2019

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

  • Fehlermeldung beim Kontaktformular

    Hallo zusammen.
    Ich bin neu hier, habe das Forum durchsucht aber nicht das passende gefunden. Ich hoffe ihr könnt mir weiterhelfen.

    Für meinen Blog habe ich folgendes Kontaktformular erstellt:

    PHP-Code:
    <?php

    $zieladresse 
    'info@profi-sparen.de';

    $absenderadresse 'kontakt@profi-sparen.de';

    $absendername 'Kontakt';

    $betreff 'Feedback';

    $urlDankeSeite 'profi-sparen.de/index.php';

    $trenner ":\t"// Doppelpunkt + Tabulator


    if ($_SERVER['REQUEST_METHOD'] === "POST") {

        
    $header = array();
        
    $header[] = "From: ".mb_encode_mimeheader($absendername"utf-8""Q")." <".$absenderadresse.">";
        
    $header[] = "MIME-Version: 1.0";
        
    $header[] = "Content-type: text/plain; charset=utf-8";
        
    $header[] = "Content-transfer-encoding: 8bit";
        
        
    $mailtext "";

        foreach (
    $_POST as $name => $wert) {
            if (
    is_array($wert)) {
                foreach (
    $wert as $einzelwert) {
                    
    $mailtext .= $name.$trenner.$einzelwert."\n";
                }
            } else {
                
    $mailtext .= $name.$trenner.$wert."\n";
            }
        }

        
    mail(
            
    $zieladresse
            
    mb_encode_mimeheader($betreff"utf-8""Q"), 
            
    $mailtext,
            
    implode("\n"$header)
        ) or die(
    "Die Mail konnte nicht versendet werden.");
        
    header("Location: $urlDankeSeite");
        exit;
    }
    header("Content-type: text/html; charset=utf-8");

    ?>


    Das dazugehörige Kontaktformular sieht dann so aus:


    Code:
    <form name="kontaktformular" id="kontakt" action="#" method="post" style="margin-top:50px;">
    		
    <div class="zeile">
    <span class="label">Name</span> <span class="feldrand"> 
    <input type="text" class="dfbreite" size="35"></span>
    </div>
    						
    <div class="zeile">
    <span class="label">Email</span> <span class="feldrand"> 
    <input type="text" class="dfbreite" size="35"></span>
    </div>
    						
    <div class="zeile">
    <span class="label">Kommentar</span> <span class="feldrand"> 
    <textarea name="textarea" cols="26" rows="7" class="dfbreite"></textarea>
    </span></div>
    						
    <div class="zeile"><span class="label">&nbsp;</span> <span class="radio">
    <input type="radio" value="JA" checked="checked" name="newsletter">
    Ja, ich möchte den Newsletter bestellen<br>
    						
    <input type="radio" value="NEIN" checked="checked" name="newsletter">
    Nein, ich möchte keinen Newsletter.
    </span></div>
    						
    <div class="schaltflaeche">
    <input type="submit" value="senden">
    &nbsp;
    <input type="reset" value="zurück">
    </div>

    Jetzt wollte ich das ganze mal testen. Die Seite ist online etc. und die Mailkonten erstellt.
    ABER: es erscheint nach dem Absenden eine Meldung:

    Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/"USER"/profi-sparen.de/kontakt.php:1) in /www/htdocs/"USER"/profi-sparen.de/kontakt.php on line 42


    Ich hoffe ihr könnt mir helfen, ich verzweifel hier, weil ich den Fehler nicht finde

    Danke schonmal im Voraus!

  • #2
    1. Schritt Fehlermeldung übersetzten

    PS: Mails sollte man nicht mit mail() versenden. (Siehe Signatur)
    [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
    [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

    Kommentar


    • #3
      Vor dem Senden eines headers

      Code:
      header("Content-type: text/html; charset=utf-8");
      darf keine Ausgabe erfolgen. Dazu gehören auch Leerzeichen oder Zeilenumbrüche vor dem <?php - Code.
      [URL]http://hallophp.de[/URL]

      Kommentar


      • #4
        Wow, erstmal vielen Dank für die schnellen Antworten.
        Ich werde mir die Seite mal anschauen. Da ich aber nur ein Amateur-HTMLer bin, wird das wohl wieder alles viel Arbeit werden.

        Ich hatte diesen Code damals von Selfhtml übernommen und angepasst.

        Asipak, was meinst du genau mit der Ausgabe? Bin leider noch php-Anfänger.

        Sorry für die "Noob"-Fragen, aber ich arbeite mich da momentan noch rein.

        Danke schonmal

        Kommentar


        • #5
          Ich tippe auf Datei-Format UTF-8 mit BOM. Du musst das Dateiformat in deinem Editor auf UTF-8 ohne BOM ändern
          Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

          Kommentar


          • #6
            Hallo, wollte mich nur kurz zurückmelden, sorry für die späte Antwort.

            Erstmal herzlichen Dank für eure tolle und schnelle Hilfe!!

            Der Fehler lag tatsächlich in der UTF8 kodierung.
            Geändert, alles läuft! Top Leute. Danke!

            Kommentar

            Lädt...
            X