Antworten auf deine Fragen:
Neues Thema erstellen

Besucherzähler

bibifellow

Nicht mehr ganz neu hier

Hallo, ich habe einen Besucherzähler nach Lehrbuch erstellt, aber das Programm erstellt keine counter.txt und hat Fehlermeldung

Warning: fopen(counter.txt) [function.fopen]: failed to open stream: No such file or directory in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 15

Warning: fread(): supplied argument is not a valid stream resource in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 16

Warning: fclose(): supplied argument is not a valid stream resource in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 17

Warning: Cannot modify header information - headers already sent by (output started at /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php:7) in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 22

Warning: fopen() expects at least 2 parameters, 1 given in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 24

Warning: fclose(): supplied argument is not a valid stream resource in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 26
Guten Tag,

diese Seite wurde jetzt zum . mal aufgerufen.




PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<? 
$datei_name = "counter.txt";
if (file_exists("datei_name")) {
	//Datei existiert nicht, neu anlegen und initialisieren
	$dz = fopen($datei_name, "w");
	fwrite($dz, "0");
	fclose($dz); }
	//Counter auslesen
	$dz = fopen($datei_name, "r");
	$counter = fread($dz, 10);
	fclose($dz);
	
//Der Cookie wir abgefragt
$besucher = $_COOKIE['besucher'];
if (!isset($besucher)) {
	setcookie ("besucher","ja");
	$counter++;
	$dz = fopen($datei_name);
	fwrite($dz, $counter);
	fclose($dz);}
	// counter in Grafik umwandeln
	$anzahl = strlen($counter);
	$counter_grafik = "";
	for ($pos = 0; $pos < $anzahl; $pos++) {
$ziffer = substr($counter, $pos, 1);
$counter_grafik .= "<img scr=\"$ziffer.gif\">";
}
	?>
	
<body>
<h2>Guten Tag,</h2>
diese Seite wurde jetzt zum <?=$counter_grafik;?>. mal aufgerufen.

</body>
</html>

Wäre für ein paar Tipps dankbar.
 

AW: Besucherzähler

Ist es ein Webcounter der mit online geht oder wie. Also ich habe einen, bei einem Webhoster der kann online eingebunden werden und funktioniert ohne Probleme und auch ohne Werbung.
Bedeutet auch keinen Ärger mit dem Quelltext und keine Probleme auf dem Server wo vielleicht deine HP liegt.
 

bibifellow

Nicht mehr ganz neu hier

AW: Besucherzähler

Ich möchte es lernen und verstehen also klar gibt es Counter die man einfach integrieren kann. Möchte einfach verstehen wo der Fehler liegt und so langsam php verstehen lernen. Ich arbeite zur Zeit mit localhost.
 

DarkFather

Nicht mehr ganz neu hier

AW: Besucherzähler

Warning: fopen(counter.txt) [function.fopen]: failed to open stream: No such file or directory in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 15

Auf gut deutsch: Datei nicht gefunden, alle andeen Fehlermeldungen sind dadurch erstmal egal, Folgefehler wenn du so willst.


Daraus folgere ich dann, dass die Datei nicht angelegt wird.
Code:
if (file_exists("datei_name")) { 
    //Datei existiert nicht, neu anlegen und initialisieren 
    $dz = fopen($datei_name, "w"); 
    fwrite($dz, "0"); 
    fclose($dz); }

Wen wundert es? file_exists gibt TRUE zurück wenn ein Ordner oder eine Datei existiert, abgesehen davon, dass "datei_name" nicht der korrekte Dateiname ist wirst du so keinen Erfolg haben, du willst von php folgendes: "Wenn die Datei datei_name existiert dann erstelle sie".

Hoffe das reicht erstmal als Denkanstoß, wenn noch Fragen offen sind einfach melden.

MfG
Dark


P.S. diese Online-Counter sind ja wohl keine Alternative, ich zumindest habe gerne alles in einer Hand... Aber Counter an sich sind sowieso nicht mehr aktuell, das will keiner mehr haben.
 

owieortho

Aktives Mitglied

AW: Besucherzähler

Entweder:
PHP:
$datei_name = "counter.txt"; 
if (file_exists($datei_name))
oder ohne Variable
PHP:
if (file_exists("counter.txt"))

so müsste es gehen
 

Sturmkraehe

Nicht mehr ganz neu hier

AW: Besucherzähler

@owieortho klar das fehlt auch aber der fehler wird daraufhin wie von DarkFather sehr gut beschrieben worden ist auch wieder auftreteten -> jetzt zwar mit dem richtigen dateinamen aber die datei wird ja immernoch nicht erstellt da sie nur erstellt wird wenn sie bereits existiert ;)
 

Milly

Nicht mehr ganz neu hier

AW: Besucherzähler

Du fragst ja auch ab ob die Datei exisitiert. Du mußt abfragen ob die Datei nicht existiert! Schließlich soll eine neue Datei nur dann angelegt werden, wenn die nicht existiert.

