Samuel fiedler: Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?

Beitrag lesen

problematische Seite

Hallo borisbaer!

Ich schreib jetzt mal was zu URL-Parametern.

Allgemein ist ein URL-Parameter etwas, was hinter der Adresse der Seite steht und mit ? anfängt. Als gutes Beispiel können wir die Suche von Suchmaschinen verwenden.
Auch wenn ich Google hasse, werde ich Google als Beispiel verwenden, einfach, weil es immer noch (😟) die populärste Suchmaschine ist.
Unser erstes Beispiel wird sein: https://google.com/search?q=selfhtml. Dabei ist das URL-Parameter das ?q=selfhtml. Wie wir sehen, ist das q der „Schlüssel“, und das selfhtml der Wert.
Bei der Google Suche habe ich die URL direkt aufgerufen. Sie kann aber auch durch ein Formular entstehen. Für eine einfache Google Suche würde das dann so aussehen:

<form action="https://google.com/search" method="GET">
  <label for="suchbegriff">Suchbegriff: </label>
  <input type="text" name="q" id="suchbegriff"/><br/>
  <button type="submit">Suchen</button>
</form>

Das ganze habe ich in einem schönen kleinen Fiddle online gestellt. Dort funktioniert das Formularabsenden aber leider nicht, wahrscheinlich erlaubt es Google nicht, in ein iFrame (oder Frame) eingebettet zu sein.
Wenn man mehr als ein URL-Parameter mitliefern möchte, geht es nicht mit ? weiter, sondern mit &.
Auch da gibt es das Google-Beispiel: Wenn ich auf die Google Startseite gehe und dort nach „selfhtml“ suche, dann sieht die ganze URL viel komplizierter aus: https://www.google.com/search?q=selfhtml&source=hp&ei=ekkoYpj9DO6Hxc8P2tGR8AM&iflsig=AHkkrS4AAAAAYihXinLuiThCTkx3kUv_6l_KpzG50Hq3&ved=0ahUKEwiYorTZs7j2AhXuQ_EDHdpoBD4Q4dUDCAg&uact=5&oq=selfhtml&gs_lcp=Cgdnd3Mtd2l6EAMyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEOgsILhCABBDHARCjAjoUCC4QgAQQsQMQgwEQxwEQ0QMQ1AI6EQguEIAEELEDEIMBEMcBENEDOggIABCxAxCDAToLCAAQgAQQsQMQgwE6CAguELEDEIMBOgsILhCABBDHARCvAToICC4QgAQQ1AI6CAgAEIAEELEDOgUILhCABDoOCC4QgAQQsQMQgwEQ1AI6DgguEIAEELEDEMcBENEDOgsILhCABBCxAxCDAToICC4QgAQQsQM6CwguEIAEELEDENQCOg4ILhCABBCxAxDHARCjAjoOCC4QgAQQsQMQxwEQrwE6BwgAEIAEEApQ_QJYjAlgyw1oAXAAeACAAWCIAboEkgEBOJgBAKABAbABAA&sclient=gws-wiz

Nehmen wir das mal auseinander:

q              selfhtml
source         hp
ei             kkoYpj9DO6Hxc8P2tGR8AM
iflsig         AHkkrS4AAAAAYihXinLuiThCTkx3kUv_6l_KpzG50Hq3
ved            0ahUKEwiYorTZs7j2AhXuQ_EDHdpoBD4Q4dUDCAg
uact           5
oq             selfhtml
gs_lcp         Cgdnd3Mtd2l6EAMyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEOgsILhCABBDHARCjAjoUCC4QgAQQsQMQgwEQxwEQ0QMQ1AI6EQguEIAEELEDEIMBEMcBENEDOggIABCxAxCDAToLCAAQgAQQsQMQgwE6CAguELEDEIMBOgsILhCABBDHARCvAToICC4QgAQQ1AI6CAgAEIAEELEDOgUILhCABDoOCC4QgAQQsQMQgwEQ1AI6DgguEIAEELEDEMcBENEDOgsILhCABBCxAxCDAToICC4QgAQQsQM6CwguEIAEELEDENQCOg4ILhCABBCxAxDHARCjAjoOCC4QgAQQsQMQxwEQrwE6BwgAEIAEEApQ_QJYjAlgyw1oAXAAeACAAWCIAboEkgEBOJgBAKABAbABAA
sclient        gws-wiz

Frage mich bitte nicht, was das alles bedeutet, aber alle diese Daten empfängt Google über die URL-Parameter.
Diese URL-Parameter kann man natürlich auslesen.
Vorher eine kleine Bemerkung: Das, was im view-source steht, ist NUR das, was der Browser von Server empfängt.
Wenn du alles über AJAX machst, ist das JavaScript. Das läuft (normalerweise [1]) im Browser. Logischerweise kann JavaScript also auf keinem Weg den view-source ändern 😉 [2]. Er kann vielleicht das Aussehen der Seite ändern, aber das kannst du ja nur im Seiteninspektor sehen.
Wenn du das aber über PHP machst, sieht das ganze etwas anders aus. PHP läuft nämlich (normalerweise [3]) auf dem Server. Dann empfängt der Browser die Ergebnisse schon so.
Es ist allerdings schwierig (SEHR schwierig, eigentlich unmöglich), mit PHP den Buttonklick eines Anwenders (oder die Textauswahl) ohne weitere Hilfen festzustellen. Deswegen mein ganzes Gefasel über URL-Parameter.
Du kannst dein Problem tatsächlich mit URL-Parametern lösen. Dafür musst du aber wissen, wie du sie empfangen kannst.
Vielleicht sollte ich noch sagen, dass du auch mit <a href="https://google.com/search?q=selfhtml"></a> URL-Parameter empfangen kannst.

In PHP kannst du alle URL-Parameter mit $_GET empfangen. Vielleicht findet Google den Suchbegriff über $_GET['q'] heraus.
Jedenfalls könntest du eine PHP-Datei bauen, die mit URL-Parametern funktioniert. Wenn du dann https://example.com/test.php?mode=games hast, dann kannst du mit PHP $_GET['mode'] machen.
Weiter kannst du das dann mit $modus = $_GET['mode']; in einer Variablen speichern.
Den Rest darfst du selber konstruieren, da ich mit meiner Tastatur so langsam durchdrehe.

Ich hoffe, du konntest mir folgen und hast sowohl mich als auch einen neuen Begriff verstanden!

Au revoir,
Samuel Fiedler

--
Wie wir ja alle wissen, steht das D in Google für Datenschutz und das v für vertrauenswürdig, siehe Zitat #2337.
Ich würde noch hinzufügen, dass die Gs in Google für Geld stehen!

  1. Es gibt „node.js“. Das soll auf dem Server laufen. Da ich mich damit jedoch nicht beschäftige, kann ich darüber nichts schreiben. ↩︎

  2. Genau genommen kann JavaScript nur das DOM manipulieren, aber eben nicht den view-source. Von allem, was sich im DOM ändert, hat der view-source keinen blassen Schimmer. ↩︎

  3. Keine Ahnung, ob es das auch für PHP gibt, aber es gibt WebPerl. ↩︎

0 75

Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?

borisbaer
  • url
  1. 0
    TS
    • ajax
    • client-server
    • url
    1. 0
      borisbaer
  2. 0
    dedlfix
    1. 0
      borisbaer
      1. 0
        Samuel fiedler
        • javascript
        • php
        • url
        1. 0
          Der Martin
          • php
          • url
        2. 0
          Rolf B
          1. 0
            borisbaer
            1. 0
              Rolf B
              1. 0
                borisbaer
                1. 0
                  Rolf B
                  1. 0
                    borisbaer
                    1. 0
                      Rolf B
                      1. 0
                        borisbaer
                        1. 0
                          tk
                          • php
                          • url
                          1. 0
                            borisbaer
                        2. 0
                          Rolf B
                          1. 0
                            borisbaer
                            1. 0
                              Rolf B
                      2. 1
                        tk
                        • php
                        • url
                        1. 0
                          Rolf B
                          1. 0
                            borisbaer
                            1. 0
                              Der Martin
                              1. 0
                                Rolf B
                                1. 0
                                  borisbaer
                                  1. 0
                                    Rolf B
                                    1. 0
                                      borisbaer
                                      1. 0
                                        Rolf B
                                        1. 0
                                          borisbaer
                                          1. 0
                                            Rolf B
                                            1. 0
                                              borisbaer
                                            2. 0
                                              borisbaer
                                              1. 0
                                                Rolf B
                                                1. 0
                                                  borisbaer
                                                  1. 0
                                                    Rolf B
                                                    1. 0
                                                      borisbaer
                                                      1. 0
                                                        Rolf B
                                                        1. 0
                                                          borisbaer
                                                          1. 0
                                                            borisbaer
                                                            1. 0
                                                              Rolf B
                                                              1. 0
                                                                borisbaer
                                                                1. 0
                                                                  Rolf B
                                                                  1. 0
                                                                    borisbaer
                                                            2. 0
                                                              Rolf B
                                                              1. 0
                                                                borisbaer
                                                                1. 0
                                                                  Rolf B
                                                                  1. 0
                                                                    borisbaer
                                                                    1. 0
                                                                      Rolf B
                                                                      1. 0
                                                                        borisbaer
                                                                        1. 0
                                                                          Rolf B
                                                                          1. 0
                                                                            klawischnigg
                                                                            1. 0
                                                                              Rolf B
                                                                              1. 0
                                                                                klawischnigg
                                                                                1. 0
                                                                                  Rolf B
                                                                          2. 1
                                                                            borisbaer
                                2. 0
                                  Der Martin
                                  1. 0
                                    Rolf B
                                    1. 0
                                      Der Martin
                                      1. 0
                                        Rolf B
                                        1. 0
                                          Der Martin
                                          1. 0
                                            Rolf B
                            2. 0
                              Tabellenkalk
                              1. 0
                                borisbaer
        3. 0
          borisbaer
  3. 0
    Rolf B
    1. 0
      borisbaer
      1. 0
        Rolf B
        1. 0
          borisbaer
          1. 0
            Rolf B
            1. 0
              borisbaer
              1. 1
                Rolf B
                1. 0
                  borisbaer
                  1. 0
                    Rolf B
                    1. 0
                      borisbaer