Varför fungerar inte denna koden på one.com

Permalänk
Medlem

Varför fungerar inte denna koden på one.com

Jag surfar till www.hemsida.se/index.php?id=admin

<?php if(!isset($_SESSION["username"])) { header('Location: index.php?id=login'); } ?>

Mitt Xampp skickar en direkt till index.php?id=login
One.com server gör inget ( hoppar förbi denna kod )

Vill ju att om inte session är satt så ska man inte kunna vara där.

Permalänk
Legendarisk
Skrivet av downup:

Mitt Xampp skickar en direkt till index.php?id=login
One.com server gör inget ( hoppar förbi denna kod )

Om koden är likadan i övrigt så har ni antagligen olika inställningar för output buffering. Headers måste komma först i ditt response (illustration) och om du redan har skickat innehåll till klienten kan du inte ändra det i efterhand, såvida inte PHP var inställt på att buffra det. Har du tillgång till någon loggfil på one.com så bör denna innehålla varningar för det, annars prova aktivera felmeddelanden direkt på sidan. Skulle det visa sig vara problemet så bör du lösa det genom att strukturera om så att inget skickas innan du är redo hellre än att försöka ändra bufferinställningarna.

Observera även att header() inte avslutar scriptet, det sätter endast en ny header och sedan fortsätter allt som vanligt. Är det inte din avsikt så bör du antingen avsluta det själv med ett anrop till die(), eller strukturera koden på ett sätt som får det att avslutas naturligt när du är färdig med ett svar.

header("Location: http://www.sweclockers.com"); die();

Visa signatur

Abstractions all the way down.