Script funktioniert nicht mehr

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

  • Script funktioniert nicht mehr

    Hallo,

    meine Homepage wurde auf einen neuen Server transferiert und seit dem funktioniert mein Script zum anzeigen von Übungsleitern nicht mehr richtig.

    Es wird immer nur die Hauptseite angezeigt.

    Ich habe das Script mal angehängt. Vielleicht weiß ja einer woran das liegt.

    Mfg
    Md
    Angehängte Dateien

  • #2
    (Ohne reingeschaut zu haben - ) vermutlich register_globals=off, zum x-ten.

    Informiere dich über das Stichwort.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ja da hast du wohl recht, habe mich jetzt informiert, dass Variabel nicht mehr so übergeben werden können. Habe jetzt aber noch nichts gefunden wie das jetzt gehen soll bei meinem Script..

      Ich programiere nciht so häufig und bin daher darin nicht so fit...

      Kann mir einer bei meinem script weiterhelfen?

      Also ich lese aus der Datenbank eine Zahl aus und die soll an die Variabel "site" weiter gegeben werden und dann per Link die Seite entsprechend der Variabel aufgebaut werden.

      Kommentar


      • #4
        Hallo,

        auf PHP: Beschreibung der php.ini-Direktiven des Sprachkerns - Manual steht "Bitte lesen Sie auch das Sicherheits-Kapitel über die Benutzung von register_globals für weitere Informationen."

        Dort steht "Seit PHP 4.1.0 stehen superglobale Arrays wie $_GET, $_POST, $_SERVER, etc. zur Verfügung. Weitere Informationen können Sie dem Abschnitt zu superglobals entnehmen."

        Wo ist also das Problem? Etwas mehr Eigeninitiative wäre schön, wenn dir schon jemand das exakte Stichwort zur Lösung des Problems liefert.

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Also das Problem ist ja wohl, das eine Variable nicht mehr an die nächste Seite übergeben wird.

          Bei mir soll das über einen Link geschehen:

          <a href="ueleiter.php?site=<?=$line[id]?>">

          Dann wird im Script über eine If-Abfrage geprüft welchen Wert $site hat, aber durch den Link wird die neue zuweisung der Variable nciht gemacht.

          Wie schaffe ich das jetzt über den Link?

          Bei php.com habe ich nur Beispiele für Formulare bekommen.

          Gruß
          Md

          Kommentar


          • #6
            URL-Parameter landen im $_GET-Array, also in deinem Falle $_GET["site"].
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              ich habe jetzt vor meine SQL Abfrage folgendes gesetzt:

              PHP-Code:
              if(!isset($site))
              {
                $site="index";
              }
              if($site == index)
              {
              Anzeige der Übersicht mit Links: <a href="ueleiter.php?site=<?=$line[id]?>">
              }
              else
              {
              $site = $_GET["site"];
              $query = "SELECT * FROM ueleiter WHERE id=$site";
              $result = mysql_query($query);
              while ($line = mysql_fetch_array($result))
              {
              ...
              ...
              Aber er zeigt immer nur noch die "index" Seite an.

              Kommentar


              • #8
                Sieh dir die ersten vier Zeilen an. Dort wird index schon als Fallback gesetzt.

                Übrigens: SQL Injection, mysql_real_escape_string sind Stichworte, mit denen du dich auseinandersetzen solltest.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Zitat von AmicaNoctis Beitrag anzeigen
                  Sieh dir die ersten vier Zeilen an. Dort wird index schon als Fallback gesetzt.

                  Übrigens: SQL Injection, mysql_real_escape_string sind Stichworte, mit denen du dich auseinandersetzen solltest.
                  Ja das Fallback mache ich ja, damit die Seite auf jedenfall was anzeigt; wie schreibe ich das denn jetzt um, dass mein Script wieder funktioniert?

                  Die Stichworte werden ich mir mal durchlesen.

                  Kommentar


                  • #10
                    Wie oft noch? Du sollst $_GET["site"] statt $site verwenden. $site wird doch nirgends deklariert, außer wenn register_globals gesetzt ist, dann wird es "automagisch" deklariert, aber die Zeiten sind halt vorbei, weil man damit bösen Schabernack machen konnte.
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #11
                      ok, das ist natürlich eine große Sicherheitslücke...das übersteigt jetzt recht schnell meine Zeit und Muse.

                      Kommentar


                      • #12
                        Zitat von Murderdeath Beitrag anzeigen
                        das übersteigt jetzt recht schnell meine Zeit und Muse.
                        Warum? Suchen und Ersetzen.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          Wenn ich also in der Query abfrage statt:

                          PHP-Code:
                          $query "SELECT * FROM ueleiter WHERE id=$site"
                          PHP-Code:
                          $query "SELECT * FROM ueleiter WHERE id=$_GET['site']"
                          schreibe bekomme ich nur eine Fehlermeldung:

                          Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /ueleiter.php on line 131

                          Ich bin halt nicht mehr so in der Materie drin.

                          Kommentar


                          • #14
                            Zitat von Murderdeath Beitrag anzeigen
                            PHP-Code:
                            $query "SELECT * FROM ueleiter WHERE id=$_GET['site']"
                            Man benutzt keine Variablen in Zeichenketten.

                            PHP-Code:
                            $query "SELECT * FROM ueleiter WHERE id='"
                                
                            mysql_real_escape_string($_GET['site'])
                                . 
                            "'"
                            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                            Super, danke!
                            [/COLOR]

                            Kommentar


                            • #15
                              Zitat von AmicaNoctis Beitrag anzeigen
                              Man benutzt keine Variablen in Zeichenketten.

                              PHP-Code:
                              $query "SELECT * FROM ueleiter WHERE id='"
                                  
                              mysql_real_escape_string($_GET['site'])
                                  . 
                              "'"
                              Ja das habe ich jetzt gemacht, aber ich sehe immer nur noch die Indexseite?

                              muss ich noch was ändern?

                              Ich habe das Script nochmal angehängt.
                              Angehängte Dateien

                              Kommentar

                              Lädt...
                              X