unexpectet T-String

  • Hi

    wenn ich bei meiner page die overview.php öffne kommt das


    Parse error: syntax error, unexpected T_STRING in /home/..../overview.php(111) : eval()'d code on line 18

    dabei handelt es sich um einen fehler in der overview.html

    aber die zeilen um 18 herum sehen so aus:



    findet da jemand einen fehler??


    mfg

  • Mal als anstoss.

    Mit PHP sollte das etwa so ausehen->

  • lest euch bitte den thread nochmal durch

    ich öffne die php und nicht die html..
    jedoch befindet sich der fehler in der html!


    color="#FFFFFF">


    das wäre zeile 18


    mfg

  • Was du machst ist ungefähr so, als wenn du die Motorhaube eines PKW zur Werkstatt schleppst und verlangst, daß sie dir sagen, warum der Motor unrund läuft.
    Immerhin ist de Motorhaube ja auch irgendwie drumherum.

    Reich den kompletten Quelltext rüber oder sieh zu, wie du allein mit deinem Problem klar kommst. Unsere Glaskugeln sind zur Zeit leider alle in der Werkstatt - die brauchen die dort, um anhand der Motorhauben Fehler am Motor zu finden ....

    G.a.d.M.

    Ronald

  • jetzt habt ihr euch klar genug ausgedrückt

    sry :)


    also



    wie man sieht steht an zeile 111

    Code
    eval("\$tpl->output(\"".$tpl->get("overview")."\");");

    template output geht an den ordner /templates/ worin die "overview.html" ist..

    wie dort stand "eval()'d code on line 18" liegt der fehler also in zeile 18 der overview.html


    die wäre



    wie man sieht wäre die zeile 18 lediglich für farben -.-


    wegen <if><then></then><else></else>

    ohne dem geht es nicht :(


    war das jetzt besser?
    oder noch fehler?

    mfg

  • Moin!

    Nun ist e sverständlich.

    Also:

    Das Problem ist, daß du versucht irgendwelche PHP-Codes per eval auszuführen, diese aber syntaktisch falsch sind.

    1. die Fehlermeldung: In Zeile 19 steht das Wort "else" - eval() erkennt das als PHP-code und sucht nun, das Ende des vorhergehenden PHP-Codes, bekanntlich wird das durch ein Semikolon dargestellt. Das Zeichen ist aber nach dem vorhergehenden PHP-Code aus Zeile 14 (if...) nicht vorhanden und somit kommt es zur Fehlermeldung.

    2. Fehler in Zeile 14: <then> solch einen Tag gibt es nicht.
    3. Fehler in Zeile 17: </then> solch einen Tag gibt es dann logischerweise auch nicht.
    4. Fehler in Zeile 19: </else> solch einen Tag gibt es auch nicht
    5. Fehler in Zeile 19: </if> und solch einen Tag gibt es ebenfalls nicht.

    Du versuchst PHP-Codes ind HTML-Tagzeichen zu packen, das klappt aber so nicht.
    Deine "<then> .... </then>"-Konstruktion ist allerdings wirkungslos, da Browser das, was sie nicht kennen, nicht anzeigen. Das es auch keine PHP-Codes sind, ignoriert eval() es ebenfalls.

    das "</if>" hast du dir vermutlich aus dem Visual-Basic "endif" abgeleitet, oder ?

    Ich selbst halte von der eval()-Methode übrigens nichts, hätte das wohl eher mit join oder include, bzw. als HTML-Text in PHP gelöst.
    Aus dem Bauch heraus müßte der entsprechende Abschnitt aber eigentlich so aussehen, ich habe es ein wenig strukturiert, damit es logischer nachzuvollziehen ist:


    Code
    <p align="center">
    if($userdata['newpm']==1)>
      {
      [url='/message.php']Sie haben neue Nachrichten[/url]
      }
    else
      {
      <b style="color:#FFFFFF;">Keine neuen Nachrichten[/b]
      }
    </p>


    Wie du siehst fehlt hier aus das Semikolon, was m.E. aber richtig ist, da innerhalb der geschweiften Klammern kein PHP-Code steht, welcher durch das ";" abgeschlossen werden muß. Probiere es einfach aus.

    In der 42. Zeile hast du eine ähnliche Konstruktion, es kann sein, daß die jetzt als neue Fehlermeldung kommt.

    Noch ein Hinweis: "<font>" ist als deprecated gekennzeichnet und sollte künftig nicht mehr verwendet werden, Browser einer künftigen Generation werden es vermutlich nicht mehr interprätieren könen.
    Schriftformatierung macht man besser mit Stylesheets.

    G.a.d.M.

    Ronald