• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Parameter verschlüsseln, an HTML-Seite übergeben und auf einzelnen Wert zugreifen

bbnetwork

New member
Brauche mal wieder Hilfe.

Ich möchte aus einem Script heraus bzw. von einer HTML-Seite an eine andere HTML-Seite eine Reihe Parametern übergeben.
Im Thread http://forum.jswelt.de/javascript/48247-parameter-html-seite-bergeben.html habe ich dazu schon prinzipielle Erklärungen gefunden, allerdings möchte ich, das die übergebenen Parameter nicht im Klartext, als
Code:
index2.htm?name=name&vorname=vorname
zu sehen sind, sondern irgendwie verschlüsselt dargestellt werden, also in etwa so:
Code:
index2.htm?%C3%A4%2B%E2%82%AC
und dann auf der emfangendne Siete, ausgelesen und entschlüsselt werden.

Wie könnte man sowas machen?

Apropos, auslesen, ich möchte auf jeden der übermittelten Parameter einzeln zugreifen können.
Die Funktion
Code:
if (window.location.search != "")
  alert(window.location.search);
liefert jedoch alle Werte auf einen Rutsch.

Wie könnte man auf die einzelnen Parameter-Elemente zugreifen?
(z.B: name oder vorname, um beim Beispiel von oben zu bleiben)

PS: Ich habe von JavaScript nicht sehr viel Ahnung!
 
Zuletzt bearbeitet:
Wie auch kkapsner kann ich den Sinn einer Parameter-"Verschlüsselung" (treffender wäre wohl "Verschhleierung") absolut nicht nachvollziehen...
Aber zum eigentlichen Thema: du könntest den String vor dem Anhängen mit base64 encoden und dann auf der Zielseite auslesen und decoden.
Code:
function base64_encode(string){
  return window.btoa(encodeURIComponent(string));
}

function base64_decode(string){
  return decodeURIComponent(window.atob(string));
}

Base64 encoding and decoding - JavaScript | MDN
 
Danke, genau so was habe ich gesucht.

Könntet ihr mir bitte auch noch sagen, wie ich die Parameter einzelnen zugreifen und diese auslesen kann, so das ich zum Beispiel nur den Wert für Name bekomme?
Allerdings muss ich dazu sagen, das es in meinem Sting mehrfach die selbe Identifikation gibt, also etwa mehrmals Name, nur eben mit verschiedenen Werten.
Wie komme ich an jeden einzelnen dieser Werte?
 
Zuletzt bearbeitet von einem Moderator:
Mit location.search kommst du in JS an die Get-Parameter. Mithilfe der .split() Funktion kannst du dann am & trennen und hast anschließend die einzelnen Parameter. Jetzt kannst du wieder mit .split() am = trennen und hast den Variablenamen und den Wert.
=> SELFHTML: JavaScript / Objektreferenz / String

- - - Aktualisiert - - -

Nachtrag: In Google finden sich auch haufenweise fertige Funktionen, z.B. Javascript auf GET - Parameter in der URL zugreifen | Staticfloat oder Parameter mit JavaScript auslesen
 
Problem ist nur, das es bei mir selben Identifikationen mehrfach, aber mit verschiedenen Werten gibt und ich nicht genau weiß, wie lang der String ist.

Der String sieht etwa so aus:

Titel=Titel 1&ArtNr=111&Anzahl=2&Preis=1.11&Titel=Titel 2&ArrNr=222&Anzahl=1&Preis=0.00&Titel=Titel 3& [... usw. ]

Wenn ich jetzt nur den 3. Artikel oder vom 6. Artikel nur den Preis brauche, wie kann ich da an genau diese Werte ran kommen?

Sorry falls ich blöd frage, aber im Moment bin ich diesbezüglich aus bisher gesagtem noch nicht schlau geworden.
 
Zuletzt bearbeitet:
Das ist auch nicht besonders schwer: du trennst das Ganze wieder bei den & und die erhaltenen Teil trennst du wieder am = dann schaust du dir den Wert vor dem = an und erzeugst, anstatt eines normalen Eintrags, im Ergebnisobjekt ein Array mit dem Wert als ersten Eintrag bzw. hängst den Wert als neuen Wert in ein existierendes Array rein:
Code:
var str = "Titel=Titel 1&ArtNr=111&Anzahl=2&Preis=1.11&Titel=Titel 2&ArtNr=222&Anzahl=1&Preis=0.00&Titel=Titel 3";
var values = {};
str.split("&").forEach(function(part){
	var parts = part.split("=", 2);
	var name = decodeURIComponent(parts[0]);
	if (!values[name]){
		values[name] = [];
	}
	values[name].push(decodeURIComponent(parts[1]));
});
console.log(values);
 
Zurück
Oben