Een header na een include opdracht mag dit niet?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Peter Burks

Peter Burks

02/01/2019 18:53:52
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
include $_SERVER['DOCUMENT_ROOT']."/test.php";
header ('location:inloggen.php?actie=invoeren');
?>



Zelfs als ik test.php geen data zet wordt de header niet uitgevoerd, weet iemand waarom dit zo is of hoe dit op te lossen?
 
PHP hulp

PHP hulp

26/11/2024 07:27:28
 
- Ariën  -
Beheerder

- Ariën -

02/01/2019 19:03:12
Quote Anchor link
Location moet met een hoofdletter aan het begin. Werkt het dan wel?

Vergeet ook niet om je script te stoppen met een 'exit;' na je header()-location.
 
Peter Burks

Peter Burks

02/01/2019 19:13:42
Quote Anchor link
Bedankt Ariën voor je antwoord maar de header zonder include opdracht er voor werkt prima dus ook met een kleine letter.
 
- Ariën  -
Beheerder

- Ariën -

02/01/2019 19:18:55
Quote Anchor link
Ik vermoed een witregel in je test.php.

Zet je foutafhandeling eens aan.
 
Peter Burks

Peter Burks

02/01/2019 19:54:56
Quote Anchor link
Cannot modify header information - headers already sent by (output started

Maar zelfs al staat er niets in test.php dan nog komt de foutmelding.

Geprobeerd

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
?>


Ook met helemaal niks geprobeerd.

Dus mijn conclusie, geen include opdrachten voor een header, ik zal het script moeten herschrijven.
 
- Ariën  -
Beheerder

- Ariën -

02/01/2019 19:57:58
Quote Anchor link
Als je nu de hele foutmelding geeft....?

Nu laat je juist niet het deel zien waar de output zich in bevindt :-P

Je conclusie is fout: Include kan prima voor een header(). Als er maar géén output in te vinden is, of voor de header staat.
Gewijzigd op 02/01/2019 20:03:35 door - Ariën -
 
Peter Burks

Peter Burks

02/01/2019 20:17:33
Quote Anchor link
Je heb helemaal gelijkt, op 1 ding na, er stond een spatie na het einde van het aanroepende php script dus na de php afsluiting ?>


Dacht ook dat het er voor moest staan om het niet te laten werken, maar bedankt probleem opgelost. :-)
 
- Ariën  -
Beheerder

- Ariën -

02/01/2019 20:21:31
Quote Anchor link
Voor het gemak kan je de afsluitende ?> ook achterwege laten.
Dat weet dat je dat een spatie aan het einde nooit een probleem kan vormen.

En de error zelf geeft ook aan waar de fout zit:
Quote:
Warning: Cannot modify header information - headers already sent by (output started at /pad/naar/hetscript.php:12) in /pad/naar/anderscript.php on line 23

De uitvoer bevindt zich in hetscript.php op lijn 12.
 
Thomas van den Heuvel

Thomas van den Heuvel

02/01/2019 22:54:17
Quote Anchor link
Als dat codefragment (include + header) alle code is van een ander bestand is dat sowieso onzinnig. Waarom zet je de inhoud van test.php niet rechtstreeks in dat bestand?

En als dat niet alle code is dan wordt het verdomd lastig om te zeggen waar het nu precies mis gaat.

Quote:
Dus mijn conclusie, geen include opdrachten voor een header, ik zal het script moeten herschrijven.

Deze conclusie klopt dus niet.

En wat @Ariën zegt, na een header('Location: ...') hoort altijd een exit, want een header('Location: ...') transporteert je niet direct automagisch naar de nieuwe locatie. Het toevoegen of weglaten van een exit kan het verschil betekenen tussen een veilige en een onveilige applicatie.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.