Counter mit Cookies ?!

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
WenZel
Mitglied
Beiträge: 3
Registriert: 04.03.2009 13:31

Counter mit Cookies ?!

Beitrag 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


:)
dlite
Mitglied
Beiträge: 1
Registriert: 04.03.2009 17:20

Re: Counter mit Cookies ?!

Beitrag 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
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Counter mit Cookies ?!

Beitrag von Pyramide »

KBL:headers_already_sent
KB:knigge
WenZel
Mitglied
Beiträge: 3
Registriert: 04.03.2009 13:31

Re: Counter mit Cookies ?!

Beitrag 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.

:(
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Counter mit Cookies ?!

Beitrag von Pyramide »

WenZel hat geschrieben:Habe es in der 'Index.php' in die erste Zeile geschrieben und hat nicht funktioniert.
Was funktioniert denn nicht?
KB:knigge
WenZel
Mitglied
Beiträge: 3
Registriert: 04.03.2009 13:31

Fertig

Beitrag 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
Antworten

Zurück zu „Coding & Technik“