Counter Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beitrag
besucher
counter
date
eintrag
error
fehler
fehlermeldung
gerade mal
hilfe
insert
mode
monat
pawort
show
syntax
test
tutorial
user
zeile
-
Hallo,
ich habe gerade mal versuch diesen Counter auf meiner Homepage einzubinden um zu gucken wenn das wirklich geht.
Diesen: http://www.lima-city.de/tutorials.php?mode=show&id=1547
Bloss nun habe ich das Problem das er immer eine Fehlermeldung bringt.
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/webpages/lima-city/avrilfan1999/html/Avrilfan1999/PHP/counter.php on line 14
Bei mir ist die Zeile 14 diese:
$pruefe_ip = mysql_query('SELECT ip FROM counter WHERE ip=''.getenv (REMOTE_ADDR).'''); /* Suche die IP das Users in der Datenbank */
Kann mir da jmd helfen? Oder sagen wo das Problem dafür liegt?
Hannes (-: -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
$pruefe_ip = mysql_query('SELECT ip FROM counter WHERE ip=\''.getenv (REMOTE_ADDR).'\'); /* Suche die IP das Users in der Datenbank */
Proviers mal so.
Beitrag geaendert: 25.11.2006 14:24:39 von speedtouch92 -
da ist ein feler bei den "...
Deine Version:
$pruefe_ip = mysql_query('SELECT ip FROM counter WHERE ip=''.getenv (REMOTE_ADDR).'''); /* Suche die IP das Users in der Datenbank */
Rictig:
$pruefe_ip = mysql_query('SELECT ip FROM counter WHERE ip=\''.getenv (REMOTE_ADDR).'\''); /* Suche die IP das Users in der Datenbank */
lg sebi
sorry der ibt die anfürunszeicen nict aus... ic abs jetzt nocmals endert...
Beitrag geaendert: 25.11.2006 14:32:09 von skate-4fun -
Probier mal das:
$ip = $_SERVER['REMOTE_ADDR'];
$pruefe_ip = mysql_query("SELECT ip FROM counter WHERE ip=".$ip.""); /* Suche die IP das Users in der Datenbank */ -
Hey vielen Dank für die vielen Antworten nun sagt er mir das ich in Zeile 19 einen Fehler habe, in dem Fall wäre das die Zeile:
mysql_query('INSERT INTO counter ( ip , date, time )VALUES ( ''.getenv (REMOTE_ADDR).'', ''.$today.'', ''.time().'')'); /* Trage in die Datenbank ein, die IP, das jetzige Datum und die jetzige Zeit */
Könnt ihr mir da auch weiterhelfen?
Habe so nebenbei nun Bene1989 Code-teil benutzt, weil er da am spätesten eine Fehlermeldung gebracht hat (von der Zeile her)
Schonmal vielen Dank für eure Hilfe.
Hannes (-: -
Du musst die anderen Zeilen jetzt meinem Script entsprechend umändern:
mysql_query("INSERT INTO counter ( ip , date, time )VALUES (".$ip.", ".$today.", ".time().")");
EDIT: Du machst also aus "getenv (REMOTE_ADDR)" -> "$ip" (ohne ").
Mach das mal mit Suchen und Ersetzen.
Beitrag geaendert: 25.11.2006 14:50:10 von bene1989 -
Danke, aber könntest du mir diese Zeilen wenn Sie müssen auch noch umscripten?
Ich habe nämlich so gut wie keine Ahnung davon Sie das geht.
Hier wären noch die restlichen Zeilen aus dem Script:
$hole_daten_jetzt = mysql_query('SELECT time FROM counter WHERE time>''.(time()-300).'''); /* Holt alle Einträge, die 5minuten oder weniger alt sind */
$zaehle_jetzt = mysql_num_rows($hole_daten_jetzt); /* Zähle die Einträge */
$hole_daten_heute_online = mysql_query('SELECT date FROM counter WHERE date = ''.$today.'''); /* Holt alle Einträge, die mit dem jetzigen Datum übereinstimmen */
$zaehle_heute = mysql_num_rows($hole_daten_heute_online); /* Zähle die Einträge */
$hole_daten_gestern_online = mysql_query('SELECT date FROM counter WHERE date = ''.$yesterday.'''); /* Holt alle Einträge , die mit dem gestrigen Datum übereinstimmen */
$zaehle_gestern = mysql_num_rows($hole_daten_gestern_online); /* Zähle die Einträge */
$hole_daten_diesen_monat_online = mysql_query('SELECT date FROM counter WHERE date LIKE ''.$this_year.'-'.$this_month.'%''); /* Holt alle Einträge, die mit dem jetzigem Monat übereinstimmen */
$zaehle_diesen_monat = mysql_num_rows($hole_daten_diesen_monat_online); /* Zähle die Einträge */
$hole_daten_insgesamt_online = mysql_query('SELECT date FROM counter');/* Holt alle Einträge, die gemacht wurden */
$zaehle_insgesamt = mysql_num_rows($hole_daten_insgesamt_online); /* Zähle die Einträge */
Wäre dir sehr Dankebar für deine Hilfe
Hannes (-:
Beitrag geaendert: 25.11.2006 14:52:14 von avrilfan1999 -
Nein, dort brauch nichts mehr verändert werden.
Es ging ja nur um die IP. Und die ist von diesem Scriptabschnitt nicht betroffen. -
Das Problem ist nur er zeigt mir jetzt trotzdem an der ich einen Fehler in Zeile 22 habe.
Kannst ja auch hier sehen: hhtp://www.avrilfan2.de.vu -
Also hier denn alles was in der Datei steht.
<?php
$dbhost = 'Host'; // Hier dein HOST eintragen
$dbuser = 'User'; // Hier deinen Username eintragen
$dbpassword = 'Passwort'; // Hier dein Passwort eintragen
$dbbase = 'Datenbank'; // Hier dein Datenbankname eintragen
mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($dbbase);
$today = date('Y-m-d'); /* Das heutige Datum wird ausgelesen */
$yesterday = date('Y-m-d',strtotime('-1 day')); /* Das gestrige Datum wird ausgelesen */
$this_month = date('m'); /* Hier wird der jetzige Monat ausgelesen */
$this_year = date('Y'); /* Hier wird das jetzige Jahr ausgelesen */
$ip = $_SERVER['REMOTE_ADDR'];
$pruefe_ip = mysql_query('SELECT ip FROM counter WHERE ip='.$ip.''); /* Suche die IP das Users in der Datenbank */
$zeilen = mysql_num_rows($pruefe_ip); /* Speichere in der Variable $zeilen , wieviele Zeilen mit dieser IP gefunden wurden */
if($zeilen==0) /* Wenn keine Einträge gefunden wurden */
{
mysql_query('INSERT INTO counter ( ip , date, time )VALUES ('.$ip.', '.$today.', '.time().')'); /* Trage in die Datenbank ein, die IP, das jetzige Datum und die jetzige Zeit */
}
$hole_daten_jetzt = mysql_query('SELECT time FROM counter WHERE time>''.(time()-300).'''); /* Holt alle Einträge, die 5minuten oder weniger alt sind */
$zaehle_jetzt = mysql_num_rows($hole_daten_jetzt); /* Zähle die Einträge */
$hole_daten_heute_online = mysql_query('SELECT date FROM counter WHERE date = ''.$today.'''); /* Holt alle Einträge, die mit dem jetzigen Datum übereinstimmen */
$zaehle_heute = mysql_num_rows($hole_daten_heute_online); /* Zähle die Einträge */
$hole_daten_gestern_online = mysql_query('SELECT date FROM counter WHERE date = ''.$yesterday.'''); /* Holt alle Einträge , die mit dem gestrigen Datum übereinstimmen */
$zaehle_gestern = mysql_num_rows($hole_daten_gestern_online); /* Zähle die Einträge */
$hole_daten_diesen_monat_online = mysql_query('SELECT date FROM counter WHERE date LIKE ''.$this_year.'-'.$this_month.'%''); /* Holt alle Einträge, die mit dem jetzigem Monat übereinstimmen */
$zaehle_diesen_monat = mysql_num_rows($hole_daten_diesen_monat_online); /* Zähle die Einträge */
$hole_daten_insgesamt_online = mysql_query('SELECT date FROM counter');/* Holt alle Einträge, die gemacht wurden */
$zaehle_insgesamt = mysql_num_rows($hole_daten_insgesamt_online); /* Zähle die Einträge */
?>
Das alles was ich in der Datei habe, dies habe ich alles kopiert aus dem Tutorial von oben was ich schon gesagt hatte, Passwort, Datenbank, Username, und Host habe ich auch immer eingetragen.
Zeile 22 ist diese:
$hole_daten_jetzt = mysql_query('SELECT time FROM counter WHERE time>''.(time()-300).'''); /* Holt alle Einträge, die 5minuten oder weniger alt sind */
-
du musst auc dort:
$hole_daten_jetzt = mysql_query('SELECT time FROM counter WHERE time>\''.(time()-300).'\''); /* Holt alle Einträge, die 5minuten oder weniger alt sind */
l sebi -
Könnte mir das nicht bitte jmd zum Ende fertig scripten weil, denn habe ich Zeile 24 Fehlermeldung.
$hole_daten_heute_online = mysql_query('SELECT date FROM counter WHERE date = ''.$today.'''); /* Holt alle Einträge, die mit dem jetzigen Datum übereinstimmen */
Ich habe wirklich keine Ahnung davon und habe noch nicht mal wirklich raus wie was ihr da groß verändert, und weshalb sowieso nicht.
Wäre wirklich hammer super von euch wenn ihr das machen könntet.
-
$hole_daten_jetzt = mysql_query('SELECT time FROM counter WHERE time>''.(time()-300).'''); /* Holt alle Einträge, die 5minuten oder weniger alt sind */
$zaehle_jetzt = mysql_num_rows($hole_daten_jetzt); /* Zähle die Einträge */
$hole_daten_heute_online = mysql_query('SELECT date FROM counter WHERE date =
''.$today.'''); /* Holt alle Einträge, die mit dem jetzigen Datum übereinstimmen */
$zaehle_heute = mysql_num_rows($hole_daten_heute_online); /* Zähle die Einträge */
$hole_daten_gestern_online = mysql_query('SELECT date FROM counter WHERE date = ''.$yesterday.'''); /* Holt alle Einträge , die mit dem gestrigen Datum übereinstimmen */
$zaehle_gestern = mysql_num_rows($hole_daten_gestern_online); /* Zähle die Einträge */
$hole_daten_diesen_monat_online = mysql_query('SELECT date FROM counter WHERE date LIKE ''.$this_year.'-'.$this_month.'%''); /* Holt alle Einträge, die mit dem jetzigem Monat übereinstimmen */
$zaehle_diesen_monat = mysql_num_rows($hole_daten_diesen_monat_online); /* Zähle die Einträge */
$hole_daten_insgesamt_online = mysql_query('SELECT date FROM counter');/* Holt alle Einträge, die gemacht wurden */
$zaehle_insgesamt = mysql_num_rows($hole_daten_insgesamt_online); /* Zähle die Einträge */
Irgendwie ist die Formatierung von Lima richtig scheiße, wenn ich "(Gänsefüße) mache kommen '' und das ändert bei PHP den sinn. Also guck nochmal ins tut und mach aus " (gänsefüße) '(einen strich oben). Ich arbeite auch gerade an deinem Script, allerdings treten dann weitere Fehler auf. Ich werde mich darum kümmern. -
Frage: Wie wichtig ist dir "Besucher in diesem Monat"?
Ich krieg das nämlich im Moment nicht hin. Mein Script:
http://bene1989.t-baumann.com/test/counter.txt
EDIT: Ich habe eine Idee wegen dem Monat, sieht dann allerdings ein bisschen anders aus
Beitrag geaendert: 25.11.2006 15:47:28 von bene1989 -
Hey Bene1989
So wichtig ist mir das mit dem User in Monat nicht, aber wenn du ne Idee hast und die auch funktioniert bin ich natürlich nicht abgeneigt :-)
Ich das denn schon die fertige Version? Oder arbeitest du noch daran?
Ich bedanke mich schon mal recht Herzlich bei dir. Deine Hilfe habe ich auch schon mit einem postiven Karma belohnt :-)
Hannes (-: -
So, jetzt hab ich die ferige Verison.
http://bene1989.t-baumann.com/test/counter.txt
Meine Güte, musst ich mehr verändern als ich gedacht habe.
Probier es mal bei dir aus.
PS: Danke für den Karma :-)
EDIT: Was ich noch sagen wollte, Nachteil bei diesem Counter -> jedesmal wenn du F5 drückst erhöht sich dein Counter. D.h. du kannst eine Statistik richtig aufpuschen. Mit einer Zeitsperre könntest du das verhindern und dann hast du die wirklichen Besucher.
EDIT2: Ich nehme alles Zurück, war ein Programmierfehler von mir. Jetzt funktioniert das auch mit der IP-Sperre. Verbesserung siehe oberen Link.
Beitrag geaendert: 25.11.2006 16:05:02 von bene1989 -
Hey vielen Dank es geht,
nur eine Frage habe ich noch angeblich sollte ja eine Doppelzählung verhindert werden, und nun jedes mal wenn ich meine Seite neulade wird einmal mehr gezählt, ist das normal oder wodurch kommt das?
Hättest da vllt. auch noch eine Idee?
Kannst ja selber testen wenn du möchstest unter http://www.avrilfan2.de.vu
Du hast mir das Wort aus dem Mund genommen, könntest du mir dies vllt. noch mit einbauen? Wärst du vllt. so nett?
Beitrag geaendert: 25.11.2006 16:06:25 von avrilfan1999 -
Wäre es auch noch möglich die IP anzeigen zu lassen? Ohne riesigen Aufwand?
Das habe ich bei der ganzen Aufregung ganz vergessen zu Fragen.
Edit: Ähm irgendwie funktioniert das glaube ich doch nicht 100%ig, ich habe gerade mal eine Freundin auf die Seite gebracht, aber bei ihr steht immer noch 4 Besucher sprich die Zahl die ich veruracht habe.
Und Besucher Online zeigt er auch 0 an.
Hättest du dafür eine Idee?
Beitrag geaendert: 25.11.2006 16:26:12 von avrilfan1999 -
Zum Thema IP anzeigen:
du fügst einfach dort wo es hin soll folgendes ein: <?=$_SERVER['REMOTE_ADDR'];?>
Zum anderen muss ich nochmal prüfen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage