Ralf: Fehlermeldung nach neuinstallation

Hallo zusammen.

Ich habe eine Internetseite programmiert die auch seit mehreren Monaten auf unserem Server (Linux) ohne Probleme gelaufen ist.
Nun haben wir unseren Server komplett neu eingerichtet (von Suse 7.3 auf Suse 8.2) und nun bekomme ich folgende Fehlermeldung "Fatal error: Cannot redeclare set_doerror() in /intranet/php/mysqldb.php on line 125" wenn ich auf Seiten gehe die php enthalten.
Kann mir jemand einen Tip geben was ich vergessen haben könnte.
Ich habe apache, php und Mysql installiert und auch getestet.
Es scheint alles zu laufen bis auf diese Meldung.

Danke im vorraus.
Gruß Ralf

  1. Hallo Ralf,

    Nun haben wir unseren Server komplett neu eingerichtet (von Suse 7.3 auf Suse 8.2) und nun bekomme ich folgende Fehlermeldung "Fatal error: Cannot redeclare set_doerror() in /intranet/php/mysqldb.php on line 125" wenn ich auf Seiten gehe die php enthalten.
    Kann mir jemand einen Tip geben was ich vergessen haben könnte.

    Ich denke, die Datei /intranet/php/mysqldb.php wird zwei mal eingebunden. So sieht es zumindest aus. Die Fehlermeldung besagt nämlich, dass Du eine neue Funktion bereitstellen willst, deren Namen bereits existiert. Folgende PHP-Datei ruft die gleiche Fehlermeldung hervor:

    <?php

    function a ($hallo) {
      return false;
    }

    function a ($hallo, $tschuess) {
      return true;
    }

    ?>

    Oder alternativ:

    ------------------ a.php ------------------
    <?php
    include ('b.php');
    include ('b.php');
    ?>
    -------------------------------------------

    ------------------ b.php ------------------
    <?php
    function hallo () {
      return true;
    }
    ?>
    -------------------------------------------

    Letzteres wird bei Dir der Fall sein. Ein Tipp: Wenn Du statt include include_once verwendest, hast Du das Problem nicht.

    Viele Grüße,
    Christian

    1. Hallo Christian

      Danke für Deine Antwort.
      Was ich nur nicht verstehe ist das vor der Umstellung auf Suse 8.2 alles lief und ich seid dem nichts an der Seite geändert habe.
      Dennoch habe ich es nachgesehen und auch mal den Befel include_once verwendet, leider ohne Erfolg.
      Haste vieleicht noch ein Tip ?

      Gruß
      Ralf

      1. Hallo Ralf,

        Was ich nur nicht verstehe ist das vor der Umstellung auf Suse 8.2 alles lief und ich seid dem nichts an der Seite geändert habe.

        Hmmmm. Falsche Version einiger Dateien aufgespielt?

        Haste vieleicht noch ein Tip ?

        Durchsuche mal alle Dateien nach folgendem Inhalt: "function set_doerror"

        Also z.B. mit

        grep "function set_doerror" find /intranet/php -name "\*.php"

        Wenn es zwei mal auftaucht, dann siehst Du das Problem.

        Viele Grüße,
        Christian

        1. Hallo Christian,

          Super.
          Ich habs gefunden Du hattest recht es war zweimal die function vorhanden (warum auch immer ??).
          Jetzt funktionierts.

          Danke nochmals.

          Gruß
          Ralf