Seite 1 von 1

Counter mit Cookies ?!

Verfasst: 04.03.2009 14:12
von WenZel
Hi @ all,

bin neu hier und wollt mal schauen ob ihr mir vllt helfen könnt.

Also ich wollte ein Counter mit Cookies bauen.
Sieht im Moment aus wie folgt:


betreffende Zeilen aus "function.php"

Code: Alles auswählen

<?...

function counter()
		{
		$ip = $_SERVER['REMOTE_ADDR'];

		$file_k = fopen("data/count/counter_k.txt","r+");
		$file_b = fopen("data/count/counter_b.txt","r+");

		$counter_k = fgets($file_k, 100);
		$counter_b = fgets($file_b, 100);

		rewind ($file_k);
		rewind ($file_b);

	if($ip == $_COOKIE['visit'])
		{
		fwrite($file_k,$counter_k+1);
		}
	else
		{
		setcookie('visit', $ip);                                                         * Zeile 47
		fwrite($file_b,$counter_b+1);
		};

			echo "<font size='1' color='gray' font='Courier'>";
			echo "<div align='center'>";

			echo "<b><u>Statistik</u>";
			echo "<br>";
			echo "<br>";

		echo "$counter_b Besucher";
			echo "<br>";
		echo "$counter_k Klicks</b>";
			echo "<br>";
			echo "<br>";

			echo "by WenZel";
			echo "<br>";

			echo "</font>";
			echo "</div>";

		fclose($file_k);
		fclose($file_b);
		};

...?>
betreffende Zeilen aus "index.php"

Code: Alles auswählen

<html>...

<? include('data/function.php'); ?>                                                   * Zeile 16
...
<? counter(); ?>

...</html>
Include kommt nach dem HEAD-,META-,LINK-tag und steht vor einem FORMular- und vor dem BODY-tag.
Die Funktion rufe ich im BODY auf.


Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at ...www/index.php:16) in ...data/function.php on line 47
Live-ansicht unter ^^
http://www.wenzelhp.bplaced.net/

Wäre nicht schlecht wenn des Prinzip mit den Cookies bleibt, da das Script eh schon fertig ist :grin:
Hoffe es findet sich jemand der mir helfen kann :-?


ALLE DATEIN BEFINDEN SICH IM RICHTIGEN ORDNER
ALLE ANDREREN FUNKTIONEN FUKTIONIEREN
WENN IHR DIE KOMPLETTE 'INDEX.PHP' ODER 'FUNCTION.PHP' SEHEN WOLLT/MÜSSTET, MELDET EUCH !!!


mfg
WenZel


:)

Re: Counter mit Cookies ?!

Verfasst: 04.03.2009 17:23
von dlite
ich würde probieren, das ganze ohne funktion zu schreiben und nur als puren code zu includen. So als Funktion ist das ein viel zu großer Umstand mit den returns, worans wohl an deinem Code scheitert. Ich sehe in deinem Code nämlich nirgends ein Return, welches deine Variablen nach außen herausgibt.

mfg d-lite

Re: Counter mit Cookies ?!

Verfasst: 04.03.2009 19:31
von Pyramide
KBL:headers_already_sent

Re: Counter mit Cookies ?!

Verfasst: 04.03.2009 20:16
von WenZel
Gut, das was ich jetzt aus dem geposteten thread erfahren habeist, es liegt daran das 'setcookie()' nicht am anfang meines Scriptes steht.
Leerstellen hab ich nicht.
Im falschen Modus hochgeladen ebenfalls nicht.

Habe es in der 'Index.php' in die erste Zeile geschrieben und hat nicht funktioniert.

:(

Re: Counter mit Cookies ?!

Verfasst: 04.03.2009 21:22
von Pyramide
WenZel hat geschrieben:Habe es in der 'Index.php' in die erste Zeile geschrieben und hat nicht funktioniert.
Was funktioniert denn nicht?

Fertig

Verfasst: 05.03.2009 16:10
von WenZel
ok hat sich erledigt, hier das fertige Script:

Code: Alles auswählen

<?
		setcookie("NAME", "INHALT", time()+3600);

			$file_k = fopen("klicks.txt","r+");
			$file_b = fopen("besucher.txt","r+");

			$counter_k = fgets($file_k, 100);
			$counter_b = fgets($file_b, 100);

			rewind ($file_k);
			rewind ($file_b);

		if(isset($_COOKIE["NAME"]))
			{
			fwrite($file_k,$counter_k+1);
			}
		else
			{
			fwrite($file_k,$counter_k+1);
			fwrite($file_b,$counter_b+1);
			};

		echo "<font size='1' color='gray' font='Courier'>";
		echo "<div align='center'>";

		echo "<b><u>Statistik</u>";
		echo "<br>";
		echo "<br>";

		echo "$counter_b Besucher";
		echo "<br>";
		echo "$counter_k Klicks</b>";
		echo "<br>";
		echo "<br>";

		echo "by WenZel";
		echo "<br>";

		echo "</font>";
		echo "</div>";

			fclose($file_k);
			fclose($file_b);
?>
setcookie(); ist jetzt doch am Anfang der Seite