Fehler in kontakt.php

Mhh, also bei mir funktioniert es.
Was kommt denn für eine Fehlermeldung ?
Ansonsten mache es wie Felix Jacobi sagte mit der Ausgabesteuerung.
 
Hi,


Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/web4/40/30/5593230/htdocs/phptest/kontakt_ausw.php:1) in /mnt/web4/40/30/5593230/htdocs/phptest/kontakt_ausw.php on line 4
Kontaktformular

Email ist erfolgreich versendet worden!

Ist die 1 Zeile verkehrt eingefügt worden?

PHP:
<?php echo "<meta http-equiv='refresh'content='3; url=http://www.test.com/'>";  ?>
<?php 
	// Session starten und confog.php includen
	session_start();
	include ("config.php");
	
	// CaptchaCodes abfragen
	$CAPTCHA_RandomText = "";
	if (isset($_POST['txtCode'])){
	$CAPTCHA_EnteredText = str_replace("<","",str_replace(">","",str_replace("'","",str_replace("[","",str_replace("]","",$_POST['txtCode'])))));
	}
	if (isset($_SESSION['CAPTCHA_RndText'])) {
	$CAPTCHA_RandomText = $_SESSION['CAPTCHA_RndText'];
	}

	// Eingabefelder abfragen
	$_SESSION['name'] = $_POST['name'];
	$_SESSION['email'] = $_POST['email'];
	$_SESSION['betreff'] = $_POST['betreff'];
	$_SESSION['nachricht'] = $_POST['nachricht'];
	
	$email_i = $_SESSION['email'];
	
	// Email Funktion
	function pruefe_mail($email_i) {
		  if(strstr($email_i, "@")) {
			$email_i = explode ("@", $email_i);
			if(strstr($email_i[1], ".")) $ok = TRUE;
		  }
		  return $ok;
		}
	
	// Eingaben prüfen
	$fehler = "";
	if(!pruefe_mail($email_i) && !empty($email_i)) {
			$fehler .= "<li>Email fehlerhaft!</li>";
			}
			if ($_SESSION['name'] == ""){ 
			$fehler .= "<li>Name fehlt!</li>";
			}
			if ($_SESSION['email'] == ""){ 
			$fehler .= "<li>Email fehlt!</li>";
			}
			if ($_SESSION['betreff'] == ""){ 
			$fehler .= "<li>Betreff fehlt!</li>";
			}
			if ($_SESSION['nachricht'] == ""){ 
			$fehler .= "<li>Nachricht fehlt!</li>";
			}
			if ($CAPTCHA_EnteredText == $CAPTCHA_RandomText and isset($_POST['txtCode']) == true and isset($_SESSION['CAPTCHA_RndText'])){
			$captcha = true;
			} else {
			$fehler .= "<li>Captcha fehlt oder fehlerhaft!</li>";
			}
			
	if ($fehler == ""){
	// Email zumsammensetzen
	$email = "From: " . $_SESSION['email'];
	$nachrichtfertig = $_SESSION['name']. " schrieb: \n\n" . $_SESSION['nachricht'];
	$versand = mail($empfaenger, $_SESSION['betreff'], $nachrichtfertig, $email);
			if ($versand) {
			echo '<h3>Kontaktformular</h3>
			<p>Email ist erfolgreich versendet worden!</p>';
			
			// Sessionvariablen löschen
			unset($_SESSION['name']);
			unset($_SESSION['email']);
			unset($_SESSION['betreff']);
			unset($_SESSION['nachricht']);
			}
			
	} else {
	echo '<h3>Kontaktformular</h3>';
	echo $fehler;
	echo '<p><a href="kontakt.php">zurück</a></p>';
	}
		

	// Session unset
	unset($_SESSION['CAPTCHA_RndText']);
	
?>
 
Ja ist sie.
Du darfst vor dem senden deines Headers keine Ausgabe haben.
Und die hast du damit erzeugt;
Versuchs mal so:

