Roger: unsupported operand types

hallo zusammen!

ich habe ein problem:
und zwar kommt ab und zu mal (nicht immer!) bei einem skriptaufruf immer folgender fehler:

unsupported operand types in [scriptname] on line 219

mir ist diese fehlermeldung noch nicht untergekommen, jedoch anhand von screenshot ist er mittlerweile nachgewiesen worde ;)

hier ein kurzer auszug:
217: if($lieferart == "nachnahme"){$nachnahme_2 = $nachnahme;} else {$nachnahme_2 = 0;}
218: if ($eckenrunden == "ja") {$eckenrunden_summe = ceil($produktmenge / 1000) * 5;} else {$eckenrunden_summe = 0;}
219: $gesamt = $produktpreis + $portokosten + $eckenrunden_summe + $nachnahme_2;

sollte ich irgendwelche variablen missbrauchen, oder mache ich einen anderweitigen fehler?
wann kommt so eine fehlermeldung?

danke für eure antworten!

  1. Hi!

    Wie der Fehler an sich schon sagt hat das irgendetwas mit den Typen der Variablen zu tun.
    Wenn du in der letzten Zeile Strings aneinander fügen möchtest, solltest du immer statt dem + den . verwenden:

    $gesamt = $produktpreis.$portokosten.$eckenrunden_summe.$nachnahme_2;

    Umgekehrt kann es sein dass du manchmal irgendwo einen String drin hast und deswegen die Addition nicht mehr klappt.

    Ich hoffe ich liege nicht so ganz falsch! ;-)

    Viel Glück!

    Marc Reichelt || http://www.marcreichelt.de/

    --
    tel.: 0049/6181/72224
    fax.: 0049/6181/740724
    Linux is like a wigmam - no windows, no gates and an Apache inside!!!
    1. Hi!

      sorry, aber die angegebene gleichung ist eben eine formel, die variablen zusammenrechnet.
      die ersten beiden werden aus sessionvariablen gelesen und die anderen beiden (wie zwei zeilen darüber) berechnet. allerdings wird nirgends wo ein string verwendet.

      was mich eben am meisten stört ist, dass dieser fehler immer nur vereinzelt auftritt!

      r.

      1. Hi wieder!

        Dann versuchs doch mal mit der Debugging-Methode:
        Du schreibst vor deiner Zeile mit dem Fehler einen Abschnitt rein, der alle Variablen, die in dieser Zeile vorkommen, ausgibt (wenn möglich auch gleich mit dem Typ dahinter).

        Dann siehst du, wo dein Fehler steckt!

        cu

        Marc Reichelt || http://www.marcreichelt.de/

        --
        tel.: 0049/6181/72224
        fax.: 0049/6181/740724
        Linux is like a wigmam - no windows, no gates and an Apache inside!!!