Ankündigung

Einklappen
Keine Ankündigung bisher.

Konstante teilweise mit $_GET ausgeben

Einklappen

Neue Werbung 2019

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

  • Konstante teilweise mit $_GET ausgeben

    Guten Morgen!

    1) Für eine Bildergalerie habe ich die Bildbeschreibungen in einer externen Datei definiert:
    PHP-Code:
    <?php define('GAL01_01' 'Mein Beschreibung fuer das Bild No. 01'); ?>
    2) Die Datei mit den Konstanten (sh. 1) habe ich wie folgt eingebunden:
    PHP-Code:
    <?php include("includes/define.inc.php"); ?>
    3) Die Bilder werden wie folgt ausgegeben:
    PHP-Code:
    <img src="<?php echo 'gallery01/sl/' $_GET[gal01] . '.jpg'?>">
    4) Jetzt soll die Beschreibung mittels der Konstante eingefügt werden. An Konstante soll die Variable $_GET[gal01] (XX) angehängt werden, damit für Bild No 02 eine andere Beschreibung geladen wird:
    PHP-Code:
    <?php echo GAL01_(XX); ?>
    die Variable gal ist in diesem Beispiel gleich 01

    Meine Frage, kann man eine Konstante überhaupt teilweise mit $_GET ausgeben? Wenn ja, wie bekomme ich das hin? Ein wenig "herum gebastelt" habe ich schon, aber leider war alles bisher nicht zu gebrauchen und endete mit Fehlermeldungen

    Sowas hätte ich gerne PHP konform umgesetzt
    PHP-Code:
    <?php echo GAL01_$_GET[gal01]; ?>
    Dieser Beitrag hat mir leider nicht weiter geholfen.


    Beste Grüße &
    Vielen Dank für die Hilfe

  • #2
    1. Das ist falsch müsste so aussehen:
    PHP-Code:
    <img src="<?php echo 'gallery01/sl/' GAL01_01 '.jpg'?>">
    2. im $_GET[] - Array musst du die Indexe als Strings angeben sonst gibts ne Notice

    3. Man möge mir die Finger abhacken:
    PHP-Code:
    eval('$imageDesc = GAL01_' $_GET['XX'] . ';'); 
    Ist ungetestet!
    Dann steht im $imageDesc dein Wert aus der Konstante GAL01_$_GET['XX']
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    Kommentar


    • #3
      Und schon abgehackt.

      [MAN]constant[/MAN]
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar


      • #4
        Hmm mit const ist es einfacher... Wobei meine Variante auch gehen sollte, aber halt mit der Teufelsfunktion!!! Muhahahaha
        "My software never has bugs, it just develops random features."
        "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

        Kommentar


        • #5
          Also einen GET-Parameter direkt in ein eval einzubauen ist wirklich mal ein Paradebeispiel dafür, dass eval ne ganz dumme Kiste ist.

          example.com?XX=1;exec(yourEvilSystemCommandHere)
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar


          • #6
            achte auf sicherheitslücken in dem beispielcode, hoffe das wird vorher getestet
            es gibt auch sowas wie $$ ob das mit konstanten funktioniert kann ich nicht genau sagen :-/
            Under Construktion

            Kommentar


            • #7
              Nö. $ ist immer Variablen vorbehalten
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Ich hab ja auch nicht behauptet dass es sicher ist!
                Ich habe nur anhand seines Codebeispieles einfach was auf die schnelle zusammengehauen, was funktionieren sollte, wenn die Daten alle korrekt sind.

                hab ja auch geschrieben, dass das nicht getestet wurde!
                "My software never has bugs, it just develops random features."
                "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                Kommentar


                • #9
                  Was du da machen möchtest Widerspricht sich doch schon im Namen. "Konstante" das heißt wir wollen hier nix dynamisch zusammen bauen oder sonst wie. Verwende Arrays wie es sich gehört dann bekommste auch keine Probleme.

                  Kommentar


                  • #10
                    Ich hab ja auch nicht behauptet dass es sicher ist!
                    Ich habe nur anhand seines Codebeispieles einfach was auf die schnelle zusammengehauen, was funktionieren sollte, wenn die Daten alle korrekt sind.
                    Die Frage ist, was das für einen Effekt in einem Forum hat, in dem Anfänger mitlesen (oder sogar die Frage gestellt haben). Denkst Du, da wird jetzt groß über die Sicherheit reflektiert, wenn das Beispiel denn läuft? Ich denke nicht.

                    Wie streicht man am besten die Fensterrahmen von außen?
                    Du könntest Dich draußen aufs Fensterbrett stellen und Dich mit nem Gürtel im Fensterkreuz festmachen...
                    Ich hab ja auch nicht behauptet dass es sicher ist!
                    [COLOR="#F5F5FF"]--[/COLOR]
                    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                    [COLOR="#F5F5FF"]
                    --[/COLOR]

                    Kommentar


                    • #11
                      Da hast du Recht,
                      aber dann kann man ja auch den ganzen Code kommplett neu schreiben...
                      "My software never has bugs, it just develops random features."
                      "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                      Kommentar


                      • #12
                        Vielen Dank für die vielen Antworten... in so kurzer Zeit!

                        @Paul.Schramenko
                        Wenn ich
                        PHP-Code:
                        <img src="<?php echo 'gallery01/sl/' $_GET[gal01] . '.jpg'?>">
                        durch
                        PHP-Code:
                        <img src="<?php echo 'gallery01/sl/' GAL01_01 '.jpg'?>">
                        ersetze, wird nicht mehr die Variable (01) eingesetzt, sondern die Beschreibung von GAL01_01. Dadurch wird ein falscher Name für das Bild generiert. In meinen Tests machte die Zeile auch keine Probleme und es wird immer das geplante Bild angezeigt. Deswegen hoffe ich, mein Zeile ist richtig und kein Zufall

                        ---

                        Mich beschleicht das Gefühl, dass ich meine Frage anders formulieren sollte, um mein Anliegen besser klar zustellen. Ich habe den Namen der Konstanten geändert, damit es im Beispiel deutlicher ist (GAL01 ist jetzt == BILDBESCHREIBUNG).

                        Vielleicht beschreibt diese Frage mein Anliegen verständlicher?
                        Ist es möglich bei der Ausgabe des Namens einer Konstanten eine Variable anzuhängen?

                        Der Name der Konstanten lautet:
                        PHP-Code:
                        BILDBESCHREIBUNG_01
                        BILDBESCHREIBUNG_02 
                        usw

                        PHP-Code:
                        echo BILDBESCHREIBUNG_XX 
                        XX soll durch die Variable $gal01 ersetzt werden, in diesem Falle lautet sie 01

                        Falls mein Vorhaben üblicher Weise anders gelöst wird, wäre ich um einen Hinweis dankbar. Bin selbst eher blutiger Anfänger und kenne deswegen noch nicht alle Möglichkeiten

                        Vielen Dank!

                        Kommentar


                        • #13
                          Das wurde bereits beantwortet.
                          [COLOR="#F5F5FF"]--[/COLOR]
                          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                          [COLOR="#F5F5FF"]
                          --[/COLOR]

                          Kommentar


                          • #14
                            Warum Konstanten??? Wieso keine Arrays verdammt? Die sind EXAKT dafür gedacht was du machen möchtest! Verwende doch keine Hilfsmittel die für ganz andere Dinge gedacht sind!!!

                            Kommentar


                            • #15
                              Vermutlich, weil sie global sind
                              [COLOR="#F5F5FF"]--[/COLOR]
                              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                              [COLOR="#F5F5FF"]
                              --[/COLOR]

                              Kommentar

                              Lädt...
                              X