PHP in HTML einbinden

P

Paradiso

Guest
Heyho und Guten Abend zusammen,

ich habe eine Frage, die PHP betrifft. Ich möchte nämlich einen PHP-Besucherzähler in meine HTML Datei einbinden.
Doch irgendwie klappt es nun schon beim 3. Zähler nicht. Also denke ich mal liegt es an mir
tongue.gif


Wenn ich die PHP-Datei normal auf dem Server öffne klappt es einwandfrei.

BSP: Hier

Wenn ich Sie jedoch einbinden will mit:

<?php @include_once("counter.php"); ?>

,passiert nichts. Da wo es eigentlich angezeigt werden soll ist nichts zu sehen.

<div id="wrapper">
<div id="wrapper-bgbtm">
<div id="page">
<div id="content">
<div class="Sidebar">

<div class="SidebarHeader">Besucher</div>
<div class="SidebarText">
<?php @include_once("counter.php"); ?>

</script>


Weiß jemand, wieso es nicht klappt?
Wäre Super.

Gruß,
Paradiso
 
@Topic: Das nennt man auch Frevel .. oder hässlich ... oder unübersichtlich.


1. Wenn du das @ for include_once() wegnimmst, wird dir auch angezeigt, obs nen Bug gibt und welchen.
2. Veröffentliche mal den Countercode.
 
Hey Zam,

was du mit dem Topic meinst versteh ich zwar nicht im geringsten aber egal
tongue.gif


Das mit dem @ entfernen hat leider nichts gebracht.

Hier mal der Countercode:
<?php

function get_urlvar($var_name){
if(!isset($_GET[$var_name])){
return ("");
} else {
return (trim(urldecode(mysql_escape_string($_GET[$var_name]))));
}
}
$File = fopen('./daten/cont.txt', 'r+');
$Counter = fread($File, filesize('./daten/cont.txt'));
$Counter++;
rewind($File);
fwrite($File, $Counter);
fclose($File);
$ac=get_urlvar("ac");
if ($ac == 'js'){
echo "document.write('Besucher: $Counter ');\n";
}else {
echo 'Besucher: '.$Counter;
}
?>
 
Zuletzt bearbeitet:
Probier mal das
Code:
<?php
$cookie_path = '/Tatze Blog/';
$cookie_domain = '.blogt.de';
$cookie_name = 'counter_cookie';
$cookie_expire = time() + (3600*12); // Lock für den Besucher nur alle 12 Stunden hochzählen
$cookie_dexpire = time() - (time() + $cookie_expire);

$save_path = realpath('/Tatze Blog/daten/cont.txt');

$counter = (int)implode('', file($save_path));

if(!$_COOKIE[$cookie_name]) {

	setcookie($cookie_name, '', $cookie_dexpire, $cookie_path, $cookie_domain);
	setcookie($cookie_name, 1, $cookie_expire, $cookie_path, $cookie_domain);
	
	$counter++;
	
	$fp = fopen($save_path, 'w+');
	flock($fp, LOCK_EX);
	fwrite($fp, $counter);
	flock($fp, LOCK_UN);
	$fp = null;
}

if($_GET['ac'] == 'js') {
	print_r("document.write(\'Besucher: %d\');\n", $counter);
}
else {
	print_r("Besucher: %d", $counter);
}
?>

Ich kann mir vorstellen, dass die counter.php durch den include den Pfad zu der cont.txt nicht findet.
In meiner Version werden die Besuche nicht bei jedem Klick, sondern nur bei einem Neu-Besuch des Users alle 12 Stunden hochgezählt.
 
Zuletzt bearbeitet von einem Moderator:
Könnte ich mir auch denken. - Dass die Url der .txt relativ zur html Datei anstatt zur counter.php angesehen wird. Obwohl, das müsste eigentlich klappen, da mit [font=arial, verdana, tahoma, sans-serif]("counter.php") [/font]beide Dateien im gleichen Verzeichnis sein sollten, mh =/

Probier doch mal einen absoluten Pfad anzugeben. Oder den ganzen Code der counter.php in die html-Datei rein zu schreiben °_°
 
Hehe, frei nach dem Motto, was nicht passt wird passend gemacht
biggrin.gif
 
Moin Moin,

habe es dann mal gemacht wie Herr.Zam es befohlen hat
tongue.gif


Warning: file(/Tatze Blog/daten/cont.txt) [function.file]: failed to open stream: No such file or directory in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 10

Warning: implode() [function.implode]: Invalid arguments passed in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 10

Warning: Cannot modify header information - headers already sent by (output started at /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php:10) in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php:10) in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 15

Warning: fopen(/Tatze Blog/daten/cont.txt) [function.fopen]: failed to open stream: No such file or directory in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 19

Warning: flock() expects parameter 1 to be resource, boolean given in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 20

Warning: fwrite() expects parameter 1 to be resource, boolean given in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 21

Warning: flock() expects parameter 1 to be resource, boolean given in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 22

Aber das kam dann dabei heraus.

Edit: Nachdem ich ein wenig mit den Pfaden gespielt habe kam dann das

Parse error: syntax error, unexpected ':' in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 2
 
Zuletzt bearbeitet:
Was steht bei der counter.php bei der 2. Zeile? bzw. Post den Code nochmal, damit ich weiß was du verändert hast.
 
<?php
$cookie_path = 'http://www.tatze.blogt.de/Tatze Blog/';
$cookie_domain = ''http://www.tatze.blogt.de/';
$cookie_name = 'counter_cookie';
$cookie_expire = time() + (3600*12); // Lock für den Besucher nur alle 12 Stunden hochzählen
$cookie_dexpire = time() - (time() + $cookie_expire);

$save_path = ''http://www.tatze.blogt.de//Tatze Blog/daten/cont.txt';

$counter = (int)implode('', file($save_path));

if(!$_COOKIE[$cookie_name]) {

setcookie($cookie_name, '', $cookie_dexpire, $cookie_path, $cookie_domain);
setcookie($cookie_name, 1, $cookie_expire, $cookie_path, $cookie_domain);

$counter++;

$fp = fopen($save_path, 'w+');
flock($fp, LOCK_EX);
fwrite($fp, $counter);
flock($fp, LOCK_UN);
$fp = null;
}

if($_GET['ac'] == 'js') {
print_r("document.write(\'Besucher: %d\');\n", $counter);
}
else {
print_r("Besucher: %d", $counter);
}
?>
 
Wenn Ich recht sehe hast Du bei Zeile 2 ein " zuviel, da kommt nur ein '
PS, auch noch hier:

[font="arial, verdana, tahoma, sans-serif"]$save_path = ''http://www.tatze.blogt.de//Tatze Blog/daten/cont.txt';[/font]
[font="arial, verdana, tahoma, sans-serif"]
[/font]

[font="arial, verdana, tahoma, sans-serif"]zu[/font]
[font="arial, verdana, tahoma, sans-serif"]
[/font]

[font="arial, verdana, tahoma, sans-serif"]$save_path = 'http://www.tatze.blogt.de//Tatze Blog/daten/cont.txt';[/font]
 
Zuletzt bearbeitet von einem Moderator:
Mhh stimmt, jetzt wo du es sagst.

Ich probiere es heute Abend aus. Derzeit bin ich bei der Arbeit und kann es gerade nicht.

Danke, vieleicht ist es ja des Rätsels Lösung
biggrin.gif
 
Ey, ich hab das ausm Kopf schnell runtergetippt - Flüchtigkeitsfehler sind erlaubt.
tongue.gif
 
So habe jetzt GENAU das eingegeben

<?php
$cookie_path = 'http://www.tatze.blogt.de/Tatze Blog/';
$cookie_domain = 'http://www.tatze.blogt.de/';
$cookie_name = 'counter_cookie';
$cookie_expire = time() + (3600*12); // Lock für den Besucher nur alle 12 Stunden hochzählen
$cookie_dexpire = time() - (time() + $cookie_expire);

$save_path = 'http://www.tatze.blogt.de//Tatze Blog/daten/cont.txt';

$counter = (int)implode('', file($save_path));

if(!$_COOKIE[$cookie_name]) {

setcookie($cookie_name, '', $cookie_dexpire, $cookie_path, $cookie_domain);
setcookie($cookie_name, 1, $cookie_expire, $cookie_path, $cookie_domain);

$counter++;

$fp = fopen($save_path, 'w+');
flock($fp, LOCK_EX);
fwrite($fp, $counter);
flock($fp, LOCK_UN);
$fp = null;
}

if($_GET['ac'] == 'js') {
print_r("document.write(\'Besucher: %d\');\n", $counter);
}
else {
print_r("Besucher: %d", $counter);
}
?>

und das bekommen

Warning: file(http://www.tatze.blogt.de//Tatze Blog/daten/cont.txt) [function.file]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 10

Warning: implode() [function.implode]: Invalid arguments passed in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 10

Warning: Cannot modify header information - headers already sent by (output started at /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php:10) in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php:10) in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 15

Warning: fopen(http://www.tatze.blogt.de//Tatze Blog/daten/cont.txt) [function.fopen]: failed to open stream: HTTP wrapper does not support writeable connections in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 19

Warning: flock() expects parameter 1 to be resource, boolean given in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 20

Warning: fwrite() expects parameter 1 to be resource, boolean given in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 21

Warning: flock() expects parameter 1 to be resource, boolean given in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 22
 
Logisch - weil du nicht schreibend auf ne Datei über die Angabe der Domain zugreifen kannst. Und nimm die Domain aus dem Cookie-Path raus, das habe ich aus gutem Grund so angegeben, wie es im Original-Code steht. Ebenso die Angabe der Cookie-Domain muss wie in meiner Vorgabe sein.
 
Zuletzt bearbeitet von einem Moderator:
Langsam nerve ich wohl
tongue.gif



Eingabe:
<?php
$cookie_path = '/Tatze Blog/';
$cookie_domain = '.blogt.de';
$cookie_name = 'counter_cookie';
$cookie_expire = time() + (3600*12); // Lock für den Besucher nur alle 12 Stunden hochzählen
$cookie_dexpire = time() - (time() + $cookie_expire);

$save_path = realpath('/Tatze Blog/daten/cont.txt');

$counter = (int)implode('', file($save_path));

if(!$_COOKIE[$cookie_name]) {

setcookie($cookie_name, '', $cookie_dexpire, $cookie_path, $cookie_domain);
setcookie($cookie_name, 1, $cookie_expire, $cookie_path, $cookie_domain);

$counter++;

$fp = fopen($save_path, 'w+');
flock($fp, LOCK_EX);
fwrite($fp, $counter);
flock($fp, LOCK_UN);
$fp = null;
}

if($_GET['ac'] == 'js') {
print_r("document.write(\'Besucher: %d\');\n", $counter);
}
else {
print_r("Besucher: %d", $counter);
}
?>


Ausgabe:
Warning: file() [function.file]: Filename cannot be empty in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 10

Warning: implode() [function.implode]: Invalid arguments passed in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 10

Warning: Cannot modify header information - headers already sent by (output started at /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php:10) in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php:10) in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 15

Warning: fopen() [function.fopen]: Filename cannot be empty in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 19

Warning: flock() expects parameter 1 to be resource, boolean given in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 20

Warning: fwrite() expects parameter 1 to be resource, boolean given in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 21

Warning: flock() expects parameter 1 to be resource, boolean given in /data/multiserv/users/265446/projects/855482/www/Tatze Blog/counter.php on line 22
 
Ich bringe des Rätsel Lösung...
... und eigentlich finde ich es komisch das keine Ultra-PhP-Kenner schon beim Titel
ne Gänsehaut bekommen haben...

Die Lösung ist, dass man PHP nicht in HTML einbinden kann (nur wenn der Server das mitmacht)
und besser die HTML Datei in PHP wandelt und dann funktioniert es auch
biggrin.gif


Warum zams Counter nicht funzt weiß ich nicht. Kann kein PHp.. in 3 Jahren vieleicht..
biggrin.gif


Danke trotzdem.
 
Aber mal ehrlich: Counter waren vor 15 Jahren mal schick, ich finde sowas hat heute einen nicht so tollen Touch.
Das ist fast so schlimm wie wenn die Leute wollen dass sofort Musik abgespielt wird, wenn man ihre Homepage öffnet.

Wenn man sich für Besucherzahlen interessiert wertet man besser seine Apache Logs aus.
 
Zuletzt bearbeitet von einem Moderator:
Zurück