PHP leuft nicht richtig

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

  • PHP leuft nicht richtig

    Hi,
    ich hab mal wieder ein problem ich habe auf meiner seite die links folgendermasen eingestellt

    lnk.php4?act=news

    das problem ist wenn ich $act abfragen will mit if
    sagt er mir diesen fehler:

    Notice: Undefined variable: act in f:\...\lnk.php4 on line 8

    was soll ich da machen denn vorher als ich noch win me drauf hatte lief die seite jetzt aber mit win 2000 nicht mehr

  • #2
    weiss momentan nicht genau was es ist, aber es scheint , das du dir bei den fehlermeldungen alles anzeigen laesst.

    dann meckert er rum wenn man eine variable nicht initalisiert hat, bevor man sie benutzt.

    schau dir mal deine php-ini an.
    dort solltest du eine zeile finden die mit
    error_reporting beginnt.

    ich denke du hast dort
    error_reporting = E_ALL

    aender das in :

    error_reporting = E_ALL & ~E_NOTICE

    dann sollten die fehlermeldungen bei nicht initalisierten variablen der vergangenheit angehoeren.

    oder initalisiere einfahc deine variblen bevor du sie benutzt.

    mfg
    kapitaeniglo

    Kommentar


    • #3
      Wahrscheinlich weil in der php.ini jetzt register_globals auf off steht ... wurde aber bereits mehrfach diskutiert ... !

      PS.: leuft kommt von laufen und wird deshalb mit ä geschrieben (läuft)!
      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


      • #4
        @kapitaeniglo: Ja genau ... wir stecken den Kopf in den Sand und warten ab was passiert ... !

        Im Allgemeinen machen Fehlermeldungen Sinn ... und deshalb sollte man so wenig wie möglich davon abschalten ... zumal auf 'nen Testsystem!
        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


        • #5
          also ich denke ncith das dies an register_globals liegt, obwohl .......


          also ich habe bei mir auch nen Testsystem und da laeuft es das es mir alle fehlermeldungen anzeigt, nur kenne ich momentan keinen fuer mich bezahlbaren provider der die einstellungen so hat das man auch so programmieren muesste. Natuerlich gehoert es zum guten Programmierstil so zu programmieren.

          ich kam nur auf das mit den fehlermeldungen, da ich ziemlich erschrocken war als ich auf meinem testsytem meine skripte zum ersten mal laufen lies. und da lag es daran das die variablen nicht initalisiert wurden.

          Kommentar


          • #6
            Ja ... aber deshalb hat man auf 'nen Testsystem nunmal alle Fehler und Warnings an ... damit man sauber Programmieren kann.

            Ein vernünftiger Provider wird sein Server-System schon so konfigurieren das keine Warnings kommen ... sonst gibt's zuviele Supportanfragen ...
            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


            • #7
              stimmt :

              also nun meine geanederte stellungsnahme:

              INITIALISIERE deine Variablen bevor du sie benutzt.

              $var= ''; waere z.b. eine initialisierung !

              Kommentar


              • #8
                also danke das ihr mir alle helfen versucht und ich finde es auch gut das mich goth auf den fehler aufmerksamm gemacht hat jetzt im ernzt.

                ich schreib euch mal auf wie die dateien aussehen.

                So sieht die lnk.php4 aus
                PHP-Code:

                <?
                if($act == "start") {
                        echo "Hallo";
                }
                if($act == "news") {
                        echo "news";
                }
                ?>
                und ich will jetzt zumbeispiel auf news zugreifen

                da schreibe ich

                lnk.php4?act=news

                und dann kommt der fehler ich hab doch act initialisirt mit der URL

                was ist da falsch??

                Kommentar


                • #9
                  Ja ... das ist aber genau das worauf ich Dich aufmerksam machen wollte: In den neueren PHP-Versionen wird der Konfigurations-Parameter "register_globals" per default auf "off" gestellt. Das hat sicherheittechnische Gründe und aus diesem Grunde sollte man entweder das Array $HTTP_GET_VARS oder das Superglobal $_GET verwenden um Parameter einer GET-Request abzufragen. Außerdem würde ich Dein Codebeispiel etwas anders formulieren.

                  Entweder:
                  PHP-Code:
                  if ( $_GET["act"]=="start" ) {
                      echo 
                  "Hallo";
                  } else if ( 
                  $_GET["act"]=="news" ) {
                      echo 
                  "news";

                  oder:
                  PHP-Code:
                  switch ( $_GET["act"] ) {
                      case 
                  "start":
                          echo 
                  "Hallo";
                          break;
                      case 
                  "news":
                          echo 
                  "news";
                          break;

                  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


                  • #10
                    switch ( $_GET["act"] ) {
                    case "start":
                    echo "Hallo";
                    break;
                    case "news":
                    echo "news";
                    break;
                    }


                    also danke erstmal aber wenn man sprung befehle anwendet dan ist das nicht mehr sauber programmiert!

                    Kann man das den nicht anders lösen??

                    Kommentar


                    • #11
                      wo sind da Sprungbefehle ???

                      Kommentar


                      • #12
                        sorry dein beispiel war doch gold richtig
                        jetzt aber ne andere frage was heist

                        Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in f:\internet\bau\forum\index.php4 on line 48

                        Kommentar


                        • #13
                          jungs ihr seit einfach nur gut ich hab mir den code angeguckt 1. ich versteh denn und zweitens der funzt

                          Kommentar

                          Lädt...
                          X