/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Redirect
Fra : Kasper Johansen


Dato : 27-12-03 19:48

Hej gruppe.

Header("location: blabla"); kan som bekendt kun bruges hvis der _ikke_ er
sat headers. Derfor fandt jeg selv på:

<?
function redirect($url){
?>
<script language="javascript">
location.href="<?=$url?>";
</script>
<?
}
?>

Men dette syntes jeg dog ikke er helt optimalt da jeg helst vil gøre det
via. noget server-noget.

Er det virkelig umuligt at redirecte hvis headers er sat? I så fald, har jeg
valgt det optimale alternativ?


Mvh
Kasper



 
 
Kim Emax (27-12-2003)
Kommentar
Fra : Kim Emax


Dato : 27-12-03 20:29

Kasper Johansen wrote:

> <script language="javascript">
> location.href="<?=$url?>";
> </script>

> Er det virkelig umuligt at redirecte hvis headers er sat? I så fald,
> har jeg valgt det optimale alternativ?

Spørg i clientside, hvor JS spørgsmål hører hjemme

--
Take Care
Kim Emax - master|minds: http://www.masterminds.dk - Vi tænker IT for
dig... http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Kasper Garnæs (27-12-2003)
Kommentar
Fra : Kasper Garnæs


Dato : 27-12-03 20:38

Kasper Johansen wrote:
> Er det virkelig umuligt at redirecte hvis headers er sat?

Så vidt jeg ved, ja.

> I så fald, har jeg valgt det optimale alternativ?

Jeg gætter på, at du oplever problemet, fordi du blander HTML og PHP sammen
på en måde så den kode, der forårsager redirectet, står et stykke nede på på
siden. Så vidt jeg kan se har du følgende alternativer:

· Bruge output buffering
Ganske kort betyder det, at der ikke sendes noget kode til klienten, før
siden er færdiggenereret. Hvis du slår det til, kan du godt redirecte vha.
headers midt i al din HTML.
Det er, så vidt jeg kan se, måden, hvor du lettest kan benytte serverside
redirects uden at skulle ændre ret meget ved din kode. Du kan læse mere om
det i manualen (http://dk2.php.net/ref.outcontrol) eller tjecke en tutorial
ud (http://www.devshed.com/Server_Side/PHP/OutputBuffering/print_html)

· Bruge templates
Her adskiller du såvidt muligt PHP og HTML i to forskellige dele - ofte to
forskellige filer. I din PHP kode som kan består af databasekald,
databehandling etc. sender du nogle værdier videre til din template kode. En
template kan ganske kort beskrives som HTML tilsat en sjat PHP
kontrolstrukturer (if-else, for etc.) og nogle steder (variable), hvor
værdierne sættes ind. Da selve siden som oftest bliver generet til sidst,
står det dig frit for at lave redirects før. Efter min mening er det den
"pæneste" løsning, men det kræver nok, at du strukturerer al din kode om.
Der findes mange forskellige template-systemer i PHP. De to, jeg har stødt
på, som jeg synes bedst om, er
- Smarty (http://smarty.php.net/): kan en masse, og måske også for meget
- Savant (http://phpsavant.com/): KISS

Der er sikkert flere muligheder, men de andre i gruppen skal jo også have
noget at lave : ).

--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408934
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste