Warum kommt hier eine Fehlermeldung?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
ausgeben
beitrag
besucher
counter
datei
eintrag
fehler
fehlermeldung
fragen
freak
geschafft hast
hilfe
kleine anmerkung
kontakt
men
paar zeilen
quelltext
session
zeile
-
Hallo,
auf meinem Index kommt da so ne Fehlermeldung, die nicht wirklich h?bsch aussieht. Und die soll da jezt auch weg und das ganze mit dem Cookie soll auch funktionieren. Aber erst ein mal der Quelltext und Fehlermeldung.
Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/tt-freak/html/index.php:12) in /home/webpages/lima-city/tt-freak/html/index.php on line 33
Quelltext:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Meine Homepage</title>
<link rel="stylesheet" type="text/css" href="css/links.css">
</head>
<body text="#000000" bgcolor="#00E3FF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<table border="0">
<colgroup>
<col width="200">
<col width="824">
</colgroup>
<tr>
<td>
<? include("include/menue.php") ?>
</td>
<td align="center">
<h2><u>Willkommen auf meiner Homepage</u></h2><br>
<?
$datei_name = "counter.txt";
if (!file_exists($datei_name)) {
$dz = fopen($datei_name, "w");
fwrite($dz, "1");
fclose($dz);
}
$dz = fopen($datei_name, "r");
$counter = fread($dz, 10);
fclose($dz);
$besucher = $_COOKIE['besucher'];
if (!isset($besucher)) {
setcookie ("besucher", "ja");
$counter++;
$dz = fopen($datei_name, "w");
fwrite($dz, $counter);
fclose($dz);
}
?>
Herzlichen Gl?ckwunsch, dass du es als <?=$counter;?>. geschafft hast, meine Seite zu finden.<br>
</td>
</tr>
</table>
</body>
</html>
Irrelevantes (schreibt man das so?) hab ich weggelassen. Wenn ihr noch mehr vom Quelltext braucht, schreib ich den auch noch hin, aber das ist eigentlich nur das Herrausfinden des Wochentages und ein Hallo sagen sowie eine kleine Problembehebung.
PS: Ich bin mir sicher, dass bald Hilfe kommt. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Der Fehler liegt in Zeile 33, die du eingetlich heraushaben h?ttest k?nnen.
setcookie ("besucher", "ja");
Warum?
Darum :
http://de2.php.net/setcookie
Sie m?ssen deshalb solche Funktionsaufrufe vor irgendwelchen Ausgaben, inklusive <html>- oder <head>-Tags sowie irgendwelcher Whitespaces t?tigen.
-
menue.php:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title></title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?
$menue = array(
"Home" => "index.php",
"?ber mich" => "ich.php",
"Forum" => "forum.php",
"G?stebuch" => "guestbook.php",
"Tischtennis" => "tt.php",
"Spiele" => "spiele.php",
"Downloads" => "downloads.php",
"Sonstiges" => "sonstiges.php",
"Kontakt" => "kontakt.php",
"Impressum" => "impressum.php"
);
?>
<table border="1">
<? foreach($menue as $eintrag => $datei){
if ($datei == basename($_SERVER['PHP_SELF'])) {
echo "<tr>";
echo "<td align=\"left\" bgcolor=\"#00C3FF\">";
echo $eintrag;
echo "</td>";
echo "</tr>";
} else {
echo "<tr>";
echo "<td align=\"left\" bgcolor=\"#00E3FF\">";
echo "<a href=\"$datei\">$eintrag</a>";
echo "</td>";
echo "</tr>";
}
}
?>
</table>
</body>
</html>
@lucas9911:
Das mit dem Cookie soll doch funktionieren, ansonsten kommt doch wieder irgenjemand an, der 200 Mal den Index l?dt und damit den Counter in die H?he treibt.
Beitrag ge?ndert am 2.10.2005 15:40 von tt-freak -
@lucas9911:
Das mit dem Cookie soll doch funktionieren, ansonsten kommt doch wieder irgenjemand an, der 200 Mal den Index l?dt und damit den Counter in die H?he treibt.
Beitrag ge?ndert am 2.10.2005 15:40 von tt-freak
?????
lucas9991 hat nur gesagt das dein cookie vor jeglichen ausgaben gesetzt werden muss also schon in deiner index.php vor der 2.ten zeile
mfg apollo13 -
Aber wie soll ich dann noch unterscheiden k?nnen, wer auf meiner Seite war oder nicht? Wenn der Cookie am Anfang gesetzt wird, kann ich doch keine Abfrage mehr machen, ob ein Cookie gesetzt ist oder nicht!
Hilfe!!!!!!!!!!! -
Aber wie soll ich dann noch unterscheiden k?nnen, wer auf meiner Seite war oder nicht? Wenn der Cookie am Anfang gesetzt wird, kann ich doch keine Abfrage mehr machen, ob ein Cookie gesetzt ist oder nicht!
Hilfe!!!!!!!!!!!
Richtig.
Damit w?re deine Frage beantwortet.
Du willst aber sicherlich eine L?sung h?ren. ;)
Versuch mal folgendes :
<?php ob_start(); //restlicher PHP Code ob_end_flush(); ?>
-
Ich habe jetzt folgendes gemacht (es geht weiter nach der ?berschrift in der zweiten Spalte):
<h2><u>Willkommen auf meiner Homepage</u></h2><br>
<? ob_start();
$datei_name = "counter.txt";
if (!file_exists($datei_name)) {
$dz = fopen($datei_name, "w");
fwrite($dz, "1");
fclose($dz);
}
$dz = fopen($datei_name, "r");
$counter = fread($dz, 10);
fclose($dz);
$besucher = $_COOKIE['besucher'];
if (!isset($besucher)) {
setcookie ("besucher", "ja");
$counter++;
$dz = fopen($datei_name, "w");
fwrite($dz, $counter);
fclose($dz);
}
ob_end_flush();
?>
Herzlichen Glückwunsch, dass du es als <?=$counter;?>. geschafft hast, meine Seite zu finden.<br>
...</html>
Aber es funktioniert nicht! -
Hmm ich hab ebendieses Problem auch.. seltsamerweise funktioniert das Script aber problemlos wenn ichs aufm Heimischen xampp laufen lasse
Nachtrag:
Aber was mir aufgefallen ist an deinem Code...
Wenn es stimmt, dass die Cookies vor jeglichen Ausgaben initialisiert werden m?ssen, so hast du nachwievor einen ganz simplen Fehler drin.
Lass dieses Cookie-Php-Script einfach laufen, bevor du ?berhaupt einen html-tag aufmachst.. also einfach gleich in die ersten paar Zeilen der Seite... Ausgegeben wird dabei ja nix. Somit sollte es an sich funktionieren... ich muss gleichmal nochmal meinen Code inspizieren, ich glaub mir kam grade die Erleuchtung
Beitrag ge?ndert am 4.10.2005 14:24 von wiede -
Genial! Es funktioniert! Ey Wiede, danke danke danke danke usw. +9999xDanke!!!
@all:
Man muss das ganze Script ganz an den Anfang setzen. Noch vor die HTML-Version. Danke!
-
Genial! Es funktioniert! Ey Wiede, danke danke danke danke usw. +9999xDanke!!!
@all:
Man muss das ganze Script ganz an den Anfang setzen. Noch vor die HTML-Version. Danke!
Jaja...
Ich will noch eine kleine Anmerkung machen :
Bei Session muss man auch darauf aufpassen. Aber wie gesagt mit der Funktion "ob_start ()" und der anderen kann man dies umgehen.
MfG Lucas -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage