PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Counter in Homepage einbinden


AlcoLix
2014-05-26, 15:58:46
Hallo liebe Community :)

ich verzweifel moment daran einen Besucherzähler auf meiner Seite einzubinden.

ich habe eine counter.php datei erstellt mit folgendem Code:

<?php


// Counterdateiname
$datei="counter.txt";

// Anzahl der führenden Nullen
$stellen = 5;

if(file_exists($datei))
{
$fp=fopen($datei,"r+");
$zahl=fgets($fp,$stellen);
$zahl++;
rewind($fp);
flock($fp,2);
fputs($fp,$zahl,$stellen);
flock($fp,3);
fclose($fp);
}else{
$fp=fopen($datei,"w");
$zahl="1";
fputs($fp,$zahl,$stellen);
fclose($fp);
}

$zahl=sprintf("%0".$stellen."d",$zahl);

?>

in html habe ich dann folgendes eingefügt:

include("counter.php");
echo $zahl;

?>

aber es funktioniert nicht :mad: Was ist daran falsch???

Muss ich vielleicht folgendes in html schreiben:

<html>
<head>
<title>Counter</title>
</head>
<body>
<font face=Arial color=white size=5>Besucher:</font>
<?php

include("counter.php");
echo "<font face=Arial color=white size=5>$zahl</font>";

?>
</body>
</html>

Der Besucherzähler soll unten in der Mitte angezeigt werden. Mein Webseitenhintergrund ist schwarz, die Zahlen sollten aber weiß sein :rolleyes:

Da dies hier nur ein Textcounter ist wäre ich euch sehr verbunden wenn ihr vielleicht nen Grafikcounter an der Hand hättet den man ganz einfach einbauen könnte :D wenn nicht bleibe ich eben beim Textcounter.

Habe schon einiges ausprobiert aber ich komm einfach nicht weiter. Ich hoffe ihr könnt mir helfen.

Mit freundlichen Grüßen

maximum
2014-05-26, 16:06:55
Ich hab das Beispiel jetzt nicht ausprobiert, aber auf jeden Fall falsch verkettet:

echo "<font face=Arial color=white size=5>$zahl</font>";

richtig verkettet und ohne veraltetes HTML:

echo '<div style="color:#FFF;font-size:150%;font-family:Arial, sans-serif;position:absolute; bottom:10px;height:30px;width:100%;text-align:center;">' . $zahl . '</div>';

Eigentlich kannst du die Ausgabe aber gleich in der counter.php machen. Gibts halt den ganzen html-code der Seite als echo aus. Ansonsten musst du auf jeden Fall sicherstellen, dass auch php geparst wird. Wenn du die Datei mit dem include als .htm abspeicherst, kann es sein, dass es nicht geparst wird.

AlcoLix
2014-05-26, 16:20:15
richtig verkettet und ohne veraltetes HTML:

echo '<div style="color:#FFF;font-size:150%;font-family:Arial, sans-serif;position:absolute; bottom:10px;">' . $zahl . '</div>';

Das heisst ich muss nur diese Zeile anstelle meiner alten schreiben bzw. reinkopieren?



Könntest du mir evtl einen fertigen counter schreiben den ich dann unten in der Mitte positionieren kann? Oder stimmt dann mein Code und er müsste funktionieren? :biggrin:

maximum
2014-05-26, 16:34:24
Könntest du mir evtl einen fertigen counter schreiben den ich dann unten in der Mitte positionieren kann? Oder stimmt dann mein Code und er müsste funktionieren? :biggrin:

Unten mittig habe ich dir das div schon positioniert. Hier ist ein Beispiel für einen einfachen .TXT Counter:
Quelle: http://www.schattenbaum.net/php/datei.php


<?php
$datei = fopen("counter.txt","r+");
$counterstand = fgets($datei, 10);
if($counterstand == "")
{
$counterstand = 0;
}
$counterstand++;
echo $counterstand;
rewind($datei);
fwrite($datei, $counterstand);
fclose($datei);
?>


Speicher das mal statt deiner counter.php ab. Dann benennst du die andere Datei index.php und legst eine leere counter.txt an (alle 3 ins selbe Verzeichnis) und rufst die index.php auf.

AlcoLix
2014-05-26, 16:42:18
Dann benennst du die andere Datei index.php

Welche meinst du da jetzt genau?

maximum
2014-05-26, 16:43:45
index.php:


<?php
$datei = fopen("counter.txt","r+");
$counterstand = fgets($datei, 10);
if($counterstand == "")
{
$counterstand = 0;
}
$counterstand++;
rewind($datei);
fwrite($datei, $counterstand);
fclose($datei);

echo '
<!doctype html>
<html>
<head>
<meta charset="iso-8859-1">
<title>Counter</title>
</head>
<body style="background-color:#000;">';

echo '<div style="color:#FFF;font-size:150%;font-family:Arial, sans-serif;position:absolute; bottom:10px;height:30px;width:100%;text-align:center;">' . $counterstand . '</div></body></html>';
?>



counter.txt leer ins selbe Verzeichnis anlegen und die index.php mit dem Browser aufrufen.

AlcoLix
2014-05-26, 16:46:34
<html>
<head>
<title>Counter</title>
</head>
<body>
<font face=Arial color=white size=5>Besucher:</font>
<?php

include("counter.php");
echo "<font face=Arial color=white size=5>$zahl</font>";

?>
</body>
</html>




also den inhalt als index.php abspeichern? Und dann weiter?

maximum
2014-05-26, 16:56:11
Lies nochmal #6, habs nochmal etwas umgeschrieben, ist aber ungetestet.

AlcoLix
2014-05-26, 17:03:16
Also lautet meine counter.php so:

<?php
$datei = fopen("counter.txt","r+");
$counterstand = fgets($datei, 10);
if($counterstand == "")
{
$counterstand = 0;
}
$counterstand++;
echo $counterstand;
rewind($datei);
fwrite($datei, $counterstand);
fclose($datei);
?>

Meine index.php lautet:

<?php
$datei = fopen("counter.txt","r+");
$counterstand = fgets($datei, 10);
if($counterstand == "")
{
$counterstand = 0;
}
$counterstand++;
rewind($datei);
fwrite($datei, $counterstand);
fclose($datei);

echo '
<!doctype html>
<html>
<head>
<meta charset="iso-8859-1">
<title>Counter</title>
</head>
<body>';

echo '<div style="color:#FFF;font-size:150%;font-family:Arial, sans-serif;position:absolute; bottom:10px;height:30px;width:100%;text-align:center;">' . $counterstand . '</div></body></html>';

dann leg ich noch eine leere counter.txt an, wobei die doch sowieso selber dann angelegt wird??

Und in die html-Sicht schreibe ich dann:

include("counter.php");
echo '<div style="color:#FFF;font-size:150%;font-family:Arial, sans-serif;position:absolute; bottom:10px;">' . $zahl . '</div>';

Richtig so oder hab ich mich gerade verhauen :D

maximum
2014-05-26, 17:13:22
Richtig so oder hab ich mich gerade verhauen :D

Bei meinem Beispiel in #6 brauchst du nur noch eine php-Datei: index.php und nat. die counter.txt. Mehr nicht.

Die counter.txt musst du bei meinem Beispiel-Code selbst anlegen.

Bei Verwendung von r oder r+ muss die Datei, aus der gelesen, bzw. in die geschrieben werden soll bereits vorhanden sein

AlcoLix
2014-05-26, 17:17:39
Ahhh stimmt :D Du hast recht :rolleyes:

Ich werds mal testen :smile: Danke für erste :wink:

AlcoLix
2014-05-26, 17:51:24
in html schreibe ich dann schon:

include("index.php");

?

also wenn ich meine webseite mit /index.php öffne, öffnet sich eine neue Seite mit der Besucherzahl aber ich möchte ja die Zahl direkt auf meiner Homepage anzeigen lassen. Was muss ich dann noch ändern?

maximum
2014-05-26, 18:13:00
in html schreibe ich dann schon:

include("index.php");

?

also wenn ich meine webseite mit /index.php öffne, öffnet sich eine neue Seite mit der Besucherzahl aber ich möchte ja die Zahl direkt auf meiner Homepage anzeigen lassen. Was muss ich dann noch ändern?

Dann musst du das ganze html gedöns rausnehmen aus der Datei und nur eine Ausgabe mit echo des Wertes. Dann includen wo du willst.

AlcoLix
2014-05-26, 18:19:34
Dann musst du das ganze html gedöns rausnehmen aus der Datei und nur eine Ausgabe mit echo des Wertes. Dann includen wo du willst.

Wie meinst du das? Ich habe eine Html 5 basierende Webseite. Bei Besucher kommt bei mir dahinter "php" aber nicht die Zahl :eek:

Gibt es eine Möglichkeit php über html anzeigen zu lassen??? Ich habe eine HTML-Seite und eine php Datei, die ich einbinden will. Sie wird aber nicht angezeigt.

Funktionieren tut sie :D

maximum
2014-05-26, 18:27:18
Wie meinst du das? Ich habe eine Html 5 basierende Webseite. Bei Besucher kommt bei mir dahinter "php" aber nicht die Zahl :eek:

Gibt es eine Möglichkeit php über html anzeigen zu lassen??? Ich habe eine HTML-Seite und eine php Datei, die ich einbinden will. Sie wird aber nicht angezeigt.

Funktionieren tut sie :D

Geht alles: Als iframe einbinden mit src auf die php Datei. Oder img mit src auf die php oder .htm fürs php parsen freischalten.

Oder du bindest dir nen externen counter ein. Der hier zählt ja immer wenn.man f5 drückt. Hat keinen Wartezeit bis erneut gezählt wird und hat Probleme wenn 2 Leute gleichzeitig reloaden.

AlcoLix
2014-05-26, 18:29:59
Ich habe auch schon ein counter.gif

Wie heisst jetzt der Code dazu :D

maximum
2014-05-26, 19:27:39
Für dich ist wohl eine Fertiglösung besser...

http://www.andyhoppe.com/counter/

Falls du es dennoch probieren willst:

In deine html-Datei fügst du den Mittelteil in den body ein:


<!doctype html>
<html>
<head>
<meta charset="iso-8859-1">
<title>Counter</title>
</head>
<body style="background-color:#000;">';

<div style="color:#FFF;font-size:150%;font-family:Arial, sans-serif;position:absolute; bottom:10px;height:30px;width:100%;text-align:center;"><iframe src="counter.php"></iframe></div>

</body></html>


counter.php

<?php
$datei = fopen("counter.txt","r+");
$counterstand = fgets($datei, 10);
if($counterstand == "")
{
$counterstand = 0;
}
$counterstand++;
rewind($datei);
fwrite($datei, $counterstand);
fclose($datei);

echo $counterstand;

?>


Alles ungetestet...