PHP:
<?php
    // Session starten und confog.php includen
    session_start();
    include ("config.php");

    // CaptchaCodes abfragen
    $CAPTCHA_RandomText = "";
    if (isset($_POST['txtCode'])){
    $CAPTCHA_EnteredText = str_replace("<","",str_replace(">","",str_replace("'","",str_replace("[","",str_replace("]","",$_POST['txtCode'])))));
    }
    if (isset($_SESSION['CAPTCHA_RndText'])) {
    $CAPTCHA_RandomText = $_SESSION['CAPTCHA_RndText'];
    }

    // Eingabefelder abfragen
    $_SESSION['name'] = $_POST['name'];
    $_SESSION['email'] = $_POST['email'];
    $_SESSION['betreff'] = $_POST['betreff'];
    $_SESSION['nachricht'] = $_POST['nachricht'];

    $email_i = $_SESSION['email'];

    // Email Funktion
    function pruefe_mail($email_i) {
          if(strstr($email_i, "@")) {
            $email_i = explode ("@", $email_i);
            if(strstr($email_i[1], ".")) $ok = TRUE;
          }
          return $ok;
        }

    // Eingaben prüfen
    $fehler = "";
    if(!pruefe_mail($email_i) && !empty($email_i)) {
            $fehler .= "<li>Email fehlerhaft!</li>";
            }
            if ($_SESSION['name'] == ""){
            $fehler .= "<li>Name fehlt!</li>";
            }
            if ($_SESSION['email'] == ""){
            $fehler .= "<li>Email fehlt!</li>";
            }
            if ($_SESSION['betreff'] == ""){
            $fehler .= "<li>Betreff fehlt!</li>";
            }
            if ($_SESSION['nachricht'] == ""){
            $fehler .= "<li>Nachricht fehlt!</li>";
            }
            if ($CAPTCHA_EnteredText == $CAPTCHA_RandomText and isset($_POST['txtCode']) == true and isset($_SESSION['CAPTCHA_RndText'])){
            $captcha = true;
            } else {
            $fehler .= "<li>Captcha fehlt oder fehlerhaft!</li>";
            }

    if ($fehler == ""){
    // Email zumsammensetzen
    $email = "From: " . $_SESSION['email'];
    $nachrichtfertig = $_SESSION['name']. " schrieb: \n\n" . $_SESSION['nachricht'];
    $versand = mail($empfaenger, $_SESSION['betreff'], $nachrichtfertig, $email);
            if ($versand) {
            echo '<h3>Kontaktformular</h3>
            <p>Email ist erfolgreich versendet worden!</p>';
            echo "<meta http-equiv='refresh'content='3; url=http://www.test.com/'>";
            // Sessionvariablen löschen
            unset($_SESSION['name']);
            unset($_SESSION['email']);
            unset($_SESSION['betreff']);
            unset($_SESSION['nachricht']);
            }

    } else {
    echo '<h3>Kontaktformular</h3>';
    echo $fehler;
    echo '<p><a href="kontakt.php">zurück</a></p>';
    }


    // Session unset
    unset($_SESSION['CAPTCHA_RndText']);

?>

Sobald du deine Mail verschickst, sollte jetzt die Weiterleitung kommen.
 
Hi,
jetzt hat es geklappt, allerdings erst beim 2.Mal :confused:
Mal sehen ..
Ps.: Hattest Du ausser der Zeile noch etwas geändert, wo ich die Zeile eingefügt habe kam wieder die Fehlermeldung?
 
Zuletzt bearbeitet:
Ich habe nur die Zeile nach unten verschoben wo deine Mail abgeschickt wird.
Die Zeile ist also noch da und du brauchst sie nicht wieder Einfügen.
Nur Verchsieben und zwar dahin wo du sie hin haben willst.
z.B. auf dein if isset wenn du alles abschickst oder sonst wohin.

grüße
 
Zurück