php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.05.2007, 15:25  
Neuer Benutzer
 
Registriert seit: 22.05.2006
Beiträge: 14
Hasso
Standard Probleme mit counter

Ich habe mit folgendem Code einen einfachen counter erstellt:
Code:
<?php
$daten=file("counter.txt");
$zaehler=trim($daten[0]);
echo "der zähler steht auf ".$zaehler;
$zaehler++;
$do=fopen("counter.txt","w+");
fwrite($do,$zaehler);
fclose($do);
?>
So weit so gut. Nur zählt der counter mit jedem Aufruf der Seite um 2 hoch statt um 1! Hat einer dafür eine Erklärung?
__________________
Hasso
Hasso ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.05.2007, 16:19  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Weil das Skript 2x ausgeführt wird. Warum weißt nur du.
Zergling-new ist offline  
Alt 18.05.2007, 22:32  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Zergling
Weil das Skript 2x ausgeführt wird. Warum weißt nur du.
Einfache aber gute Antwort...
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
Alt 18.05.2007, 22:35  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Pauschal gesagt würde ich behaupten, der Fehler ist in dem Teil des Scripts zu suchen, der gerade nicht gepostet wurde.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 22.05.2007, 22:42  
Neuer Benutzer
 
Registriert seit: 22.05.2006
Beiträge: 14
Hasso
Standard

Ich habe jetzt eine PHP-Datei geschrieben, bei der Angaben des Besuchers in eine Datei log.txt geschrieben werden. Hier der komplette PHP-Teil:
Code:
<?php
 // Variablen
$i=0;
$anzahl=0;
$herkunft=$HTTP_REFERER;
$adresse=$REMOTE_ADDR;
$browser=$HTTP_USER_AGENT;
$cr=chr(13);
$lf=chr(10);
$logfile="log.txt";
$userinfo=$herkunft."+++".$adresse."+++".$browser.$cr.$lf;
// Daten einlesen ****************************
if(file_exists($logfile))
{
  $daten=file($logfile);
  $anzahl=count($daten);
  // Daten ausgeben *****************************
  echo "Es sind $anzahl Datensätze gespeichert: 
";
  foreach($daten as $ausgabe)
  {
    $i++;
    echo "

$i: $ausgabe</p>
";
  }
}
else
{
  echo "Die Datei $logfile wird neu angelegt
";
}
 // Daten schreiben ***************************
$do=fopen($logfile,"a");
fwrite($do,$userinfo);
fclose($do);
?>
Beim ersten Durchlauf wird ausgegeben:
Code:
Die Datei log.txt wird neu angelegt
Das ist auch in Ordnung.
Beim erneuten Aufruf der Datei wird dann aber angezeigt:
Code:
Es sind 2 Datensätze gespeichert:

1: /84.143.219.2/Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

2: http://www....de/counter.php/84.143.219.2/Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
Und bei jedem weiteren Durchlauf erhalte ich zwei weitere Zeilen - statt einer, wie man erwarten sollte, die erste jeweils ohne HTTP_REFERER, die zweite mit HTTP_REFERER. Begreifen kann ich das leider nicht, da nur einmal $userinfo in die Datei geschrieben wird.
__________________
Hasso
Hasso ist offline  
Alt 22.05.2007, 22:55  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Abgesehen davon, dass Du nicht auf HTTP_REFERER und die anderen Variablen zugreifen solltest und lieber in $_SERVER[] nach entsprechenden Werten suchen solltest, sehe ich da kein Problem im Code.

Das Problem ist der Aufruf des Scripts. Gibt es da ein Refresh oder was ähnliches?
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 22.05.2007, 22:57  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

Anstatt $HTTP_... zu nehmen, solltest du lieber die globale $_SERVER Variable benutzen.

Dann muss es am Aufruf des Scriptes liegen...
Überleg mal... Viele Möglichkeiten kann es ja nichtmehr geben.
pepe24 ist offline  
Alt 22.05.2007, 23:19  
Neuer Benutzer
 
Registriert seit: 22.05.2006
Beiträge: 14
Hasso
Standard

Ich rufe das script auf, indem ich den Namen der Datei (http://www.helfen-online.de/php/Brehmer/counter.php) in die Adresszeile meines Browsers schreibe und dann ENTER drücke. Die nächsten Aufrufe mache ich mit F5 oder indem ich wieder in die Adresszeile gehe und noch mal ENTER drücke - also ganz normal.
__________________
Hasso
Hasso ist offline  
Alt 22.05.2007, 23:55  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

Bei mir lokal funktioniert das Script so wie es soll.

Woher kommen denn die Meta Daten im <head>-Bereich? Ist vielleicht irgendeine Weiterleitung aktiv?

Am Skript liegt es auf jeden Fall nicht...
pepe24 ist offline  
Alt 23.05.2007, 07:17  
Neuer Benutzer
 
Registriert seit: 22.05.2006
Beiträge: 14
Hasso
Standard

Der <head>-Bereich ist völlig unspektakulär:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta name="generator" content="textpad 4.6">
<meta name="author" content="?">
<meta name="keywords" content="?">
<meta name="description" content="?">
</head>
__________________
Hasso
Hasso ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Counter in "selbstgestrickte" Homepage - wie? magro PHP Tipps 2008 11 30.03.2008 16:37
Counter stellt sich unregelmäßig zurück Serena77 PHP Tipps 2007 13 17.05.2007 21:34
Probleme bei Speicherung von serialize() Strings Manni2k PHP Tipps 2006 13 15.10.2006 15:06
ein counter - und berechnungen netti PHP Tipps 2005-2 11 24.10.2005 21:03
Counter - Daten gelöscht - Erklärung?? havok PHP-Fortgeschrittene 5 20.10.2005 01:51
Counter - Daten gelöscht - Erklärung?? havok PHP Tipps 2005-2 9 18.10.2005 20:51
Counter funktioniert, aber trotzdem wird Fehler gezeigt ... PHP Tipps 2005 4 07.03.2005 17:56
Suche Counter Script Beitragsarchiv 8 17.01.2005 13:42
Problem mit counter HTML, Usability und Barrierefreiheit 10 12.01.2005 06:04
counter probleme PHP Tipps 2005 10 05.01.2005 21:03
Counter für registrierte user PHP Tipps 2004-2 3 26.12.2004 11:32
[Erledigt] Technische Probleme mit Sessions PHP-Fortgeschrittene 4 18.11.2004 14:45
counter für gallerie Sclot PHP Tipps 2004 2 05.07.2004 15:36
Probleme mit Counter PHP Tipps 2004 5 23.06.2004 23:44
Problem mit einem Counter JeeZ PHP Tipps 2004 6 18.06.2004 13:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:30 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.