IF...ELSEIF...ELSE...ENDIF funktioniert nicht

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hey RasPi Junks,

    ich versuche gerade meine BabyCam DCS-825L in mein Webfront zu integrieren.
    Dazu benutze ich ein PHP zum auslesen der Datei notify.cgi.
    Soweit funktioniert auch alles, bis auf das ändern der Schriftfarbe von der Temperaturausgabe.
    Es gibt 3 Zustände:

    cold //Farbe:blau
    normal //Farbe:grün
    hot //Farbe:rot

    Mein Script sieht wie folgt aus:

    Bis jetzt bekommen ich immer ERROR angezeigt.
    Ich habe auch schon verschiedene andere Varianten ausprobiert.
    Doch immer wieder wird ein Fehler generiert.
    Andere ähnliche Abfragen habe ich auch hinbekommen.
    Bei dieser finde ich einfach den Fehler nicht. Wer kann mir da helfen?

    Vielen Dank

  • Das habe ich. Einmal mit print_r() und einmal mit echo. Darüber konnte ich ja auch erst die Arrays bestimmen.
    Die anderen Variablen geben vorher genau die gewollten Werte aus.
    Ich habe auch schon Variablen umgeschrieben und als reinen Text versucht auszuwerten.
    Nichts.
    Spätestens hier hätte etwas ausgewertet werden müssen.

  • Ahhh Moment mal...ich habe gerade mal alle Variablen mit var_dump ausgeben lassen und bei der Variable $td steht:

    string(7) "normal "

    Sehr wahrscheinlich stellt das Leerzeichen ein Problem da :)

    notify.cgi

    td ist thermal detection
    md ist motion detection
    tpC Temperatur in Celsius
    tpF Temperatur in Fahrenheit

  • Laut dem hier

    http://php.net/manual/de/control-structures.elseif.php

    ist else if nur mit geschwungener Klammer erlaubt, bzw. überhaupt nicht erlaubt.

    ^^

  • ok, mir war die Schreibweise mit den Doppelpunkten nicht bekannt, darum die "korrigierte" Syntax. (abgesehen davon wäre es mit switch statt den ganzen elseif auch schöner ;))

    Aber nochmal zum Problem, Zeilenumbruch oder Leerzeichen könntest du mit trim() beseitigen:

    $td = trim($tdarr[1]);


  • ok, mir war die Schreibweise mit den Doppelpunkten nicht bekannt, darum die "korrigierte" Syntax. (abgesehen davon wäre es mit switch statt den ganzen elseif auch schöner ;))

    Aber nochmal zum Problem, Zeilenumbruch oder Leerzeichen könntest du mit trim() beseitigen:

    $td = trim($tdarr[1]);

    Ich kannte es mit dem Doppelpunkt so auch nicht und es kurz vor dem Post hier ausprobiert.
    Mittlerweile habe ich alle Varianten ausprobier(glaube ich). ^^

    Ja cool danke. Das werde ich jetzt direkt mal testen.

    Vielleicht bekomme ich dann wenigstens irgendwas zu sehen außer "ERROR". :)

    Mittlerweile bekomme ich überhaupt keine Ausgabe mehr. Noch nicht mal mit var_dump...:-(

    Boah verdammt...ich hab es!!!

    Es lag wirklich am Leerzeichen und durch trim wurde es entfernt.

    Vielen Dank BennY für Deinen Tipp. Trim war mir zwar als Befehl bekannt. Nur kannte ich seine Funktion noch nicht.

    BOMBE...Ich freu mich wie Bolle!!! :D

    Einmal editiert, zuletzt von JenselBensel (28. Dezember 2014 um 00:06)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!