Hét vraag- en antwoordplatform van Nederland

waarom redirect deze pagina niet met php?

Ik dacht dat het eerst nog wel werkte maar ineens redirect hij niet meer naar de andere pagina.



Basic CMS - Admin Area


header("Location: login.php");
?>




Het andere bestand heeft login.php en zit in dezelfde map. Hij hoort nu te redirecten naar login.php maar op een of andere manier werkt het niet. PHP versie is 5.5.10 en ik gebruik NAMP op een Mac.

Alvast bedankt.

Verwijderde gebruiker
10 jaar geleden
868

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Antwoorden (1)

Je kunt geen headers sturen nadat je al andere output richting de browser hebt gestuurd. In dit geval alle HTML boven dat stukje PHP.

Het is dan ook zeer ongewoon om HTTP headers (dat zijn het) te versturen terwijl de body van de request al wordt uitgeserveerd.

Toegevoegd na 1 minuut:
Alternatief is om de redirect met JavaScript uit te voeren op de plek waar je nu PHP hebt staan. Maar zoekmachines zullen dat negeren.

Als je de header() call boven de HTML zet, werkt het wel. Let wel, zoekmachines zullen dat zien als een paginaverhuizing.
(Lees meer...)
Verwijderde gebruiker
10 jaar geleden
Verwijderde gebruiker
10 jaar geleden
Oke alleen checkt de pagina of er een $_SESSION['user'] bestaat en dan laad hij de pagina zien en anders niet. Zie: http://pastebin.com/Rt17U8Bm Ik heb echt geen idee waarom dit niet werkt, ik volg een tutorial waarbij het wel werkt, deze is echter wel uit 2010
Verwijderde gebruiker
10 jaar geleden
Wat ik zei staat overeind. Je kunt niet midden in de HTML headers gaan versturen. Je zult dus voordat je HTML schrijft, in PHP moeten beslissen of de header() er komt of niet.
Verwijderde gebruiker
10 jaar geleden
Joris bedankt het werkt nu. Echter nu gaat hij wel naar de login.php waar hij een formulier verstuurd met username en password en dit stuurt hij naar dologin.php, de code van dologin.php staat hier: http://pastebin.com/wqtEUrCU kan ik dit op een andere manier doen dan in plaats van met headers? ik wil wel graag php gebruiken, ik snap alleen niet zo goed waarom dit niet kan. Het zou echt fijn zijn als je mij hiermee ook nog kan helpen, dan is het gelukt. de echo berichten op deze pagina werken trouwens ook niet op een of andere manier.
Verwijderde gebruiker
10 jaar geleden
Wat je nu doet ziet er in de basis prima uit. Alleen kun je niet dingen naar buiten echo'en en vervolgens een hele HTML-pagina erachteraan laden. Want dan krijg je je losse berichtje bovenaan, buiten de HTML-tag, en daar reageert iedere browser anders op. Wat je dus wil, is je bericht in een variabel opslaan. En in login.php, en/of index.php, die variabel uitlezen en weergeven indien van toepassing. en dan in login.php:




Verwijderde gebruiker
10 jaar geleden
Nog 1 ding: Het openen van een sessie stuurt ook headers mee. Dus dat moet je ook altijd doen voordat er HTML wordt verstuurd.
Verwijderde gebruiker
10 jaar geleden
ik heb mijn code aangepast, beide de login.php en dologin.php staan op http://pastebin.com/3hwdgbTP
alleen het lukt nog steeds niet, ik krijg trouwens geen enkele foutmelding en er staat helemaal niks meer op het scherm bij login.php nu die isset van die message erbij staat.
Verwijderde gebruiker
10 jaar geleden
Het zou kunnen dat $message niet wordt meegenomen met de include. Zet eens het volgende bovenaan beide scripts: global $message; Verder moet je altijd dingen die je invoegd in je SQL, escapen. Ik kan nu namelijk een stuk SQL invoeren onder username, en je database trashen met een TRUNCATE, DELETE of DROP commando. Zie http://nl3.php.net/mysql_real_escape_string

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 5000
Gekozen afbeelding