T_CONSTANT_ENCAPSED_STRING
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufruf
besagten zeile
betreffende zeile
counter
date
editor
einzige fehler
error
fehler
fehlermeldung
genaue fehlermeldung
genauen fehlermeldung
insert
klammern
komma
schleifen
sechs
semikolon
ursache
zeile
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo dunkle(r) Aurora!
Wie hei?t die Fehlermeldung genau?
Parse-Error bedeutet, dass der PHP-Interpreter schon beim ?bersetzen gestolpert ist.
T_CONSTANT_ENCAPSED_STRING hei?t, dass der Interpreter entweder ein String-Literal erwartet, aber was anderes gefunden hat oder genau umgekehrt (das h?ngt von der genauen Fehlermeldung ab).
Ein "String-Literal" ist sowas:
'das ist ein Stringliteral'
oder sowas
"das ist auch ein Stringliteral"
-
Die genaue Fehlermeldung lautet:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/webpages/lima-city/darkaurora/html/darkwarrior/index.php on line 38
-
Dann erwartet der PHP-Interpreter an dieser Stelle in Zeile 38 etwas anderes als ein String-Literal. M?glicherweise hast du eine Klammer oder ein Komma oder ein Semikolon davor vergessen. Wenn du den Fehler nicht findest kannst du ja mal die betreffende Zeile hier posten -- und die Zeile davor und die danach auch.
-
Also in dieser besagten Zeile ist nur das Zeichen, das eine if-Schleife beendet. Deshalb poste ich einfach mal die gesamte if-Schleife:
if($zeilen==0) { mysql_query("INSERT INTO counter (ip, date, time) VALUES ('".getenv (REMOTE_ADDR)."', '".$today."', '".time()."')"); }
-
Irgendwas stimmt mit deinem Query-String nicht. Aber der einzige Fehler, den ich in dem kurzen Code-St?ck bemerkt habe, war der bei getenv(). REMOTE_ADDR muss in Hochkommata eingeschlossen werden:
if($zeilen==0) { mysql_query( "INSERT INTO counter (ip, date, time) VALUES ('". getenv('REMOTE_ADDR'). "', '". $today. "', '". time(). "')" ); }
-
Hm ... daran scheint es nicht wirklich zu liegen. Ich habe es ge?ndert, doch der Fehler bleibt noch immer der selbe ...
Kann der Fehler vielleicht noch weiter oben liegen? Zwischen dem Datenbank-Connect und dieser if-Schleife stehen noch sechs weitere Zeilen, wobei ich denke, dass es in vier Zeilen nicht liegen kann, weil diese mit der if-Schleife nichts zu tun haben. Blieben noch die anderen zwei Zeilen:
$pruefe_ip = mysql_query("SELECT ip FROM counter WHERE ip='".getenv('REMOTE_ADDR')."'"); $zeilen = mysql_num_rows($pruefe_ip);
-
Wenn ein Fehler mokiert wird, kann es durchaus vorkommen, dass die Ursache eine oder mehrere Zeilen davor liegt. Dahinter ist mir noch nicht vorgekommen.
F?rbt dein Editor den PHP-Code bunt ein? (Syntax-Highlighting)
Wenn nicht, kannst du das einschalten? Dann sieht man normalerweise sofort, wo ein Fehler wie dieser ist. -
Nein, ich kann den Text nicht einf?rben, nutze den einfachen Windows-Editor ...
-
Dann leg dir mal nen vern?nftigen FreeWare-Editor zu:
http://www.pspad.com/de/download.php
Ansonsten: Mehr Qu?lcode bitte ... (Also die Zeilen davor ...) -
Okay, dann poste ich hier einfach mal den gesamten Code (ist zum Gl?ck ja nicht sooo viel):
$today = date("Y-m-d"); $yesterday = date('Y-m-d',strtotime("-1 day")); $this_month = date("m"); $this_year = date("Y"); $pruefe_ip = mysql_query("SELECT ip FROM counter WHERE ip='".getenv('REMOTE_ADDR')."'"); $zeilen = mysql_num_rows($pruefe_ip); if($zeilen==0) { mysql_query("INSERT INTO counter (ip, date, time) VALUES ('".getenv('REMOTE_ADDR')."', '".$today."', '".time()."')"); } $hole_daten_jetzt = mysql_query("SELECT time FROM counter WHERE time>'".(time()-300."'"); $zaehle_jetzt = mysql_num_rows($hole_daten_jetzt); $hole_daten_heute_online = mysql_query("SELECT date FROM counter WHERE date = '".$today."'"); $zaehle_heute = mysql_num_rows($hole_daten_heute_online); $hole_daten_gestern_online = mysql_query("SELCET date FROM counter WHERE date = '".$yesterday."'); $zaehle_gestern = mysql_num_rows($hole_daten_gestern_online); $hole_daten_diesen_monat_online = mysql_query("SELECT date FROM counter WHERE date LIKE '".$this_year."-".$this_month."%'"); $zaehle_diesen_monat = mysql_num_rows($hole_daten_diesen_monat_online); $hole_daten_insgesamt_online = mysql_query("SELECT date FROM counter"); $zaehle_insgesamt = mysql_num_rows($hole_daten_insgesamt_online);
-
Gro?es Problem: Bei mir kommt keine Fehlermeldung -- zumindest kein "Parsing error". Jetzt bin ich auch erstmal ratlos ...
Was mir noch aufgefallen ist:
$hole_daten_gestern_online = mysql_query("SELCET date FROM counter WHERE date = '".$yesterday."');
Das sollte sicher "SELECT" hei?en und nicht "SELCET" -- aber das st?rt erst, wenn PHP das Script ohne Fehlermeldungen ?bersetzt hat ... -
Hm, das ist ja merkw?rdig ... naja, ich probier dann mal eben was anderes. Vielleicht geht es dann ... melde mich per EDIT gleich nochmal.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage