.MB: PHP $_GET: Array / Kein Array

nabend,

ich hab so ein Problem mit $_GET.

if( isset( $_GET[ "name" ] )) {
  $name = $_GET[ "name" ];
}

mein Problem ist das dieses $_GET scheinbar manchmal als Array und manchmal als einzelner Wert auftaucht. Ich hab das herausgefunden weil ich mal zwei werte übergeben will. Der eine aus einer anderen Klasse, der andere aus dieser Klasse mit der ich jetzt operiere.

Mein kleines Projekt is zu gewachsen dass ich mich nicht traue ihn hier zu posten weil es dann zuviel wird.

N Tipp wie man das anders löseen kann?

Grüße MB

  1. Hallo,

    ich hab so ein Problem mit $_GET.

    if( isset( $_GET[ "name" ] )) {
      $name = $_GET[ "name" ];
    }
    

    was immer dieses Problem sein mag - der Code-Ausschnitt, den du da zeigst, ist irgendwie sinnlos. Er führt dazu, dass $name eine exakte Kopie von $_GET['name'] ist, aber nur dann, wenn $_GET['name'] auch tatsächlich existiert.

    mein Problem ist das dieses $_GET scheinbar manchmal als Array und manchmal als einzelner Wert auftaucht.

    Nanu? Das solltest du bitte etwas genauer ausführen. Ich bin nämlich ziemlich sicher, dass dieser Eindruck aus einem Missverständnis resultiert. Denn solange du $_GET nicht komplett überschreibst, ist es immer ein Array. Okay, es kann leer sein, aber es ist formal immer noch ein Array.

    Ich hab das herausgefunden weil ich mal zwei werte übergeben will. Der eine aus einer anderen Klasse, der andere aus dieser Klasse mit der ich jetzt operiere.

    Ähm ... wie bitte?

    N Tipp wie man das anders löseen kann?

    Mehr Info, bitte. Das, was du bisher verraten hast, genügt noch nicht zum Verstehen.

    So long,
     Martin

    1. nabend Martin,

      Nanu? Das solltest du bitte etwas genauer ausführen. Ich bin nämlich ziemlich sicher, dass dieser Eindruck aus einem Missverständnis resultiert.

      Oh ok. Sorry. Mein Fehler.

      Also $_GET is n Assoziatives Array wenn ich aufgepasst habe. Es geht mir um eine Variable in Feld $_GET. $page im Feld $_GET[] nämlich ist entweder n String oder n Array. Ich wollts mit echo auslesen aber dann kam:

      Notice: Array to string conversion in ... on line ...

      Wenn ich in einem hyperlink "?page=index" setze und in einer Variable Speichere wie $page = $_GET[ "page" ], dann ist das doch n string nämlich index. Das kann ich dann wiederrum weiterverarbeiten z.B. if( $page == "index" ) include( "index.php" );.

      Ich wollte n zweite variable $report im $_GET[] setzten. Fals ein Fehler in dr Verbidung einer Datenbank auftaucht, soll $_GET[ "page"] = "error"; gesetzt werden mit dem Bericht was schiefgelaufen ist. Mit einer zweiten Varible wieder über $_GET[ "report" ] = "DB"; in dem Fall Datenbank-Fehler. Irgend wie mach mein PHP-Skript aus einem String n Array mit "error" :/.

      Kommischerweise macht er das nur bei Datenbank-Fehlern nicht bei Seitenfehlern, z.B. wenns die Seite garnicht gibt gibt er nen error.php aus initiiert mit $_GET[ "page" ] = "error" und $_GET[ "report" ] = "file";*.

      Die Konkreten Parameter Namen habe ich natürlich in meinen Skripten in Klassen Attribute $this->page und $this->report ersetzt und das dann in einer config.php gesetzt $page = "page". Ich hoffe nicht das da bei mir n fehler unterlaufen ist. Das ich das irgend wo nicht rechtzeitig gesetzt habe.

      Ich hoffe das war etwas deutlicher. Grüße MB

      1. Hallo,

        Ich hoffe das war etwas deutlicher. Grüße MB

        leider nein. Ich habe absolut nichts von dem verstanden, was du sagen wolltest.

        Nur eins glaube ich herausgehört zu haben: Du scheinst selbst Einträge in das Array $_GET schreiben zu wollen. Technisch ist das auch kein Problem, aber es ist ... also, sagen wir mal, "das macht man nicht". Denn eigentlich sind die superglobalen Arrays $_GET, $_POST, $_SERVER, $_ENV und $_COOKIE, die von PHP selbst angelegt werden, dafür gedacht, dass sie dem Script Informationen zur Verfügung stellen, die von außen kommen. Selbst da hineinzuschreiben ist etwa so, als würdest du Einkaufszettel oder andere Notizen in deinem eigenen Briefkasten deponieren.

        So long,
         Martin

        1. Hallo Martin,

          Ich hoffe das war etwas deutlicher. Grüße MB

          leider nein. Ich habe absolut nichts von dem verstanden, was du sagen wolltest.

          Naja n versuch war es wert. Ich kann es nich nochweiter ausführen. Da verzettel ich mich stark. Aber Besten Dank fürs Feedback :-).

          Nur eins glaube ich herausgehört zu haben: Du scheinst selbst Einträge in das Array $_GET schreiben zu wollen. Technisch ist das auch kein Problem, aber es ist ... also, sagen wir mal, "das macht man nicht". Denn eigentlich sind die superglobalen Arrays $_GET, $_POST, $_SERVER, $_ENV und $_COOKIE, die von PHP selbst angelegt werden, dafür gedacht, dass sie dem Script Informationen zur Verfügung stellen, die von außen kommen. Selbst da hineinzuschreiben ist etwa so, als würdest du Einkaufszettel oder andere Notizen in deinem eigenen Briefkasten deponieren.

          Ok Verstehe. Danke für den Hinweis!

          Herzlichste Grüße, Schönen Abend MB

        2. Moin!

          Denn eigentlich sind die superglobalen Arrays $_GET, $_POST, $_SERVER, $_ENV und $_COOKIE, die von PHP selbst angelegt werden, dafür gedacht, dass sie dem Script Informationen zur Verfügung stellen, die von außen kommen.

          Nun ja. Die Idee ist auf meinem Mist gewachsen um die Eingabe zu simulieren.

          Jörg Reinholz

      2. Ich wollte n zweite variable $report im $_GET[] setzten. Fals ein Fehler in dr Verbidung einer Datenbank auftaucht, soll $_GET[ "page"] = "error"; gesetzt werden mit dem Bericht was schiefgelaufen ist. Mit einer zweiten Varible wieder über $_GET[ "report" ] = "DB"; in dem Fall Datenbank-Fehler. Irgend wie mach mein PHP-Skript aus einem String n Array mit "error" :/.

        Seltsam. Du überschreibst Elemente des Array $_GET bzw. fügst den Eingabedaten neue hinzu.

        Und dann kommt die include Datei, wo du diese Werte wieder abfragst und dann ist $_GET['DB'] plötzlich ein Array?

        1. Und dann kommt die include Datei, wo du diese Werte wieder abfragst und dann ist $_GET['DB'] plötzlich ein Array?

          Nee, $_GET['report'] ist ein Array, nachdem du den Wert 'DB' hineingeschrieben hast?

          Da passiert an anderer Stelle aber noch was, was du uns verschweigst.

          Linuchs

        2. Hallo Linuchs,

          Seltsam. Du überschreibst Elemente des Array $_GET bzw. fügst den Eingabedaten neue hinzu.

          Ja um zu navigieren

          Und dann kommt die include Datei, wo du diese Werte wieder abfragst und dann ist $_GET['DB'] plötzlich ein Array?

          Nein, der Key page nicht der wert DB im key report im Assoziativem Array $_GET. Hast du weitere Fragen zu meinem Problem die ich dir hoffentlich beantworten kann?

          Gruß MB

          1. Nein, der Key page nicht der wert DB im key report im Assoziativem Array $_GET. Hast du weitere Fragen zu meinem Problem die ich dir hoffentlich beantworten kann?

            Okay, du machst

            $_GET[ "page"] = "error";
            

            Dann stehen im Feld namens "page" des Arrays namens "$_GET" also fünf Buchstaben. Und wann genau fragst du die ab und stellst fest, dass die sich in ein Array gewandelt haben?

            Ahh ... ich glaube ich habe eine Ahnung:

              $_GET[ "page"] = "error";
              echo $_GET[ "page"][3]."<br>\n";
              echo "<pre>".var_dump( $_GET )."</pre>\n";
            

            ergibt

            o
             array(1) { ["page"]=> string(5) "error" }
            

            Ein String erscheint vielleicht als Array. Ist das die Lösung? var_dump schon eingesetzt?

            Linuchs

            1. Hallo Linuchs,

              Ein String erscheint vielleicht als Array. Ist das die Lösung? var_dump schon eingesetzt?

              Ja habe ich auch schon vermutet im SelfHTML vorum für JavaScript ht man mir gesagt - wenn ich mich recht entsinne - das String nicht zur Array-Klasse gehören.

              Ich hab dran gedacht, dass das auch in PHP so is und bin dem nicht nach gegangen. Ich hab var_dump() eingesetzt ber noch nie bei *$_GET Ich denke das is ne Idee und n Tipp und der Anstrengung wert, bin jetzt aber zu müde. Werts morgen bzw. heute in angriff nehmen. Danke Dir :-).

              Herzlichste Grüße MB

              1. Aloha ;)

                Ein String erscheint vielleicht als Array. Ist das die Lösung? var_dump schon eingesetzt?

                Ja habe ich auch schon vermutet im SelfHTML vorum für JavaScript ht man mir gesagt - wenn ich mich recht entsinne - das String nicht zur Array-Klasse gehören.

                Strings sind in vielen Programmiersprachen sehr unterschiedlich gelöst. Das liegt daran, dass man sie verdammt oft braucht, dass sie aber trotz allem nicht so primitiv umzusetzen sind, wie richtige primitive Datentypen (z.B. Booleans oder Integer-Zahlen oder Float-Zahlen oder Character), da Strings ja aus vielen verschiedenen Zeichen bestehen. Deshalb kann man Aussagen über String in den meisten Fällen nicht auf andere Programmiersprachen übertragen (das kann man eigentlich bei keinem Datentyp, in der Praxis sind die Implementierungen der primitiven Datentypen programmiersprachenübergreifend aber so ähnlich, dass das meist schon funktioniert).

                Unterschiedliche Programmiersprachen haben dementsprechend ganz unterschiedliche Vorstellungen davon, was ein String ist - und manche verwenden zu allem Überfluss sogar die gleiche Zugriffs-Syntax für Strings wie für Arrays, selbst wenn Strings in der entsprechenden Sprache eigentlich keine Arrays sind.

                Ein paar Beispiele aus mir bekannten Sprachen (man möge mir einzelne Fehler verzeihen, ich schreib das meiste nur aus dem Gedächtnis runter):

                JavaScript / ECMAScript

                Strings sind eigene Objekte mit anderen Methoden als Arrays, akzeptieren aber für den Zugriff die gleiche Syntax wie Arrays: "Hallo"[1] ergibt "a", "Hallo".length ergibt 5 und der String "Hallo" unterscheidet sich damit in der Verwendung kaum offensichtlich vom Array ["H","a","l","l","o"], Verwechslungen sind also leicht möglich.

                PHP

                Strings sind hier - ähnlich wie in JavaScript - von Arrays verschiedene Objekte, leider ist auch hier der Zugriff sehr ähnlich: Auf einzelne Zeichen kann - genau wie auf Array-Elemente - mittels [ ] zugegriffen werden. Unterschiede gibt es allerdings bei der Länge. Die Array-Länge wird mit count ermittelt, die String-Länge mit strlen - allerdings ist auch das nicht ohne Tücken, da count auch für String-Objekte ein Ergebnis (nämlich 1) liefert, dem man die potenzielle Falsch-Verwendung nicht ansieht.

                Java

                Strings sind hier eigenständige Objekte, die ganz klar von Arrays abgegrenzt sind. Die Zugriffsmöglichkeiten sind nicht verwechselbar (ausschließlich die Methode charAt liefert einzelne Zeichen, es gibt keine Kurznotation mit [ ]) und auch der Zugriff auf die Länge ist eindeutig zu unterscheiden (zumindest zwischen String und Array, Strings haben variable Länge und length() ist eine Funktion (Methode), Arrays haben feste Länge und length ist ein Attribut).

                Haskell

                Strings sind hier nichts anderes als Listen (Listen sind in Haskell sowas wie Arrays in anderen Sprachen) von Zeichen, der Datentyp String ist lediglich ein Alias des Typs [Char] ("Liste von Zeichen").

                Prolog

                Strings sind hier eigenständige Objekte, auf die anders zugegriffen wird als auf Arrays (in Prolog: Listen), es gibt aber die Möglichkeit einer (expliziten) bi-direktionalen Konvertierung von Strings und Listen von Zeichen. Leider wird die Unterschiedlichkeit teils nicht sonderlich deutlich, da mit length/2 sowohl die Länge von Strings als auch von Arrays richtig angegeben wird. Die Konvertierung funktioniert hier in den vordefinierten Prädikaten implizit, wie bspw. memberchk/2 zeigt, das auf Strings nicht trivial funktioniert - nämlich nur dann, wenn man nicht nach dem Zeichen, sondern nach dessen entsprechendem Zeichencode sucht. Auch append/3 liefert direkt ein Array von Zeichencodes, wenn es mit Strings gefüttert wird. Auch hier also eher große Verwechslungsgefahr, wobei man immerhin den Zeichencode noch deutlich vom Zeichen unterscheiden kann, wenn eine Ausgabe daherkommt.

                C

                Hier sind Strings nichts Anderes als Arrays von chars.

                Rust

                (Anm.: Rust ist eine ganz neue Sprache, die vor allem auch für Systeme gedacht ist, also eher low-level, dabei aber einen Fokus auch Sicherheit legt)

                In Rust sind Strings vor allem: anders und vielfältig. Es gibt viele verschiedene Arten von Strings mit entsprechend unterschiedlichen Typen, je nach den spezifischen Bedürfnissen der Anwendung. Schnellzugriff via [ ] ist nicht so ohne weiteres möglich, auch wenn Strings Vektoren (Rusts Array-ähnlicher Typ) sonst sehr ähnlich sind. Das Fehlen dieses Schnellzugriffs ist sogar Absicht, um Missverständnissen vorzubeugen:

                Usually, access to a vector with [] is very fast. But, because each character in a UTF-8 encoded string can be multiple bytes, you have to walk over the string to find the nᵗʰ letter of a string. This is a significantly more expensive operation, and we don’t want to be misleading.

                [Quelle]


                Ich denke, dass die Unterschiedlichkeit klar deutlich wird. Und auch wenn es überall anders (bezogen auf primitive und quasi-primitive Datentypen) auch Unterschiede zwischen den Programmiersprachen gibt, so sind sie doch nie so groß wie bei Strings und deren Repräsentation.

                Grüße,

                RIDER

                --
                Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                # Facebook # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
                1. Abend RIDER,

                  Vielen Dank für die Nachhilfe Stunde :-)

                  Herzlichste Grüße MB

              2. Hallo Linuchs,

                ich habs mit if( !( is_array( $page ))) { ... }, ich breuf jetzt warum die Variable manchmal n String und manchmal n array mit strings is. Ich habs so gelöst aber es gibt elegantere Wege als meinen Kesselflickerweg :/.

                Herzlichste Grüße MB

                1. Hallo,

                  ich habs mit if( !( is_array( $page ))) { ... }, ich breuf jetzt warum die Variable manchmal n String und manchmal n array mit strings is. Ich habs so gelöst aber es gibt elegantere Wege als meinen Kesselflickerweg :/.

                  nein, nicht wenn die Daten aus unbekannter Quelle kommen.

                  Zunächst mal werden die Elemente in $_GET ja aus den URL-Parametern im Query-String gebildet. Und da gilt: Ein Parameter, ein Wert. Kommen mehrere Parameter hintereinander mit dem gleichen Namen, dann sieht man im $_GET-Array nur den letzten davon.

                  Endet aber der Name eines Parameters mit eckigen Klammern[], dann baut PHP daraus ein Array. Die Daten, die z.B. ein <input name="param[]" ...> generiert, sind analog zu $_GET['param'][]="...".
                  Auch bei einer herkömmlichen Zuweisung legt PHP ja automatisch ein Array an, wenn man [] hinter dem Variablennamen notiert.

                  Fazit: Erwartet man die ankommenden Daten aus einem Formular, dann sollte man selbst wissen, welche Parameter als einfache Werte kommen und welche als Array. Prüfen sollte man es dennoch, weil von außen kommende Daten ja auch beliebig manipuliert sein können.

                  So long,
                   Martin

                2. Hallo .MB,

                  ich habs mit if( !( is_array( $page ))) { ... }, ich breuf jetzt warum die Variable manchmal n String und manchmal n array mit strings is. Ich habs so gelöst aber es gibt elegantere Wege als meinen Kesselflickerweg :/.

                  Schön wäre es zudem, würdest du deine Beiträge so schreiben, dass man sie auch vernünftig lesen kann.

                  Bis demnächst
                  Matthias

                  --
                  Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
                  1. Hallo Matthias,

                    Schön wäre es zudem, würdest du deine Beiträge so schreiben, dass man sie auch vernünftig lesen kann.

                    Was meinst du genau? Ich bin sehr Froh das man mir hilft. Leider aber ist es so, dass ich manchmal die Fragen nicht so richtig rüber bringen und verstanden werden kann.

                    Wie kann ich die Fragen besser gestalten das man sofort weis was das Problem ist auf das sich die frage bezieht.

                    Oder meinst du den semantischen Aufbau der Fragen?

                    Es wäre mir echt eine Hilf wenn man mir Ratschläge / Tipps geben könnte.

                    Herzlichste Grüße MB

                    1. Hallo .MB,

                      Schön wäre es zudem, würdest du deine Beiträge so schreiben, dass man sie auch vernünftig lesen kann.

                      Was meinst du genau?

                      Ich meine die (in diesem Thread nicht so sehr) vielen Tippfehler und Abkürzungen. Ich meine ausdrücklich nicht die Rechtschreibfehler, sondern eher Buchstabendreher, die beim Lesen vor dem Absenden, auffallen.

                      Vielleicht tue ich dir auch unrecht.

                      Bis demnächst
                      Matthias

                      --
                      Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
                      1. Hallo Mattias,

                        Ah Ok, Danke für den Hinweis. Demnächst werde ich neue Themen vorstellen zu denen ich Fragen habe. Ich versuche mein möglichstes zu geben, mich korrekt auszudrücken. Und Du hast das richtig erfasst. Oft passiere mir leider wort verschucker, verdrehe, vokale vertauscher, silbe ersetzer, usw. und es tut mir leid das ihr das mehrmals lesen müsst um es zu deuten was ich gemeint haben könnte. Wenn die Frage von mir zuverdreh ist, übergeht sie einfach oder fragt einfach genauer oder allgemein nach. Ich antwort gern und stellt die Fragen präzieser.

                        Nochmals Danke für den Hinweis.

                        Herzlichste Grüße, MB

                        1. Hallo,

                          Oft passiere mir leider wort verschucker, verdrehe, vokale vertauscher, silbe ersetzer, usw. und es tut mir leid das ihr das mehrmals lesen müsst um es zu deuten was ich gemeint haben könnte.

                          Grade hier im Satz, in dem du aufzählst, was dir so alles passiert, hast du auffällig viele Tippfehler. Und zwar eigentlich solche, die du nicht mit aufgezählt hast.

                          Wenn die Frage von mir zuverdreh ist, übergeht sie einfach oder fragt einfach genauer oder allgemein nach. Ich antwort gern und stellt die Fragen präzieser.

                          Eine Frage deswegen übergehen, wäre albern. Solange man versteht was gemeint ist, ist ja alles ok und Nachfragen kommen sowieso.

                          Man macht sich halt Gedanken, warum jemand eine Frage in dieser Art stellt. Ist es Schludrigkeit? Ist es, weil Deutsch garnicht die Muttersprache ist? Es kann viele Gründe dafür geben. Meine Vermutung wäre Letzteres, dann müsste man Dir Respekt zollen, für einen Nichtmuttersprachler ziemlich gut. Aber wäre es z.B. Schludrigkeit, dann hat man natürlich die Befürchtung, in deinem Code sollte man halt auch auf entsprechende Phänomene achten.

                          Fehlerfreie Texte lassen sich nunmal einfacher lesen, und vorallem erfassen!

                          Gruß
                          Kalk

                          1. Hallo Kalk,

                            Fehlerfreie Texte lassen sich nunmal einfacher lesen, und vorallem erfassen!

                            Fällt mir schwer. Ich finds toll das Ihr euch die Mühe gebt die ich beanstanden muss. Aber ihr müsste keine grauen Hirnzellen verbraten, nur um meine Fragen über Umwege ansatzweise verstehen zu können.

                            Ich hab seit 13 Jahren ne Sprachstörung. Ich bin deutsch. Nehme seit 13 Jahren Logopädie. Aber danke für den Respekt. Gebe ich gern an Dich / euch Zurück. Grade wegen des Hilfe-Forums. Hab ich aber schon mal gesagt hier im Forum. Auf anfrage. Ich find's wichtig das unbeantwortete Fragen geklärt sind. Dann kann man damit besser um gehen.

                            Grüße MB

                            1. Hallo,

                              Fehlerfreie Texte lassen sich nunmal einfacher lesen, und vorallem erfassen!

                              Fällt mir schwer. Ich finds toll das Ihr euch die Mühe gebt die ich beanstanden muss. Aber ihr müsste keine grauen Hirnzellen verbraten, nur um meine Fragen über Umwege ansatzweise verstehen zu können.

                              doch, müssen wir. Sollten wir. Das sind wir Menschen schuldig, die eine Beeinträchtigung haben.

                              Ich hab seit 13 Jahren ne Sprachstörung. Ich bin deutsch. Nehme seit 13 Jahren Logopädie.

                              Ich erinnere mich, dass ich dich vor einiger Zeit auch mal scharf kritisiert habe, weil mir mehrere deiner Postings unangenehm aufgefallen sind. Damals hast du dann auch erklärt, warum das so ist. Danach war mir mein Gemecker fast peinlich.

                              Es ist einfach so: Wenn jemand aus Gleichgültigkeit seine Texte einfach so "hinrotzt", dann ist das eine Rücksichtslosigkeit gegenüber denen, die das lesen sollen. Wenn ich aber weiß, dass derjenige es nicht besser kann, obwohl er sich bemüht, nehme ich den Text mit all seinen Fehlern ganz anders auf.

                              Das ist so ähnlich, wenn mich auf der Straße jemand anspricht und z.B. nach dem Weg fragt. Wenn mir bewusst ist, dass Deutsch für ihn eine Fremdsprache ist, dann sehe ich gern über die "kaputte" Grammatik oder ähnliche Fehler hinweg, empfinde im Gegenteil sogar einen gewissen Respekt, weil der Fremde sich immerhin erkennbar Mühe gibt, mich in meiner Sprache anzusprechen.

                              Ich find's wichtig das unbeantwortete Fragen geklärt sind. Dann kann man damit besser um gehen.

                              Absolut richtig.

                              So long,
                               Martin

                              1. Hallo Martin,

                                doch, müssen wir. Sollten wir. Das sind wir Menschen schuldig, die eine Beeinträchtigung haben.

                                Also, Ich sag mal Danke :).

                                Ich erinnere mich, dass ich dich vor einiger Zeit auch mal scharf kritisiert habe, weil mir mehrere deiner Postings unangenehm aufgefallen sind. Damals hast du dann auch erklärt, warum das so ist. Danach war mir mein Gemecker fast peinlich.

                                Das Soll Dir nicht peinlich sein, keinem. nicht einmal fast. Du wusst es einfach nicht. Punkt. Deswegen habe ich ja gefragt, ob es sinnvoll wäre gerade einen solchen Fall vorzubeugen. Ich würde dann von vornherei offenkundig in meiner Fußzeile schreiben "Sprachbehinderung" ohne selbst werten zu wollen. Hab mein Vorhaben dann aber sein lassen.

                                Wenn jemand aus Gleichgültigkeit seine Texte einfach so "hinrotzt", dann ist das eine Rücksichtslosigkeit gegenüber denen, die das lesen sollen.

                                persönlich sehe ich es ganz genauso. Und meines erachtens ist es gerade deswegen schwierig zu differenzieren; zwischen bewusst, mit absicht und unbewusst, ohnmächtig. Aber Sorry Ich wollte nicht so tief gehen. Dieses Großartige Forum dient ja einem ganz anderem Zweck welches ich in naher Zukunft wiedereinmal beehren werde ;).

                                Herzlichste Grüße MB

                        2. Hallo .MB,

                          Ah Ok, Danke für den Hinweis.

                          Du bist aber nicht zufällig identisch mit dem Benutzer MB?

                          Bis demnächst
                          Matthias

                          --
                          Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
                          1. Hallo Matthias,

                            Du bist aber nicht zufällig identisch mit dem Benutzer MB?

                            Jepp, ein und der Selbe. Ich hab leider mein Passwort verlegt :/. drum habe ich einfach n pünktchen davor gesetzt.

                            Grüße MB

                            1. Also das ist komisch. Jetzt funktioniert mit der Anmeldung. sehr skurril

            2. Tach!

              echo "<pre>".var_dump( $_GET )."</pre>\n";

              var_dump() ist zwar das richtige Mittel, um sich genau auzuschauen, was in einer Variable steckt, weil das im Gegensatz zu echo auch im Falle komplexer Inhalte diese nicht in einen String zu konvertieren versucht. Aber die Rückgabe der Funktion ist void und somit nicht geeignet, mit einem String verknüpft zu werden. Zudem erreicht das Konstrukt auf diese Weise nicht das Ziel, denn zuerst wird var_dump() aufgerufen, welches sofort die Ausgabe vornimmt. Dann erst wird versucht, die nicht vorhandene Rückgabe mit dem Rest der Strings zu verknüpfen. Somit steht am Ende zuerst die Ausgabe von var_dump() und danach erst folgt das <pre></pre>\n und wirkt nicht mehr.

              Das echo "<pre>"; muss eine eigenständige Anweisung sein, dann kann das var_dump() folgen, ebenfalls eigenständig. Und zum Schluss kann man noch (muss man aber für Debug-Zwecke nicht) das </pre> in einer wiederum eigenständigen Anweisung ausgeben.

              Alternative zum var_dump() ist print_r(), das erzeugt eine andere Art der Ausgabe. Das kann man auch mit einem zweiten Parameter aufrufen, woraufhin es nicht direkt ausgibt, sondern einen String zurückgibt. Und das könnte man dann auf die obige Weise aufrufen.

              dedlfix.

  2. mein Problem ist das dieses $_GET scheinbar manchmal als Array und manchmal als einzelner Wert auftaucht.

    Mit dieses $_GET vestehe ich $_GET['name'].

    Wie sieht denn der Aufruf der URL aus, dass ein GET Parameter als Array erscheint?

    Mit $_POST aus einem Formular kenne ich das:

    <form action="news.php" method="post">
      <input type="text" name="name[]" value="Anne">
      <input type="text" name="name[]" value="Berta">
      <button type=subbit>los</button>
    </form>
    
    echo "_POST['name'][0]=[".$_POST['name'][0]."]<br>\n";
    

    Ausgabe: _POST['name'][0]=[Anne]

    Linux

    1. Wie sieht denn der Aufruf der URL aus, dass ein GET Parameter als Array erscheint?

      So:

      news.php?name%5B%5D=Anne&name%5B%5D=Berta
      
      1. auch so:

        news.php?name[]=Anne&name[]=Berta
        

        Bin selbst ganz verblüfft, dass das funzt.

        Linuchs