Möglichkeiten bei "cannot redeclare"

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Möglichkeiten bei "cannot redeclare"

    Fatal error: Cannot redeclare connect() in xxx on line xxx

    solche fehler treten auf, wenn

    1. die funktion doppelt vorhanden ist.
    2. mehrere funktionen mit gleichem namen existieren.

    wann noch?

    finde den fehler bei mir nämlich nicht.
    Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

  • #2
    Das sind die beiden Gründe ... eigentlich ist's nur einer ... wie sieht der Quellcode aus ... ? ... wird die Funktion eventuell in einer Schleife deklariert?? ... hatten wir alles schon ... !
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      hab die software gerade eben nochmal bei mir lokal getestet.
      siehe da, es funktioniert problemlos.

      allerdings ist meine lokale php version ein wenig älter: Ver. 4.1.1
      auf dem webserver: Ver. 4.1.2

      was hat sich denn da so wichtiges geändert?
      Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

      Kommentar


      • #4
        http://www.php3.de/ChangeLog-4.php
        Version 4.1.2 - 27-Feb-2002
        Fixed start up failure when mm save handler is used and there is multiple SAPIs are working at the same time. (Yasuo)
        Fixed the Roxen SAPI (Yasuo)
        Fixed a buffer overflow in the RFC-1867 file upload code (Stefan)
        Fixed a crash in the session module (Yasuo)
        Fixed a crash in the pspell module (Yasuo)
        Changed the default output encoding of mbstring 'pass' to fix initialization problem (Rui)
        also eigentlich nix weltbewegendes.

        Vielleicht hat dein Provider aber eine Library installiert, die du nicht hast.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          nee, nix library


          argh

          ich dreh hier noch gleich durch. hab eben mal mit meinem provider telefoniert, außer "open_basedir" wurde in der letzten zeit nichts am server geändert.

          ich geh jetzt erst mal sport machen, sonst dreh ich hier noch durch
          Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

          Kommentar


          • #6
            Vielleicht ne Datei 2x includet ?
            Probier mal mit function_exists() beim Deklarieren aus, ob die Funktion schon existiert.
            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

            © Harald Schmidt

            Kommentar


            • #7
              zu Hause läuft´s ja ... über welche Funktion meckert er denn?
              und btw: gibt´s den gleichen Fehler nicht auch mit Konstanten (define ...)?!?
              mein Sport: mein Frühstück: meine Arbeit:

              Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

              Kommentar


              • #8
                Im Zweifel würde ich mal schauen ob's nicht sinnvoll sein könnte require() gegen require_once() bzw. include() gegen include_once() zu tauchen ... !
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar


                • #9
                  UNGLAUBLICH

                  ich hab die lösung, allerdings ist das alles sehr sehr merkwürdig.

                  PHP-Code:
                  >> ausschnitt aus der "problem-datei" <<

                  include(
                  "../../includes/config.inc.php");
                  include(
                  "../../includes/functions.inc.php");
                  include(
                  "includes/config.inc.php");
                  include(
                  "includes/functions.inc.php");
                  connect(); 
                  als fehler wurde der oben genannte redeclare error ausgegeben.
                  dann hab ich die letzten stunden rumgetüftelt und verzweifelt versucht, den fehler zu finden.
                  nochmal überlegt, "seit wann ist der fehler vorhanden?" - > aha, seint der "open_basedir" Änderung.

                  da das ganze bei mir lokal ohne "open_basedir" beschränkung funzt, liefen meine vermutungen auf ein problem mit der includierung von files hinaus.

                  spaßeshalber hab ich dann zwei files umbenannt (siehe unten), da mir die ähnlichkeit mit den dateinamen aufgefallen war.

                  PHP-Code:
                  >> neuer code <<

                  include(
                  "../../includes/config.inc.php");
                  include(
                  "../../includes/functions.inc.php");
                  include(
                  "includes/config2.inc.php");
                  include(
                  "includes/functions2.inc.php");
                  connect(); 
                  also einfach eine 2 an die beiden dateinamen angehängt, noch schnell per ftp umbenannt und ob ihr es nun glaubt, oder nicht

                  es geht !!


                  bin ich nun bescheuert oder woran liegt das ganze ?!
                  Zuletzt geändert von TheUser; 03.07.2002, 21:18.
                  Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

                  Kommentar


                  • #10
                    In dem Falle ganz einfach:

                    include("../../includes/config.inc.php");
                    include("../../includes/functions.inc.php");

                    und

                    include("includes/config.inc.php");
                    include("includes/functions.inc.php");

                    sind die gleichen Dateien, wenn das Aufgerufene Script in Deinem Basedir liegt ... dann geht er 2 Verzeichnisebenen zurück ... diese Ebenen gibt es aber nicht ... und von dem (nicht gewechselten) Verzeichnis aus geht er nach includes ...

                    Unter Linux kannst Du das Verhalten testen indem du ins Root-Verzeichnis gehst ... dir eine Datei im /tmp aussuchst und sie dann mit 'nen Editor (joe) öffnest indem du ../../tmp/irgendeine.txt verwendest ...
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      liegt aber nicht im basedir, sondern zwei verzeichnisse tiefer.

                      allerdings ist mir der open_basedir wert in der php.ini vom webserver aufgefallen.

                      "/www/htdocs/verzeichnis/:/tmp"

                      haben die das so richtig konfiguriert?

                      bin leider nicht sooo der php.ini profi
                      Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

                      Kommentar

                      Lädt...
                      X