Also:
Code:
[FONT=Courier New][COLOR=#007700]if (![/COLOR][COLOR=#0000bb]file_exists[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$datei_name[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]))  [/FONT]
[/COLOR]

Grüße
Milly
 

DarkFather

Nicht mehr ganz neu hier

AW: Besucherzähler

Richtig, ich wollte nur nicht alles vorkauen, weil der Lerneffekt meiner Meinung nach besser ist wenn man sich etwas selbst erarbeitet, was weitere Hilfestellungen natürlich nicht ausschließt.

MfG
Dark
 

bibifellow

Nicht mehr ganz neu hier

AW: Besucherzähler

habe den code jetzt geändert
PHP:
<? 
$datei_name="counter.txt";
if (!file_exists($datei_name)) {
	//Datei existiert nicht, neu anlegen und initialisieren
	$dz = fopen($datei_name, "w");
	fwrite($dz, "0");
	fclose($dz); }
	//Counter auslesen
	$dz = fopen($datei_name, "r");
	$counter = fread($dz, 10);
	fclose($dz);
	
//Der Cookie wir abgefragt
$besucher = $_COOKIE['besucher'];[COLOR="Red"]das ist line22[/COLOR]
if (!isset($besucher)) {
	setcookie ("besucher","ja");
	$counter++;
	$dz = fopen($datei_name); [COLOR="Red"]line24[/COLOR]
	fwrite($dz, $counter);
	fclose($dz);}
	// counter in Grafik umwandeln
	$anzahl = strlen($counter);
	$counter_grafik = "";
	for ($pos = 0; $pos < $anzahl; $pos++) {
$ziffer = substr($counter, $pos, 1);
$counter_grafik .= "<img scr=\"$ziffer.gif\">";
}
	?>

fehlermeldung jetzt
Warning: Cannot modify header information - headers already sent by (output started at /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php:7) in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 22

Warning: fopen() expects at least 2 parameters, 1 given in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 24

Warning: fwrite(): supplied argument is not a valid stream resource in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 25

Warning: fclose(): supplied argument is not a valid stream resource in /Applications/xampp/xamppfiles/htdocs/Baukasten/Besucherzaehler/index.php on line 26
 

bibifellow

Nicht mehr ganz neu hier

AW: Besucherzähler

Vielleicht liegt es daran weil ich mit localhost arbeite??
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<? 
$datei_name="counter.txt";
if (!file_exists($datei_name)) {
	//Datei existiert nicht, neu anlegen und initialisieren
	$dz = fopen($datei_name, "w");
	fwrite($dz, "0");
	fclose($dz); }
	//Counter auslesen
	$dz = fopen($datei_name, "r");
	$counter = fread($dz, 10);
	fclose($dz);
	
//Der Cookie wir abgefragt
$besucher = $_COOKIE['besucher'];
if (!isset($besucher)) {
	setcookie ("besucher","ja");
	$counter++;
	$dz = fopen($datei_name, "w");
	fwrite($dz, $counter);
	fclose($dz);}
	// counter in Grafik umwandeln
	$anzahl = strlen($counter);
	$counter_grafik = "";
	for ($pos = 0; $pos < $anzahl; $pos++) {
$ziffer = substr($counter, $pos, 1);
$counter_grafik .= "<img scr=\"$ziffer.gif\">";
}
	?>
	
<body>
<h2>Guten Tag,</h2>
diese Seite wurde jetzt zum <?=$counter_grafik;?>. mal aufgerufen.

</body>
</html>
 

Duddle

Posting-Frequenz: 14µHz

AW: Besucherzähler

Zitat setcookie():
setcookie() definiert ein mit den HTTP Header-Informationen zu übertragendes Cookie. Wie andere Header auch, müssen Cookies vor jeglicher Ausgabe Ihres Skriptes gesendet werden (dies ist eine Einschränkung des Protokolls). Das bedeutet, dass Sie diese Funktion aufrufen müssen, bevor Sie eine Ausgabe, dazu zählen auch <html>- oder <head>-Tags sowie jede Art von Whitespaces, übermitteln.


Duddle
 

DarkFather

Nicht mehr ganz neu hier

AW: Besucherzähler

Tja, das war im Ersten Code natürlich nicht zu erkennen, aber du solltest dir dringend angwöhnen die Fehlermeldungen zu lesen... und zwar immer die Erste, die anderen sind oft nur Folgen daraus...

Cannot modify header information - headers already sent by... Zuvor ergab Zeile 7 für mich keinen Sinn, jetzt allerdings schon, das ist die Erste php-Zeile und somit sagt dir die Meldung genau, dass vorher schon eine Ausgabe stattfindet.

Warum du überhaupt zuerst HTML schreibst, dann php und dann wieder HTML ist mir eh ein Rätsel, setzt das ganze php an den Anfang und die Welt ist wieder ein Stück besser.

MfG
Dark
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben