Avatar billede saudoo Nybegynder
23. april 2005 - 17:19 Der er 20 kommentarer og
1 løsning

Redirect i en IF

Hej,

Kan man få en side til at redirecte til en ekstern fil hvis noget sker? F. eks. at adressen hedder index.php?go=eksperten og så går den til http://www.eksperten.dk?

Tak. :)

Jakob
Avatar billede sungdk Nybegynder
23. april 2005 - 17:22 #1
if ($_GET[go] == 'eksperten') { echo '<META HTTP-EQUIV="Refresh" CONTENT="0 URL=http://www.eksperten">'; }

Du kan også bruge header hvis der ikke er blevet skrevet noget ud inden...
Avatar billede sungdk Nybegynder
23. april 2005 - 17:22 #2
META skal se sådan ud:

echo '<META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://www.eksperten">';
Avatar billede saudoo Nybegynder
23. april 2005 - 17:24 #3
Okay.. men hvis man har ; to steder.. konflikter det så ikke?
Avatar billede sungdk Nybegynder
23. april 2005 - 17:25 #4
ovenstående eksempel burde virke! Prøv selv
Avatar billede busschou Praktikant
23. april 2005 - 17:27 #5
Det virker vel kun såfremt det står i <head> `?
Avatar billede dennismp Nybegynder
23. april 2005 - 17:27 #6
Alternativt med headers
if( $_GET['go'] == 'eksperten' ) {
  header("Location: http://www.eksperten.dk");
  exit;
}
Avatar billede sungdk Nybegynder
23. april 2005 - 17:27 #7
buss > ikke nødvendigvis i firefox eller IE
Avatar billede busschou Praktikant
23. april 2005 - 17:30 #8
ok troede Meta tags skulle stå i headeren :o)
Avatar billede hmortensen Nybegynder
23. april 2005 - 17:32 #9
Brug header() som dennismp har vist. Så er det serveren og ikk klienten der laver viderestillingen, og den kan derfor ikke modificeres.
Avatar billede sungdk Nybegynder
23. april 2005 - 17:34 #10
hmortensen > korrekt! Men han står jo med et problem hvis han har noget inden denne if.
Avatar billede dennismp Nybegynder
23. april 2005 - 17:40 #11
hmortensen; det er jo strengt taget stadig browseren, du giver bare besked via headers istedet, så browseren med det samme foretager redirect'en. Så behøver browseren ikke at funderer over output :)

header("Location:") er defineret af http protokollen
det labisama foreslår er en feature i html

Forskellen er nok mest tydelig hvis du sender ikke-html til brugeren (Fx et billede, alm ascii tekst, xml) som ikke kan lave en redirect i selve formatet. Der er det så smart nok at man kan via protokollen bede klienten om at gå et andet sted hen. Så længe at klienten overholder protokollen kan du regne med at den kan finde ud af redirect'e.

(Håber det gav mening)

Lad _labisama_ får eventuelle points, han var jo først. gav bare ikke eksempel :)
Avatar billede saudoo Nybegynder
23. april 2005 - 17:41 #12
Hvis jeg skal vidrestille kan det vel være ligemeget?
Avatar billede Slettet bruger
23. april 2005 - 17:44 #13
Hvis du bruger ob_start osv (www.php.net/ob_start) bliver du videresendt selvom du har udskrift til klienten for headeren. (du har egentlig ikke udskrift til klient i dette tilfælde).
Avatar billede dennismp Nybegynder
23. april 2005 - 17:45 #14
Man burde vel ikke sende noget output, hvis man ved at man skal viderestille til en anden side? :)

(Hvorfor sende noget, hvis det alligevel er spildt arbejde)
Avatar billede hmortensen Nybegynder
23. april 2005 - 17:46 #15
Giver ingen mening at sende et output til brugeren når der skal skiftes side :)
Avatar billede Slettet bruger
23. april 2005 - 17:46 #16
præcis :o)
Avatar billede saudoo Nybegynder
23. april 2005 - 17:46 #17
DennisMp, valgte at bruge dit forslag, da det fyldt mindst.. :)

Ønske du stadig at labisama skal have pointsne?

Ellers.. tak alle for hjælpen. :)
Avatar billede saudoo Nybegynder
23. april 2005 - 17:53 #18
hov.. har lige et til spørgsmål..

Hvis ens script:
if( $_GET['go'] == 'eksperten' ) {
  header("Location: http://www.eksperten.dk");
  exit;
}

Ligger i en fil, som er i en ifram, hvordan får man ens redirect til at være som _top?
Avatar billede dennismp Nybegynder
23. april 2005 - 18:07 #19
Det kan man ikke med header(). :)
Avatar billede saudoo Nybegynder
23. april 2005 - 18:09 #20
Ærgeligt.. Men endnu engang tak for hjælpen.. ;)
Avatar billede sungdk Nybegynder
23. april 2005 - 18:10 #21
Jeg siger tak for points... (Og tak til dennis) :)
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