• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP Counter Problem

Status
Für weitere Antworten geschlossen.

bonsai

Neues Mitglied
Also ich habe mal ne frage. Ich habe für meine Seite, eine Counter, zwei Dateien, eine php
Code:
<?php
$data = "database.txt"; 
$datei1 = fopen("database.txt","r"); 
$zeile = fgets($datei1, 4096); 
$count = $zeile + 1; 
echo "Counter: ".$count; 
$datei = fopen($data,"w");
fwrite($datei, $count);
fclose($datei1);
fclose($datei);
?>
und eine txt. beide 777 gestellt

die include
Code:
<?php
include("counter.php");
echo $count;
?>
habe ich in der index, leider ohne Erfolg. muss nun die php Datei durch die index Datei mit einem besonderen Befehl angesprochen werden? wäre toll, wenn ihr mir helfen könntet.
 
Zuletzt bearbeitet von einem Moderator:
Soweit ich weiß (verbessert mich, wenn es nicht so ist), kannst du keine Variablen aus einer includeten Dateien verwenden oder ausgeben.

Ich würde das echo $count einfach in die obere Datei schreiben, hinter fclose().
 
natürlich kann man variablen aus einer includierten datei ausgeben.
allerdings gab es da beim einsatz von der while()-schleife und require() in PHP version 4 einige probleme, die aber jetzt in PHP 5 korrigiert wurden.

wäre ja schlimm, wenn es nicht ginge, denn dann wären z.b. konfigurationsdateien unmöglich und man müsste eine einfache abfrage mit den dazugehörigen parametern immer wieder neu formulieren.

versuchs einfach mal:

PHP:
<?php
//includier_mich.php

$var = 'hallo welt, hallo PHP!';
?>

PHP:
<?php
//ausgabe.php

if(include('includier_mich.php'))
   {
   echo $var;
   }
      else
         {
         echo 'schein tats&auml;chlich nicht zu funktionieren, ist aber unwahrscheinlich';
         }
?>

Nils aka XraYSoLo
 
Zuletzt bearbeitet:
habe ich nun ohne rfolg versucht. noch einmal genauer mein problem.
ich benutze dreamweaver, habe eine normale html seite erstellt. nun habe ich das obere php script als script abgespeichert. in meiner index seite, die keine php seite ist, sondern html, habe ich von dreamweaver aus versucht die zahl des conters der php zu includen. ich bekomme aber keine anzeige.
 
. in meiner index seite, die keine php seite ist, sondern html, habe ich von dreamweaver aus versucht die zahl des conters der php zu includen. ich bekomme aber keine anzeige.

Es muß aber eine php-seite sein. Ausserdem kannst Du PHP in Dreamwever nicht ausführen. Du brauchst einen Server, der das php parst. installiere dir xampp, das enthält den Apache-Server und MySQL, dann kannst du auch deine php-skripte testen.
 
meine index ist eine html. die sache verstehe ich nicht ganz. den bei 1 & 1 konnte ich mir auch einen Conter auf CGI basis einrichten, obwohl meine index seite eine html ist und obwohl ich auch tabellen verwendet habe.
 
also ich habe nun xampp installiert und elterndatei ist php. ich bekomme folgende meldung:

"Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\phpsite\index.php:6) in C:\Programme\xampp\htdocs\phpsite\counter.php on line 11
67 67"

und die counteranzeige fehlt noch immer.
ach ja, local, wie kann ich da die 777 schreibrechte usw vergeben?
 
Zuletzt bearbeitet:
machs so:
PHP:
<?php
$data = "database.txt"; 
$datei1 = fopen("database.txt","r"); 
$zeile = fgets($datei1, 4096);
if($zeile == "")
{
$zeile = 0;
}
$count = $zeile + 1;
echo "Counter: ".$count; 
$datei = fopen($data,"w");
fwrite($datei, $count);
fclose($datei1);
fclose($datei);
?>

include-datei:
PHP:
<?php
include("counter.php");
?>

Also, zur Erklärung:
Ich habe einmal eine If-Abfrage eingebaut:
Wenn in der Datei database.txt kein Inhalt steht, dann ist der Inhalt = 0.
Dadurch hast du nie ein leeres Ergebnis.
AUßerdem muss in der include-datei nichtmehr
echo $count; stehen, da du das ja schon in der counter.php datei hast.
So hast du einen Funktionstüchtigen Counter! Ich würde dir allerdings empfehlen, jede IP nur einmal als Besucher zu werten.
Aber so funktionierts.

//Edit: Mein 444. Beitrag *gins*
 
Danke Matthias! funktioniert super. vielleicht kannst du mir noch anhand dieses counters erklären, wie man es anstellen kann, nur eine bestimmte seite von einem web zählen zu lallen. geht das?
v g Andreas
 
nur die seite, die das script beinhaltet, wir auch gezählt, woanders hats ja keinen zugriff. deswegen kann man das auch als download-zähler verwenden.

Nils aka XraYSoLo
 
Jep, es ist so, wie XraYSoLo gesagt hat:
Wenn du den Code z.B. auf deine Indexseite machst, dann werden die User, die diese Seite betreten gezählt! Es bietet sich immer an, den Counter auf die erste Seite deiner Homepage zu machen, weil, im Normalfall, der User erst auf die Startseite geht und nicht direkt auf z.B. das Impressum gelangt!!!

Ich würde dir aber trotzdem immernoch empfehlen, die IP's mitzuloggen, damit du deine Besucher nicht doppelt loggst!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben