Permalänk
Medlem

Dynamisk iframe

Jag sitter och försöker komma fram till någon lösning på ett problem jag stött på nu på jobbet.

Vill ha en sida där kunder kan följa sina leveranser. Själva spårningssidan har redan vår transportör men jag vill ha mer info på sidan om t.ex. säljare osv.

Tanken jag har är att skapa en sida för varje säljare där spårningsinformationen visas i en iframe men att resten av innehållet är statiskt.

Det som jag har kört fast på är just detta med iframe, jag hade velat att src för iframe ändrades dynamiskt utifrån vad det står i länken.

Så om jag skickar en länk till kunden företag.se/frakt?1122334455 så vill jag att src för iframe ska ändras så att de står 1122334455 i src.

Så att iframe src är något i stil med https://transportören.se/tracking?[dynamiskt värde] där då det dynamiska värdet ändras utifrån vad det står i länken man skickar till kunden.

Permalänk
Medlem

Använder du något ramverk eller kör du med rå javascript?

Med rå JS:

1. Leta upp iframe med const element = getDocumentBy[...]()
2. kör element.setAttribute('src', [url här])

För att få ut query-variabler:

1. const urlParams = new URLSearchParams(window.location.search)
2. const trackingCode = urlParams.get('tracking');

Permalänk
Medlem
Skrivet av dlq84:

Använder du något ramverk eller kör du med rå javascript?

Som det är nu försöker jag lägga in det på vår wordpress sida. Men om det visar sig vara ett hinder för att få det att fungera så behöver jag inte göra det på wordpress sidan.

Permalänk
Skrivet av GrezZeR:

Jag sitter och försöker komma fram till någon lösning på ett problem jag stött på nu på jobbet.

Vill ha en sida där kunder kan följa sina leveranser. Själva spårningssidan har redan vår transportör men jag vill ha mer info på sidan om t.ex. säljare osv.

Tanken jag har är att skapa en sida för varje säljare där spårningsinformationen visas i en iframe men att resten av innehållet är statiskt.

Det som jag har kört fast på är just detta med iframe, jag hade velat att src för iframe ändrades dynamiskt utifrån vad det står i länken.

Så om jag skickar en länk till kunden företag.se/frakt?1122334455 så vill jag att src för iframe ska ändras så att de står 1122334455 i src.

Så att iframe src är något i stil med https://transportören.se/tracking?[dynamiskt värde] där då det dynamiska värdet ändras utifrån vad det står i länken man skickar till kunden.

Tjo!

Om du ska nyttja iframe så se till att konfigurera CSP för iframe: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Con... så att det enbart är tillåtet för de valda spårningstjänster vars spårning skall visas inuti iframe-elementet. Glöm inte heller påtvingad HTTPS för utan det så är det öppet mål för alla paketsniffare!

När du säger "företag.se/frakt?1122334455" vad är "1122334455" då? Är det ett unikt nummer som Ni tillhandahåller eller är det ett faktiskt spårningsnummer från någon spårningstjänst? Om det sistnämnda behöver ni hantera faktumet att samma spårningsnummer kanske någon gång kommer att användas av två olika spårningstjänster som ni tillhandahåller era kunder med.

Bättre vore då med en databastabell som har någon GUID-genererad spårningslänk som också är kopplad till inloggad säljare (t.ex. $_SESSION['seller_id'] eller vad ni nu har för associerad inloggningssessionskaka) och så inuti samma databastabellrad finns vilket faktiska spårningsnummer som gäller och även spårningstjänst.

Detta hjälper till med delen som ska skapa iframe-elementet så den vet vilken webbplats det gäller. Då löser det även problematiken med flera olika spårningsnummer från samma spårningstjänst tillhandahållen åt samma säljare på er webbplats.

Din JS-kod bör då börja med att kontrollera att länken för iframe som ska visas börjar med en URL från en lista av godkända URLs och saknas den så nekas det med felmeddelande, "Kunde ej ladda fram spårning". Sedan kan den hämta rätt databastabellrad utifrån angiven GUID och inloggad säljare ($_SESSION['seller_id_or_whatever']).

Ja just det, du säger WordPress, så då säger du PHP. Då går det ju att lösa det hela med att när en Säljare klickar på någon spårningslänk som ni har så kan den hämta rätt databastabellrad ur någon databas och så kan det på serversidan kontrolleras att det är en giltig URL (om någon skulle ha ändrat i databasen vilket innebär andra oroväckande faror) från listan innan iframe-elementet visas.

Det intressanta är då hur spårningslänkar genereras på webbplatsen? Någonstans måste de erhållas via mejl eller annan form av databekräftelse som då kan "be parsed" ("bearbetas") och sedan kan den läggas in i den där databastabell och förknippas med rätt inloggad säljare. Sedan bör det övriga inte vara något större bekymmer tänker jag?

Men inget av detta spelar någon roll om det körs via HTTP!

Mvh,
WKF.

Visa signatur

"Den säkraste koden är den som aldrig skrivs"
"Visste du förresten att det är ett mångmiljardbolag?"
"Jag lever inte för att koda utan kodar för att sen kunna leva"