Variablen per URL ansprechen

CSS und andere hilfreiche Anweisungen
Benutzeravatar
pinky
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 25
Registriert: Fr 29. Apr 2022, 08:40

Variablen per URL ansprechen

Ungelesener Beitrag von pinky »

Hallo zusammen,

ich habe mal eine Frage. Ich stelle mir eine Seite vor, welche beispielsweise eine Variable im Text beinhaltet. Diese Variable möchte ich per URL ausfüllen.

Beispiel:
Hallo (VORNAME), ...

(VORNAME) soll die Variable sein, die ich wie folgt ausfüllen lassen möchte:
https://meineseite.de/index.html?VORNAME=Katja

geht so etwas? Und wenn ja, wie?

LG
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 6588
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Variablen per URL ansprechen

Ungelesener Beitrag von Tommy Herrmann »

Hallo Pinky,

Du - diese Seite ist sicher so mindestens 15 Jahre alt, da hatte ich das mal in der alten Software NOF ausprobiert.

Achte auf die URL (oben im Browser) und das dadurch ausgefüllte Formular oben auf der Seite:

http://www.tommyherrmanndesign.com/nof/ ... name=Pinky

Das geht mit "GET":

https://www.php.net/manual/de/reserved. ... es.get.php

Hier sind aber erhebliche Sicherheitsrisiken zu beachten.

Du musst Dich da selbst schlau machen, denn ich bin mit diesen PHP-Kram zu wenig beschäftigt. Im Prinzip können Hacker, wenn Du da etwas falsch machst, alles machen was sie wollen, passe also auf.

Beachte dazu insbesondere die PHP-Funktion "htmlentities":

https://www.php.net/manual/de/function.htmlentities.php

Unser Supporter "Klaus" könnte Dir das ganz genau beschreiben, er ist aber schon lange nicht mehr hier gewesen - vielleicht guckt er ja zufällig.
Benutzeravatar
pinky
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 25
Registriert: Fr 29. Apr 2022, 08:40

Re: Variablen per URL ansprechen

Ungelesener Beitrag von pinky »

Vielen Dank, in dem Beispiel geht es aber um Formularfelder. Das geht relativ einfach und kenne ich. Meine Frage bezieht sich eher auf eine textbasierte Zeile, welche durch die URL verändert werden soll. Also wie folgt:
Hallo <NAME>, willkommen im Kundenbereich...
Die Textvariable <NAME> würde ich gerne mit der URL ansprechen. Ich bin mir nur nicht sicher ob dazu ein JavaScript notwendig ist.

Beispiel:
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 6588
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Variablen per URL ansprechen

Ungelesener Beitrag von Tommy Herrmann »

Warte mal - ich glaube Du hast mich da noch nicht ganz verstanden.

Da braucht es kein Formular.

Ich erstelle mal eben ein Beispiel. Gucke mal in 10 Minuten wieder hier - oder so...
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 6588
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Variablen per URL ansprechen

Ungelesener Beitrag von Tommy Herrmann »

Gucke mal:

https://www.mobirise-tutorials.com/Tuto ... ky#PHP-get

Code: Alles auswählen

https://www.mobirise-tutorials.com/Tutorials-3/PHP-get.php?name=Pinky
Die Seite muss die Erweiterung .php erhalten

Der PHP Code im "HTML Editor":

Code: Alles auswählen

    <?php
          echo 'Hallo ' . htmlspecialchars($_GET["name"]) . '!';
    ?>
PHP-Code mit GET.jpg
Benutzeravatar
pinky
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 25
Registriert: Fr 29. Apr 2022, 08:40

Re: Variablen per URL ansprechen

Ungelesener Beitrag von pinky »

Das ist genial. Vielen Dank
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 6588
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Variablen per URL ansprechen

Ungelesener Beitrag von Tommy Herrmann »

… prima, dass es dir helfen konnte :)

Meine Beispielseite ist umgezogen:

https://www.mobirise-tutorials.com/Tuto ... ky#PHP-get
Benutzeravatar
Volker
Moderator
Moderator
Beiträge: 946
Registriert: Sa 12. Dez 2020, 22:35
Wohnort: Wildberg
Kontaktdaten:

Re: Variablen per URL ansprechen

Ungelesener Beitrag von Volker »

OK, es klappt, aber erklärt mal einem Blöden wie mir, wofür man das brauchen kann :confused:
Ich hab es noch nicht ganz verstanden was man damit machen könnte.
Gruß Volker
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 6588
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Variablen per URL ansprechen

Ungelesener Beitrag von Tommy Herrmann »

Du könntest mit so etwas zum Beispiel Variablen übergeben, wie hier:

http://www.tommyherrmanndesign.com/nof/ ... -Aktionen/

... oder hier (ich denke ich habe da mindestens 20 Beispiele):

http://www.tommyherrmanndesign.com/nof/FormularAlter

... oder auch hier in Mobirise:

https://www.mobirise-tutorials.com/Mitglieder.php

Dort steht dann personalisiert, nach dem Login, der Benutzername.

… man könnte auch ganze Inhalte über die URL auf seiner Seite anzeigen. Beispiel:

Hallo Volker. Man kann hier auch ganze Inhalte über die URL eintragen!

https://www.mobirise-tutorials.com/Tuto ... en#PHP-get

So sieht diese URL dann aus (ohne den Ankerlink), wobei die maximale Länge einer URL in der Adressleiste 2048 Zeichen beträgt:

Code: Alles auswählen

https://www.mobirise-tutorials.com/Tutorials-3/PHP-get.php?name=Volker.+Man+kann+hier+auch+ganze+Inhalte+%C3%BCber+die+URL+eintragen

URL mit PHP-GET.jpg



Du könntest damit zum Beispiel auch komplexe Formulare ausfüllen, je nachdem woher der Aufruf kommt.
Benutzeravatar
pinky
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 25
Registriert: Fr 29. Apr 2022, 08:40

Re: Variablen per URL ansprechen

Ungelesener Beitrag von pinky »

Ich denke, es gibt zahlreiche Anwendungsbeispiele. Z. B. für Gutscheincodes, preisliche Ankündigungen oder ganz interessant mehrseitige Formulare auf welcher Daten von der Vorseite übernommen werden.
Benutzeravatar
pinky
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 25
Registriert: Fr 29. Apr 2022, 08:40

Re: Variablen per URL ansprechen

Ungelesener Beitrag von pinky »

Bei dem Beispiel wäre noch ein <br> interessant. Wie würde man das an die URL übergeben?
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 6588
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Variablen per URL ansprechen

Ungelesener Beitrag von Tommy Herrmann »

sorry, habe mich auch noch kaum damit beschäftigt. Weiß ich auch gerade nicht.

Suche mal mit Google, wenn Du was findest lasse es uns hier auch wissen.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 6588
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Variablen per URL ansprechen

Ungelesener Beitrag von Tommy Herrmann »

Moin,

im Übrigen lässt sich die Ausgabe im Mobirise-Block ja auch steuern, indem beispielsweise die Blockbreite verringert wird.

Ich habe mal die KI "ChatGPT" zu dem Problem befragt.

Es ist ja auch logisch, dass das so nicht geht, denn genau dafür ist ja die Escaping-Funktion htmlspecialchars() auch da, eben um HTML-Code zu verhindern. Ich werde das also aus Sicherheitsgründen weder testen noch weiter empfehlen.

ACHTUNG: Das Verwenden von HTML-Tags im Query-String ist nicht sicher und kann zu Cross-Site-Scripting (XSS)-Angriffen führen, wenn die Inhalte ohne ordnungsgemäße Validierung ausgegeben werden. Wenn tatsächlich HTML im Query-String zugelassen werden sollte, sollte dies mit großer Vorsicht geschehen und sichergestellt werden, dass die Eingaben gründlich geprüft werden.

