Undefined variable, undefined constant, ...

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

  • Undefined variable, undefined constant, ...

    Hallo zusammen,

    ich hoffe nur, dass ich mit meinem Problem hier richtig bin...

    Und zwar bekomme ich folgende Arten von Meldungen beim Aufrufen mehrerer Scripte:

    Notice: Use of undefined constant ho - assumed 'ho' in c:\inetpub\wwwroot\... usw.

    Notice: Undefined index: welcomenews in c:\inetpub\wwwroot\... usw.

    Notice: Undefined variable: pagetitel in c:\inetpub\wwwroot\... usw.


    Die Scripte sind wohlgemerkt nicht von mir selber. Und wie gesagt, es ist nicht nur bei einem.

    In der php.ini habe ich bereits die register_globals auf ON gesetzt. Das Error-Reporting habe ich runtergestuft. Die Meldungen sind danach zwar weg, aber wie ich bereits gelesen habe "verdeckt" das ja das eigentliche Problem nur. Außerdem arbeiten die Scripte zum Teil trotzdem nicht.

    Normalerweise müsste ich die Scripte so umschreiben, dass die Meldungen nicht mehr auftauchen. Nur erstens hab ich noch nicht das ausreichende Wissen (also Programmierkenntnisse), um es umzuschreiben, und zweitens liefen die selben Scripte mit der selben PHP-Version auch in einer anderen Umgebung. Ich komme nur leider nicht mehr an die php.ini ran und habe nicht mehr die Möglichkeit die ini mit meiner zu vergleichen. Gibt es denn noch andere Einstellungen in der ini die das beheben bzw. umgehen könnten?

    Meine Umgebung:
    Windows XP Pro., IIS 5, PHP 4.3.4, MySQL 4.0.25

    Ich hatte schon diverse andere PHP Versionen vorher installiert und extra die 4.3.4, weil die wie gesagt in der anderen Umgebung auch installiert war und es dort ja auch funktionierte. Der Unterschied ist, dass dort der IIS 6 installiert war und eine andere MySQL Version, aber daran kann es doch eigentlich nicht liegen, oder?

    Ich weiß, dass das Problem nicht neu ist und habe auch schon mehrere Stunden in Google zugebracht. Aber vielleicht kann mir trotzdem jemand helfen.

    Ich sag schon mal Danke!

    Grüße
    Alex.

  • #2
    Wie wir wissen, muss man variablen (u. Konstanten) zuerst definieren, bevor man sie benutzen will.

    willst du also

    PHP-Code:
    echo $name
    ausführen, wird dieser code so lange nichts ausgeben, bis du z.B. in der Zeile davor $name definierst, also

    PHP-Code:
    $name 'TobiaZ'
    Gleiches gilt für die konstanten.

    Die Scripte sind also sehr unsauber Programmiert und der Programmierer hatte offensichtlich nicht die Ahnung. Hilft eigentlich nur umschreiben.

    wenns error-reporting zurückgestuft wurde, sollte es aber auch so lauffähig sein, denn das war es beim programmierer vermutlich auch.

    mich wundert, dass du zu diesem Thema noch keine Beiträge im Forum gefunden hast!

    Kommentar


    • #3
      PHP-Code:
      echo $arr_data[test]; 
      Gibt den Fehler aus mit undefined constant - die konstante test ist nicht definiert, also denkt (eig. eng. 'assume' = 'vermuten') php dass du 'test' meinst - einen String. Gibt daher auch die Notice aus.
      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
      var_dump(), print_r(), debug_backtrace und echo.
      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

      Kommentar


      • #4
        wenn ich ehrlich sein soll, dann sagt mir das alles recht wenig wobei ich das mit der variable mal kurz ausprobiert habe und es hatte sogar funktioniert. jedenfalls denke ich das. die notice ist zumindest nicht mehr erschienen, aber ich bin mir nicht sicher, mit was ich die variablen definieren muss. ich hatte einfach irgendwas eingetragen... wie muss ich denn die variablen definieren? ihr seht sicher, ich hab leider nicht wirklich ahnung davon und hätte vollstes verständis dafür, wenn ich keinen bock habt, auf so doofe fragen zu antworten

        ich hatte zwar andere forenbeiträge gefunden, hoffte aber, dass es eine lösung gäbe ohne die scripte umzuschreiben, weil sie ja mit der selben version woanders liefen... naja...

        habt ihr mir vielleicht einen tipp, welche seite gut ist, um mit php ganz von vorne mal anzufangen, also für absolute noobs wie mich?

        Kommentar


        • #5
          gut, dass du danach fragst. am besten gehst du schattenbaum.net! Denn Grundlagen erklären wir hier wirklich nicht...
          Zuletzt geändert von TobiaZ; 24.07.2005, 15:49.

          Kommentar


          • #6
            gern.

            www.php.net (!)
            www.schattenbaum.net
            www.php-faq.de
            http://tut.php-q.net
            weil sie ja mit der selben version woanders liefen
            ist kein argument, sondern unterschiede in der konfiguration (ob jetzt register_globals, oder error_reporting).

            übrigens, wenn es nicht dein script ist, sondern ein gratis-script, würde ich mir gedanken drum machen, ob die qualität dieser anwendung nicht doch eher unterdurchschnittlich ist.

            Kommentar


            • #7
              bin zwar en it-se, aber ich denke ich weiß auch wie nervig es ist, wenn man nur noobs um sich rum hat deshalb hab ich auch gefragt...

              also, vielen dank!

              grüße
              alex.


              an penizillin: habe deinen beitrag eben erst gesehen beim schreiben wegen den argumenten: das es dann an der unterschiedlichen konfiguration liegen kann ist mir schon klar. aber error-reporting und register_globals hatte ich oben bereits ausgeschlossen. deswegen hatte ich hier ja gepostet, ob es evtl. noch andere einstellungsmöglichkeiten in der php.ini gibt, die dafür verantwortlich sein könnten...

              Kommentar


              • #8
                Original geschrieben von AlexM
                aber error-reporting und register_globals hatte ich oben bereits ausgeschlossen.
                dann hast du falsch geschlossen.

                dafür, dass bei undefinierten konstanten keine warnung geschmissen wird, ist error_reporting verantwortlich.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  ???

                  es geht ja auch nicht darum, dass keine meldungen geschmissen werden. Außerdem ist das herunterstufen des error_reporting ja nicht wirklich die lösung... wie ich gemerkt habe, arbeiten die scripte zum teil nicht richtig... ist ja auch nicht weiter wunderlich...

                  Kommentar


                  • #10
                    dafür, dass bei undefinierten konstanten keine warnung geschmissen wird, ist error_reporting verantwortlich.
                    Jein, eigentlich ist ein unsauber programmiertes Script dafür verantwortlich. error_reporting auf E_ALL gesetzt, ist dafür verantwortlich, dass dies auch angezeigt wird.

                    Gruß
                    Uwe

                    Kommentar

                    Lädt...
                    X