02. oktober 2001 - 23:30Der er
17 kommentarer og 1 løsning
Headers
Hej
Jeg har lige lavet mit første rigtige loginscript.
Når man indtaster sine oplysninger bliver man sendt til auth.php. Dette sker med en simpel <form method=\"post\" action=\"auth.php\">. auth.php tjekker om man har indtastet noget ordentligt, registrer sessionværdierne og via. en header bliver man så sendt til den side man søgte. Har man ikke indtastet sine ting ordentligt kommer der bare en hvid skærm hvor der står \"Du har lavet en fejl!\".
Nu vil jeg jo gerne have at siden auth bliver included i mit design, så jeg forsøgte mig med <form method=\"post\" action=\"<?php echo $PHP_SELF; ?>?side=auth\"> (den includerer altid side + .php i midten af siden)
Men når man logger ind så strander den på index.php?side=auth. Man bliver logget ind, men den går ikke videre. Headeren virker altså ikke.
Jeg har fået at vide at headere skal sendes før noget andet, men her har jeg jo brug for at headeren skal sendes inde i min side.
Så kommer spørgsmålet: \"Hvordan får jeg min header til at virke når jeg vil include auth.php i mit design?\"
Det var noget vrøvl! Her: <? ob_start(); ?> hej med dig <? if (1 == 1) // et eller andet { ob_end_clean(); header(\"location: http://slashdot.org/\"); ob_end_flush(); exit; } ?> hej hej <? ob_end_flush(); ?>
Jeg satte <? ob_start(); ?> i toppen af min index.php
og <? ob_end_flush(); ?> i bunden af index.php
Når jeg går ind på index.php?side=admart (som loginsiden hedder) skal jeg et smut til auth.php og så tilbage til admart (det er det alt det her går ud på ;) !)
I auth.php har jeg sat ob_end_clean(); header(\"location: index.php\"); ob_end_clean();
auth.php bliver includet i index.php ved: index.php?side=auth
Men af en-eller-anden grund gider den absolut ikke at sende den header... Det virker altså stadig ikke...
(det med at den går tilbage til den side den kom fra laver jeg senere)
Nu tror jeg jeg forstår hvad du vil! Det kan du desværre ikke - Jeg ville dele en almindelig side op i tre: en header, en content-del og en footer - header og footer skal være de samme altid - så kan du bare Require() dem på alle dine sider - auth.php skal du så bare require() i toppen af din side og den skal så (hvis folk ikke er logget ind) vise en loginform etc...
Jeg mener bare at du bør tage den øverste del af HTML\'en som er ens for alle sider og kalde den header.php og alt det i bunden ligeså og kalde den footer.php, så en side ser sådan ud:
<? require(\"header.php\") ?> <h2>Hitlisten</h2> <p>Velkommen til hitlisten...</p> <? require(\"footer.php\") ?>
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.