ChatGPT hat geschrieben:
Der Grund, warum der <br>-Tag in Ihrer Ausgabe sichtbar ist, liegt daran, dass die Funktion htmlspecialchars() HTML-Zeichen wie < und > in ihre HTML-Entities (&lt; und &gt;) umwandelt.

Dadurch wird der Tag in der Ausgabe angezeigt, anstatt als HTML interpretiert.

Um tatsächlich einen Zeilenumbruch bei der Ausgabe zu erzeugen, müssen Sie den Tag vor der Ausgabe entschlüsseln oder ihn direkt als HTML interpretieren. Dafür können Sie htmlspecialchars() anpassen oder eine andere Lösung verwenden.

Hier ist der angepasste Code:

Lösung: Mit htmlspecialchars_decode

Nutzen Sie htmlspecialchars_decode, um den <br>-Tag wieder in HTML umzuwandeln:

Code: Alles auswählen

<?php
  echo 'Hallo ' . nl2br(htmlspecialchars_decode($_GET["name"])) . '!';
?>
Erklärung:

htmlspecialchars_decode(): Wandelt HTML-Entities wie &lt;br&gt; zurück in <br>.

nl2br() (optional): Wandelt zusätzliche Zeilenumbrüche (\n) in HTML-<br>-Tags um, falls sie im String vorkommen.
Beispiel-URL:

Code: Alles auswählen

https://www.mobirise-tutorials.com/Tutorials-3/PHP-get.php?name=Volker.+Man+kann+hier+auch+ganze+%3Cbr%3EInhalte+%C3%BCber+die+URL+eintragen

Sicherheitshinweis

Seien Sie weiterhin vorsichtig, wenn Sie HTML in der URL zulassen. Um XSS-Angriffe zu vermeiden:

Validieren Sie Eingaben.

Verwenden Sie Escaping-Funktionen wie htmlspecialchars() standardmäßig und nur gezielt htmlspecialchars_decode() für bekannte Eingaben.


Tommy an ChatGPT:

Vielen Dank, habe es verstanden und werde es aus Sicherheitsgründen so lassen.

ChatGPT hat geschrieben:
Gern geschehen! Es ist eine kluge Entscheidung, Sicherheit an erster Stelle zu setzen und HTML-Tags nicht direkt zu interpretieren, wenn es nicht absolut notwendig ist. :)

Falls Sie irgendwann sicher und kontrolliert bestimmte Inhalte wie Zeilenumbrüche oder andere HTML-Tags zulassen möchten, können Sie sich mit Whitelist-Ansätzen (erlaubte Tags definieren) oder Libraries wie https://htmlpurifier.org/ beschäftigen. Diese helfen, nur gewünschte und sichere Inhalte zuzulassen.

Falls Sie weitere Fragen haben oder Unterstützung benötigen, stehe ich gerne zur Verfügung. Viel Erfolg mit Ihrem Projekt! :tu:
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 6588
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Variablen per URL ansprechen

Ungelesener Beitrag von Tommy Herrmann »

pinky hat geschrieben: Mi 8. Jan 2025, 15:45 Ich denke, es gibt zahlreiche Anwendungsbeispiele. Z. B. für Gutscheincodes, preisliche Ankündigungen oder ganz interessant mehrseitige Formulare auf welcher Daten von der Vorseite übernommen werden.

Moin Pinky,

Du hast oben mehrseitige Formulare erwähnt, dafür hatte ich ja auch Beispiele in meinen alten NOF-Seiten.

Hier kann ich aber wirklich den Formular-Generator von "Arclab" empfehlen, mit dem man so etwas alles ganz sicher, super und relativ einfach machen kann.

Hier mal ein Beispiel von mir mit einem Formular über 3 Seiten:

https://www.mobirise-tutorials.com/Form ... eitig.html
Benutzeravatar
pinky
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 25
Registriert: Fr 29. Apr 2022, 08:40

Re: Variablen per URL ansprechen

Ungelesener Beitrag von pinky »

Danke Arclab habe ich auch in Verwendung. :)
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast