unexpected T_VARIABLE
Freddy
- php
0 KeinBlase0 Freddy
0 seth_not@home1 dedlfix
0 KeinBlase
Hallo,
ich gucke jetzt schon zwei Stunden über den Code und finde den fehler nicht. Kann mir jemand helfen.
Folgender fehler wird zurückgegeben:
Parse error: syntax error, unexpected T_VARIABLE in /www/htdocs/..../counter.php on line 10
Hier der COde:
<?php
$db_name="bla";
$db_host="localhost";
$db_user="bla";
$db_pass="bla";
$countercurrentonline="cuseronline";
$counterhits="counter";
$counteripblock="counteripblock";
$enablenewcount="1800";
$dropuser="180";
$countflag="time()";
mysql_connect("$db_host", "$db_user", "$db_pass") or die("keine Verbindung zum Server");
mysql_select_db("$db_name") or die ("kann Datenbank nicht oeffnen");
$ipadr=getenv(REMOTE_ADDR);
$client = $HTTP_USER_AGENT;
$host = gethostbyaddr($ipadr);
$dateonly = date("d.m.y",time());
$deleteblockedip=mysql_query("DELETE FROM $counteripblock WHERE del <$countflag - $enablenewcount");
$checkip=mysql_query("SELECT * FROM $counteripblock where ipadr='$ipadr' ");
$resultipcheck=mysql_num_rows($checkip);
if($resultipcheck == "0"){
$query=mysql_query("INSERT INTO $counterhits (id, ipadr, client, countflag, date) VALUES ('', '$ipadr','$client','$countflag','$dateonly')" );
$query=mysql_query("INSERT INTO $counteripblock (dates, del, ipadr) VALUES ('$dateonly', '$countflag','$ipadr')" );
}
$hitquery=mysql_query("SELECT * FROM $counterhits order by id DESC");
$visits=mysql_fetch_array($hitquery);
echo " - gesamt: $visits[id]";
$todayuser =mysql_query("SELECT count(*) as total FROM $counterhits where date='$dateonly'");
$todayuserarray = mysql_fetch_array($todayuser);
echo " - heute: $todayuserarray[total]";
$stamp = mktime(0, 0, 0, date("m"), date("d")-1, date("y"));
$yesterday = date("d.m.y", $stamp);
$todayuseryesterday =mysql_query("SELECT count(*) as total FROM $counterhits where date='$yesterday'");
$todayuseryesterdayarray = mysql_fetch_array($todayuseryesterday);
echo " - gestern: $todayuseryesterdayarray[total]";
$deleteuser= mysql_query( "delete from $countercurrentonline where DATE < $countflag - $dropuser");
$deleteip= mysql_query( "delete from $countercurrentonline where IP ='$ipadr'");
$deleteuser= mysql_query( "delete from $countercurrentonline where IP = '' ");
$insertuser =mysql_query( "INSERT INTO $countercurrentonline VALUES('','$ipadr','$countflag')");
$resultuser = mysql_query( "SELECT Count(*) as total FROM $countercurrentonline");
$numberonline = mysql_fetch_array($resultuser);
echo " - gerade online: $numberonline[total]";
mysql_close();
?>
Hi
Auf den ersten Blick kann dies ($countflag="time()";) nicht stimmen.
time() ist eine PHP Funktion und kein Text, daher ohne "".
Also etwa so:
countflag=time();
Das gleiche hier:
mysql_connect("$db_host", "$db_user", "$db_pass")
mysql_select_db("$db_name")
$db_host, $db_user, $db_pass und $db_name sind Variable, darum ohne Anführungszeichen.
sowie
getenv(REMOTE_ADDR) müsste getenv("REMOTE_ADDR")
siehe http://ch2.php.net/getenv
Überarbeite mal deinen Code, kannst dich gerne wieder melden wenn du weitere Fragen hast...
gruss
ok, das hab ich so gemacht. Hat aber nix gebracht. Er bringt den selben Fehler.
Hier nochmal der Code:
<?php
$db_name="bla";
$db_host="localhost";
$db_user="bla";
$db_pass="bla";
$countercurrentonline="cuseronline";
$counterhits="counter";
$counteripblock="counteripblock";
$enablenewcount="1800";
$dropuser="180";
$countflag=time();
mysql_connect($db_host, $db_user, $db_pass) or die("keine Verbindung zum Server");
mysql_select_db($db_name) or die ("kann Datenbank nicht oeffnen");
$ipadr=getenv("REMOTE_ADDR");
$client = $HTTP_USER_AGENT;
$host = gethostbyaddr($ipadr);
$dateonly = date("d.m.y",time());
$deleteblockedip=mysql_query("DELETE FROM $counteripblock WHERE del <$countflag - $enablenewcount");
$checkip=mysql_query("SELECT * FROM $counteripblock where ipadr='$ipadr' ");
$resultipcheck=mysql_num_rows($checkip);
if($resultipcheck == "0"){
$query=mysql_query("INSERT INTO $counterhits (id, ipadr, client, countflag, date) VALUES ('', '$ipadr','$client','$countflag','$dateonly')" );
$query=mysql_query("INSERT INTO $counteripblock (dates, del, ipadr) VALUES ('$dateonly', '$countflag','$ipadr')" );
}
$hitquery=mysql_query("SELECT * FROM $counterhits order by id DESC");
$visits=mysql_fetch_array($hitquery);
echo " - gesamt: $visits[id]";
$todayuser =mysql_query("SELECT count(*) as total FROM $counterhits where date='$dateonly'");
$todayuserarray = mysql_fetch_array($todayuser);
echo " - heute: $todayuserarray[total]";
$stamp = mktime(0, 0, 0, date("m"), date("d")-1, date("y"));
$yesterday = date("d.m.y", $stamp);
$todayuseryesterday =mysql_query("SELECT count(*) as total FROM $counterhits where date='$yesterday'");
$todayuseryesterdayarray = mysql_fetch_array($todayuseryesterday);
echo " - gestern: $todayuseryesterdayarray[total]";
$deleteuser= mysql_query( "delete from $countercurrentonline where DATE < $countflag - $dropuser");
$deleteip= mysql_query( "delete from $countercurrentonline where IP ='$ipadr'");
$deleteuser= mysql_query( "delete from $countercurrentonline where IP = '' ");
$insertuser =mysql_query( "INSERT INTO $countercurrentonline VALUES('','$ipadr','$countflag')");
$resultuser = mysql_query( "SELECT Count(*) as total FROM $countercurrentonline");
$numberonline = mysql_fetch_array($resultuser);
echo " - gerade online: $numberonline[total]";
mysql_close();
?>
gudn tach!
Folgender fehler wird zurückgegeben:
Parse error: syntax error, unexpected T_VARIABLE in /www/htdocs/..../counter.php on line 10
evtl. ein dollar-zeichen vergessen?
Hier der COde: [...]
aber sehr wahrscheinlich nicht der inhalt jener counter.php. denn dort ist in zeile 10
$dropuser="180";
alles in ordnung.
prost
seth
echo $begrüßung;
ich gucke jetzt schon zwei Stunden über den Code und finde den fehler nicht. Kann mir jemand helfen.
Wenn du in deinem eigenen Code-Haufen nicht mehr durchsiehst, wäre es vielleicht an der Zeit, ihn übersichtlicher zu schreiben. Einrückungen, Leerzeilen zwischen logisch abgrenzbaren Bereichen und Kommentare tragen zu einer besseren Lesbarkeit und einer einfacheren Fehlersuche bei. Auch kann ein Editor mit Syntax-Hervorhebung sehr dienlich sein.
Folgender fehler wird zurückgegeben:
Parse error: syntax error, unexpected T_VARIABLE in /www/htdocs/..../counter.php on line 10
Oft handelt es sich dabei um Folgefehler. Der Parser stolpert über irgendetwas, strauchelt noch eine Weile vor sich hin, um irgendwann endgültig auf die Nase zu fallen. Suche den Fehler auch vorher. In dem abgebildeten Zeichensalat ist bis Zeile 10 alles in Ordnung. Der Fehler kann auch beim Rauseditieren der Zugangsdaten mit verschwunden sein. Auch beliebt ist, den Code lokal zu ändern, das Ergebnis nicht hochzuladen und online alten Code zu testen.
echo "$verabschiedung $name";
Ist das wirklich der Code der Seite die ein Fehler erzeugt, dann auf Zeile 10 ist alles i.O.
Aber guck den Code mal allgemein an, es hat noch viele Fehler...
z.b.
$deleteblockedip=mysql_query("DELETE FROM $counteripblock WHERE del <$countflag - $enablenewcount");
müsste
$deleteblockedip=mysql_query("DELETE FROM '$counteripblock' WHERE del < '$countflag' - '$enablenewcount'");
sein.
Tipp:
Kopiere dein Code mal zur Sicherung in eine Txt-Datei und danach löscht du alles Zeilen bis auf z.b. die ersten 10. Danach kannst du Schritt für Schritt Zeilen hinzufügen und siehst immer ob es funzt