ich habe ein Problem: Mein Gästebuch arbeitet mit Templates.
Folgende Fehlermeldungen kommen wenn ich session_start() an den Anfang der guests.php setze:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\apachefriends\xampp\xampp\htdocs\san\tpl_func.php:11) in D:\apachefriends\xampp\xampp\htdocs\san\guests.php on line 2
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\apachefriends\xampp\xampp\htdocs\san\tpl_func.php:11) in D:\apachefriends\xampp\xampp\htdocs\san\guests.php on line 2
Irgendwie will das mit den Sessions nicht funktionieren. Sobald ich session_start()+restlicher Captchacode in meine case-abfrage (Dort wo ich sie benötige, also beim Überprüfen der eingegeben Daten) kommt nur eine weiße Seite und ich muss den Apache neu starten, da nix mehr geht.
Der Code lautet in etwa so:
- Code: Alles auswählen
<?
session_start();
include("g1.php");
include("format_text.php");
$db=mysql_connect($db_host, $db_user, $db_passwd);
mysql_select_db($db_name);
function chkhttp($gbtext)
{
$txt = strpos($gbtext,'http://','0');
return ($txt !== false);
}
function chkwww($gbtext)
{
$txt = strpos($gbtext,'www','0');
return ($txt !== false);
}
switch ($action) {
default:
$start = 0;
if (!$show)
{
$show=10;
}
$eintraege = $show;
$order="id desc";
$sql1="SELECT * FROM $t_guestbook";
$result1=mysql_query($sql1,$db);
$gesamtgb=mysql_num_rows($result1);
$link = "<font size=\"1\" face=\"Tahoma\">$gesamtgb Einträge insgesamt.<a href=\"start.php?load=guests&show=$gesamtgb&sid=$sid\"> Alle</a> oder nur die <a href=\"start.php?load=guests&show=10&sid=$sid\">letzten 10 Einträge</a> anzeigen.</font>";
$sql1="SELECT * FROM $t_guestbook order by $order LIMIT $start,$eintraege";
$result1=mysql_query($sql1,$db);
while ($reihe = mysql_fetch_array($result1))
{
$gbid=$reihe['id'];
$gbuser=$reihe['user'];
$gbmail=$reihe['mail'];
if($wbbuserdata[groupid]=="1" OR $wbbuserdata[groupid]=="6" )
{
$showmail = "</b><a href=\"mailto:$gbmail\">$gbmail</a><b>";
}
else
{
$showmail = "nur sichtbar für registrierte Mitglieder";
}
$hp=$reihe['hp'];
$gbort=$reihe['ort'];
$gbtext=format_text($reihe['text']);
$gbtext=nl2br($gbtext);
$gbhost=$reihe['host'];
$gbdatum=$reihe['datum'];
$testhp = substr($hp,0,7);
if ($testhp!="http://")
{
$addtourl = "http://";
}
else
{
$addtourl = "";
}
if($hp=="http://" or $hp=='')
{
$hp = "Keine Homepage";
}
else
{
$hp="<a href=\"$addtourl$hp\" target=\"_blank\">$hp</a>";
}
if($wbbuserdata[groupid]=="1")
{
$adminoptions= "<a href=\"$LOADER?load=guests.php&action=delete&delid=$gbid&sid=$sid\"><img border=\"0\" src=\"gfx/x_delete.gif\" width=\"18\" height=\"16\"></a>";
}
eval ("\$strgblist .= \"".gettpl("page_guestbook_list")."\";");
}
eval ("dooutput(\"".gettpl("page_guestbook")."\");");
break;
case add:
//Gästebucheintrag vornehmen
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "8h384ls94");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam'])
{
unset($_SESSION['captcha_spam']);
//-------
if ($gbname== '' OR $gbmail == '' OR $gbtext == '' OR $gbort == '')
{
getbox("Fehler: Die Felder mit Sternchen bitte ausfüllen!","Zurück","javascript:history.back();");
}
if(!ereg("([[:alnum:].-]+)(@[[:alnum:].-]+.+)", $gbmail))
{
getbox("Fehler: Die eMail-Adresse ist ungültig!","Zurück","javascript:history.back();");
}
else
{
if (chkhttp($gbtext))
{
getbox("Fehler: URLs sind im Text nicht erlaubt!","Zurück","javascript:history.back();");
}
else if (chkwww($gbtext))
{
getbox("Fehler: URLs sind im Text nicht erlaubt!","Zurück","javascript:history.back();");
}
else
{
$date=date("d.m.Y - H:i:s");
$ip = getenv(REMOTE_ADDR);
$host = gethostbyaddr($ip);
$sql="INSERT into $t_guestbook (user, mail, hp, ort, text, host, ip, datum) VALUES ('$gbname', '$gbmail', '$gbhp', '$gbort', '$gbtext', '$host', '$ip', '$date')";
mysql_query($sql,$db);
getbox("Danke für Deinen Eintrag!","OK","$LOADER?load=guests.php&sid=$sid");
}
}
}
else
{
getbox("Fehler: Der Code ist falsch!","Zurück","javascript:history.back();");
}
break;
Ich hoffe mir kann jemand helfen
besten dank schonmal
gruß
