Avatar billede maskso Nybegynder
13. november 2010 - 21:12 Der er 1 kommentar og
1 løsning

Redirect med POST

Hej

Jeg har brug for lidt hjælp.

Jeg vil gerne lave et javascript redirect script, der bruger post fremfor get. Jeg har et php script der tester om brugeren kommer ind på siden med en iphone, hvis dette er tilfældet, redirectes videre til en anden side, som er mere iphone venlig.

Indtil videre har jeg brugt dette script:


<script type="text/javascript">

<?php

if (($browserIsMobileSafari == true) && ($page == "") && !($device == "iphone_inst"))

echo "browserName=navigator.appName;
  browserVer=parseInt(navigator.appVersion);
  if ((browserName==\"Netscape\" && browserVer>=4) || (browserName==\"Microsoft Internet Explorer\" && browserVer>=4))   
  version=\"ver4\";
else
    version=\"other\";
/* Version 4 browser URL */
if (version==\"ver4\")
  window.location=\"iphone/index.php?device=iphone_not_inst\";
/* Other browsers URL */
else
  window.location=\"iphone/index.php?device=iphone_not_inst\";"
;

?>

</script>


Som i kan, så trækker jeg en variable med over. Problemet er at på siden der redirectes til, skal bookmarkes (eller rettere føjes til hjemmeskærm), Og her må variablen ikke være med. Altså skal det der bookmarkes være:

minside.dk/iphone/index.php

istedet for:

minside.dk/iphone/index.php?device=iphone_not_inst

Derfor tænkte jeg at det var bedre at bruge post fremfor get, men hvordan laver jeg sådan et script (der skal redirectes direkte, uden at der manuelt skal klikkes på noget).

Eller er der måske en helt anden løsning på problemet?

Håber der er en der kan hjælpe :-)
Avatar billede intenz Novice
14. november 2010 - 01:44 #1
Hvorfor vil du lave en redirect på den måde?

Du bruger php til at tjekke en betingelse, og så udskriver du javascript til at lave en redirect på baggrund af den betingelse? Det giver ingen mening.

Lav være med at bland sprogene på den måde, det giver kun problemer.

Du bør gøre det med en session gennem php.

<?php
if (($browserIsMobileSafari == true) && ($page == "") && !($device == "iphone_inst")) {
  $_SESSION['device'] = 'iphone_not_inst'
  header("Location: minside.dk/iphone/index.php");
}
?>


Og på din 'minside.dk/iphone/index.php' tjekker du så om variablen er sat.


if (isset($_SESSION['device'])) {
  print $_SESSION['device'];
}
Avatar billede maskso Nybegynder
14. november 2010 - 19:22 #2
Tak, lige hvad jeg skulle bruge :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester