Avatar billede webcreator Nybegynder
26. juni 2003 - 14:39 Der er 12 kommentarer og
2 løsninger

Header burde sende brugeren videre. Virker kun med exit; bagved

Hej.

Jeg har en IF sætning, hvor brugeren bliver sendt videre til en side, hvis betingelserne er opfyldt. Men det virker kun, hvis jeg smider en exit; bagved headeren. Sådan her :

  if ($file_name == "") {
  header("location:upload-new.php?emne=$emne&opgn=$opgn&opgt=$opgt&aarg=$aarg&kara=$kara&side=$side&besk=$besk&user=$user&kate=$kate&file=$file&uds=<div class=a1>Udfyld opgave-fil</div>"); exit; #<- HER HER
  }else{
  if(file_exists("$absolute_path/$file_name")) {
  echo "Filnavn eksistere"; exit ;
  } else {
  if (($size_limit == "yes") && ($limit_size < $file_size)) {
  echo "Filen er for stor"; exit ;
  } else {
  $ext = strrchr($file_name,'.');
  if (($limit_ext == "yes") && (!in_array($ext,$extensions))) {
  echo "fil ikke accepteret"; exit ;
  }else{
  @copy($file, "$absolute_path/$file_name") or $aendre = "systemfejl";
 
  }
  }
  }
  }

Hvordan kan det være ?
Avatar billede angam Nybegynder
26. juni 2003 - 14:40 #1
Har du sat output_buffering til ON i php.ini?
Avatar billede angam Nybegynder
26. juni 2003 - 14:41 #2
I så fald genererer den jo alt output inden den sendere dette (incl. headeren) - og eksekverer koden efter header() også.
Avatar billede webcreator Nybegynder
26. juni 2003 - 14:41 #3
Ved jeg sørme ikke. Jeg har en phpinfo her :
http://www.jemt.frac.dk/info.php

Men kan ikke se den funktion nogen steder.
Avatar billede webcreator Nybegynder
26. juni 2003 - 14:42 #4
Jo, sørme. der står :
output_buffering    no value    no value
Avatar billede webcreator Nybegynder
26. juni 2003 - 14:42 #5
Dvs. at jeg er tvunget til at have en exit; efter mine headers  ?
Avatar billede angam Nybegynder
26. juni 2003 - 14:46 #6
Hvis ikke du kan ændre output_buffering i din php.ini, så ja.

output_buffering = Off
..så kan du spare din exit - og din kode vil iøvrigt blive genereret en anelse hurtigere.
Avatar billede webcreator Nybegynder
26. juni 2003 - 14:46 #7
Jeg har forresten i header i else-delen af en IF-sætning. Denne virker fint uden exit.
Avatar billede fsconsult.dk Nybegynder
26. juni 2003 - 14:49 #8
Det er altid en god ide at benytte exit, hvis man ikke ønsker at få resten af siden eksekveret. F.eks. når man benytter header til at redirigere brugeren.

Selvfølgelig kan du spare en hel linies kode ved at undlade exit, forudsat at alle defaults er som standarden, og at standarden ikke ændrer sig .. :-)
Avatar billede webcreator Nybegynder
26. juni 2003 - 14:50 #9
Ok, IC. Gode råd :-)
Jamen så vil jeg da smide en exit efter hver header fremover:-)
Avatar billede webcreator Nybegynder
26. juni 2003 - 14:52 #10
Smider I nogle svar ? :-)
Avatar billede angam Nybegynder
26. juni 2003 - 14:52 #11
Ja!
Avatar billede fsconsult.dk Nybegynder
26. juni 2003 - 14:53 #12
syntes nu du skal nøjes med at smide en exit efter de headers hvor du benytter "location".
Avatar billede fsconsult.dk Nybegynder
26. juni 2003 - 14:53 #13
Jow
Avatar billede angam Nybegynder
26. juni 2003 - 14:53 #14
*lol* ja - godt set, fsconsult.dk
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