Ich habe mal einen sauberen Schnitt gemacht und alle Deine Ratschläge nach gelesen. Habe ca. zwei Stunden damit verbracht meine "Fehler" auszubessern, bis ich mir das komplette Scrift kaputt gemacht habe.
Nun, habe ich leider gottes und irgendwie tut es mir auch sehr leid, ein Script geschnappt und es entsprechend angepasst. Ich habe aber Deine Ratschläge gelesen und zum grösten Teil verstanden.
Nun bin ich bei dem Thema Captcha / Spam und bekomme meinen vorhandenenes Script von "stoppt-den-spam.info" nicht zum laufen. Die Captcha.php und das entsprechende Bild wurde angelegt und wird korrekt in meiner "Kontakt.php" dargestellt (auch erscheinen random Zahlen).
Nun steht da, man soll den folgenden code verwenden:
<?php
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
//Hier kommt das ursprüngliche Script hin.
}
//optional noch eine Fehlerausgabe:
else{
die ("Der Sicherheitscode ist falsch!");
}
?>
Ich bekomme ewig die Meldung:
'Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampplite\htdocs\de\Kontakt2.php:1) in C:\xampplite\htdocs\de\Kontakt2.php on line 1'
Und das ist mein Problem....
Habe Testweise sogar ein Kontakt2.php angelegt wo nur folgendes drin steht.
<?php session_start();
@include("Kontakt.php")
?>
Hilft aber auch nicht, wenn ich die Kontakt2.php aufrufe, bekomm ich die selbe Fehlermeldung.
Ich weiß, dass die Fehlermeldung bedeutet, dass etwas bereits angezeigt wird bevor session_start(); ausgeführt wird.
Aber wie zum Teufel soll ich das einbinden, hab nach weiteren zwei Stunden keine Lust mehr und vielleicht hat ja noch einmal ein Experte nen Heißen Tipp für mich. Anbei der Code von dem Kontaktformular:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Kontakt</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../files/1458/style/css/content.css" media="screen,print" />
<link rel="stylesheet" type="text/css" href="../files/1458/style/css/layout.css" media="screen" />
<script type="text/javascript" src="../js/lib/prototype.js"></script>
<script type="text/javascript" src="../js/src/scriptaculous.js"></script>
<script type="text/javascript" src="../js/frontend.js"></script>
<script type="text/javascript" src="../files/1458/style/js/layout.js"></script>
<meta name="language" content="de"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="Kontakt"/>
<meta name="description" content="Kontakt"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../files/1458/style/img/favicon.ico" type="image/x-icon" rel="icon"/><link href="../files/1458/style/img/favicon.ico" type="image/x-icon" rel="shortcut icon"/>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<body class="page_24308">
<div class="site_body page_24308 lang_de">
<div class="site">
<div class="site_inner">
<div class="content" id="content">
<div class="content_inner" id="content_inner">
<h1>Kontakt</h1>
<br>
<br>
<?php
$name="";
$firma="";
$adresse="";
$PLZ="";
$telefon="";
$fax="";
$Email="";
$art="";
$betreff="";
$text="";
if(isset($_POST['abschicken'])){
while(list($feld,$wert)=each($_POST)){
// übermittelte Inhalte "entschärfen"
$wert=preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert);
$$feld=$wert;
if($feld!="abschicken"){
$mailnachricht.=ucfirst($feld).": $wert\n";
}
}
$mailnachricht .="\nDatum/Zeit: ". date("d.m.Y H:i:s");
// Überprüfen ob alle Pflichtfelder gefüllt sind
empty($name) ? $err[] = "<p>- Bitte den Nachnamen angeben.</p>" : false;
empty($Email) ? $err[] = "<p>- Bitte die Email-Adresse angeben.</p>" : false;
empty($betreff) ? $err[] = "<p>- Bitte Betreff angeben.</p>" : false;
empty($text) ? $err[] = "<p>- Welchen Wunsch haben Sie? Bitte den Text eingeben.</p>" : false;
// wenn nicht, werden die Fehlermeldungen ausgegeben und das "halbgefüllte" Formular angezeigt
if(!empty($err)) {
echo "<p>Bitte korrigieren Sie folgende Fehler:</p>";
foreach($err as $fehler){
echo $fehler;
} ?>
<form action="#" method="post" accept-charset="utf-8">
<table width="100%" border="0" cellpadding="3" cellspacing="1">
<tr><td><strong>Name*: </strong></td><td><input name="name" size="25" type="text"></td></tr>
<tr><td>Firma: </td><td><input name="firma" size="25" type="text"></td></tr>
<tr><td>Adresse: </td><td><input name="adresse" size="25" type="text"></td></tr>
<tr><td>PLZ & Ort: </td><td><input name="PLZ" size="25" type="text"></td></tr>
<tr><td>Telefon: </td><td><input name="telefon" size="25" type="text"></td></tr>
<tr><td>Fax: </td><td><input name="fax" size="25" type="text"></td></tr>
<tr><td><strong>E-Mail*: </strong></td><td><input name="Email" size="25" type="text"></td></tr>
<tr><td>Kontaktart:   </td><td><select name="art" size="1"><option>Telefon</option><option>E-Mail</option><option>Post</option></select></td></tr>
<tr><td><br></td><td><br></td></tr>
<tr><td><strong>Betreff*: <strong></td><td><input name="betreff" size="25" type="text"></td></tr>
<tr><td><strong>Nachricht*: </strong></td><td><textarea cols="50" name="text" rows="8"></textarea></td></tr>
<tr><td><strong>Sicherheitscode<br>wiederholen*:   </strong></td><td><img src="captcha.php" border="0" title="Sicherheitscode"></td></tr>
<tr><td></td><td><input type="text" name="sicherheitscode" size="15"><br><br></td></tr>
<tr><td align="center" colspan="2"><input name="abschicken" type="submit" value="Formular abschicken"> <input name="Reset" type="reset" value="Löschen"></td></tr>
</table>
</form>
<p>*Pflichtfelder</p>
<?php // sind keine Fehler vorhanden, wird die Email versendet
} else {
$mailbetreff="Kontaktformular ".$_SERVER['HTTP_HOST'];
$headers = "From: $Email\r\nContent-Type: text/html; charset=UTF-8";
// HIER DIE EMPFÄNGER EMAIL-ADRESSE ANPASSEN!!!
if(mail("adresse@domain.tld", $mailbetreff, $mailnachricht, "From: $Email"."\r\n".'Content-Type: text/plain; charset=UTF-8')){
echo "<p>Ihre eMail ist bei uns eingegangen, vielen Dank!</p>";
} else {
echo "<p>Ein Fehler ist aufgetreten!</p>";
}
}
// das Formular welches als erstes dem Besucher angezeigt wird
} else { ?>
<form action="#" method="post" accept-charset="utf-8">
<table width="100%" border="0" cellpadding="3" cellspacing="1">
<tr><td><strong>Name*: </strong></td><td><input name="name" size="25" type="text"></td></tr>
<tr><td>Firma: </td><td><input name="firma" size="25" type="text"></td></tr>
<tr><td>Adresse: </td><td><input name="adresse" size="25" type="text"></td></tr>
<tr><td>PLZ & Ort: </td><td><input name="PLZ" size="25" type="text"></td></tr>
<tr><td>Telefon: </td><td><input name="telefon" size="25" type="text"></td></tr>
<tr><td>Fax: </td><td><input name="fax" size="25" type="text"></td></tr>
<tr><td><strong>E-Mail*: </strong></td><td><input name="Email" size="25" type="text"></td></tr>
<tr><td>Kontaktart:   </td><td><select name="art" size="1"><option>Telefon</option><option>E-Mail</option><option>Post</option></select></td></tr>
<tr><td><br></td><td><br></td></tr>
<tr><td><strong>Betreff*: <strong></td><td><input name="betreff" size="25" type="text"></td></tr>
<tr><td><strong>Nachricht*: </strong></td><td><textarea cols="50" name="text" rows="8"></textarea></td></tr>
<tr><td><strong>Sicherheitscode<br>wiederholen*:   </strong></td><td><img src="captcha.php" border="0" title="Sicherheitscode"></td></tr>
<tr><td></td><td><input type="text" name="sicherheitscode" size="15"><br><br></td></tr>
<tr><td align="center" colspan="2"><input name="abschicken" type="submit" value="Formular abschicken"> <input name="Reset" type="reset" value="Löschen"></td></tr>
</table>
</form>
<p>*Pflichtfelder</p>
<?php
}
?>