enden Skrevet 22. februar 2004 Del Skrevet 22. februar 2004 Ser de fleste som driver med redirect bruker header() Jeg kunne tenke meg å gjøre dette utelukkende serverside - altså, man laster en phpside med parametre, og kjører gjennom kode som jobber med parametrene. Hvis et unntak oppstår under behandlingen av disse parametrene vil jeg gjerne reurnere en helt annen side enn den som opprinnelig ble spurt etter. Jeg er altså ikke lysten på å returnere siden det ble spurt etter med noe clientside scripting som redirecter. Finnes det ferdige funksjoner for dette? Noe ala function haha() { if(! $haha) { redirect("http://www.vg.no"); } } Denne gangen har jeg pløyd gjennom manualen først Torbjørn Lenke til kommentar
FuLu Skrevet 22. februar 2004 Del Skrevet 22. februar 2004 Ingen ferdige funksjoner, annet enn header() som du kan bruke til redirect. header("Location: http://adressen/redirectfila.php"); exit();// Exit gjør at redirect blir gjennomført umiddelbart Av en eller annen grunn, har jeg hatt problemer med den header() redirect i IE, jeg la på \r\n på slutten, og det fungerte. Men kan hende det problemet lå i PHP, og at nyere versjon ikke har det problemet. Men vet ikke, lenge siden jeg kom borti dette problemet, og har alltid brukt \r\n på slutten av den header stringen. Lenke til kommentar
Nervetattoo Skrevet 22. februar 2004 Del Skrevet 22. februar 2004 Dessverre. Er ikke noen egen funksjon for dette i php. Men noe slikt burde funke: function redirect($href) { print("<script language=javascript> location.href=\"$href\"; </script>"); } Lenke til kommentar
enden Skrevet 22. februar 2004 Forfatter Del Skrevet 22. februar 2004 møkkaspråk... Det som er så lett å implementere... (i andres språk) Javascript blir ikke aktuelt, da det ikke er 100% sikekr. Får vurdere header da Lenke til kommentar
Torbjørn Skrevet 22. februar 2004 Del Skrevet 22. februar 2004 hva er galt med en Location header? så vidt jeg kan se, gjør den akkurat det du spør etter? Lenke til kommentar
Cucum(r) Skrevet 22. februar 2004 Del Skrevet 22. februar 2004 Forstår ikke helt hvor du vil med dette enden.. Lenke til kommentar
Nervetattoo Skrevet 22. februar 2004 Del Skrevet 22. februar 2004 Kan jo ikke sende header etter at noe output er kommet. Må jo eventuelt da bruke output buffering for å få bruke header andre plasser enn i starten av scriptet. Lenke til kommentar
The Red Devil Skrevet 22. februar 2004 Del Skrevet 22. februar 2004 Vist eg vil redirecte etter at det er kommet output bruker eg bare <meta http-equiv="refresh" content="0 ; URL=index.php"> Har ikkje hatt noko problemer med det til nå iallefall. Lenke til kommentar
jorgis Skrevet 22. februar 2004 Del Skrevet 22. februar 2004 Vist eg vil redirecte etter at det er kommet output bruker eg bare<meta http-equiv="refresh" content="0 ; URL=index.php"> Har ikkje hatt noko problemer med det til nå iallefall. Bruken av akkurat det er ikke anbefalt av W3C, siden det bryter for bruk av "tilbake"-knappen. Jeg liker forresten ikke header(location="trallala.php"), siden det ikke tillater output av data før redirect uten klussing med outbut-buffering o.l. Lenke til kommentar
Torbjørn Skrevet 22. februar 2004 Del Skrevet 22. februar 2004 Jeg liker forresten ikke header(location="trallala.php"), siden det ikke tillater output av data før redirect uten klussing med outbut-buffering o.l. liker og liker fru blom, headers sendes uansett om du ber om det eller ikke. det er ikke noe prinsipielt galt med å sette sine egne headers i itllegg til default headers. mao, å bruke headers til sin egen fordel er en ekstragevinst man kan kæshe inn om man vil. Lenke til kommentar
???????? Skrevet 23. februar 2004 Del Skrevet 23. februar 2004 Jeg liker forresten ikke header(location="trallala.php"), siden det ikke tillater output av data før redirect uten klussing med outbut-buffering o.l. Hva med å bare sjekke det du vil sjekke på toppen av siden, og sette headeren der - før du skriver noen tekst. Er det noe du har lagret i variabler så er de fortsatt der senere i scriptet også - dersom du ikke velger å lagre noe annet i de. Lenke til kommentar
jorgis Skrevet 23. februar 2004 Del Skrevet 23. februar 2004 Hva hvis jeg vil vise en kjapp: "Innlegget har blitt lagret, du vil nå sendes tilbake til forsiden"? Det er ikke mulig uten masse tull med output buffers. Lenke til kommentar
Torbjørn Skrevet 23. februar 2004 Del Skrevet 23. februar 2004 det er ikke mulig i det hele tatt Location via HTTP header sender nettleseren til en gitt URL uten at den rekker å se innholdet på siden. Lenke til kommentar
jorgis Skrevet 23. februar 2004 Del Skrevet 23. februar 2004 Akkurat. Da må en bruke META refresh eller noe lignende. Lenke til kommentar
Torbjørn Skrevet 23. februar 2004 Del Skrevet 23. februar 2004 mao ikke et problem med Location header, men med HTTP protokollen i seg selv. Location header kan brukes til mye fornuftig. unngå dobbelposting er kanskje en av de viktigste, men passer også fint til å sende brukeren videre etter login f.eks. man kan sende med et par GET parametere hvis man vil at det skal vises noe lurt på neste side. eks: header("Location index.php?nettopp_logget_inn=1"); så i index.php sjekke om $_GET['nettopp_logget_inn'] og i såfall skrive ut "Hei $navn, login OK, velkommen tilbake!" Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå