In bestand (test7.php) zijn twee variabelen gedefinieerd. Deze variabelen moeten ook gebruikt worden in een tweede bestand (test9.php).

De redirect van test7 naar test9 vindt plaats met header("Location:https://www.xxxxx.com/test9.php";) en exit()

Helaas krijg ik alleen een foutmelding: “Kan het bestand niet bewerken”.
De url vermeldt www.xxxxx.com/test9.php
De echo voor $getal1 en 2 in test7 komt niet op het scherm.
Idem voor test9. Ook “Dit is test9” komt niet op het scherm.

Wat gaat hier niet goed?


test7.php
<?php
$getal1 = 10;
$getal2 = 5;
echo $getal1 ." " .$getal2;
header("Location: https://www.xxxx.nl/tijdelijk/test9.php"); 
exit();
?>



Test9.php
<?php
include 'test7.php';
echo "dit is test9 " ."<br>";
echo '$getal1 "<br>" $getal2;
?>
Ben Bijwel op 29/09/2025 19:51:43


[size=xsmall]Toevoeging op 29/09/2025 19:55:54:[/size]

Ik zie geen oneindige loop.
In test7 spring ik naar test9 en dan is het afgelopen.
Alleen in test9 vraag ik om de variabelen uit test7.
Dat is toch geen loop?


In test9 in de eerste regel roep je test7 weer aan:

include 'test7.php';

Dat creëert een loop.

Daarnaast klopt je syntax niet:

echo '$getal1 "<br>" $getal2;

Moet zijn:

echo $getal1 . '<br>' . $getal2;

test7.php
<?php
$getal1 = 10;
$getal2 = 5;
?>

test9.php
<?php
include 'test7.php';
echo "dit is test9 <br>";
echo $getal1."<br>".$getal2;
?>

Roep gewoon test9.php aan.
Of noem de test bij hun naam in plaats van deze een nummer te geven.
als je test7.php aan zou roepen, zou er een foutmelding "headers already sent" moeten komen.

Op regel 4 staat "echo". Er komt nu output naar het scherm.
Output wordt standaard gezien als tekst. Dus er komt een header "content-type: html/text" en nog wat info. De browser weet nu wat eraan komt: tekst.

Geen plaatje, geen pdf en belangrijk: geen redirect.

Die output zou mogen komen.

Maar op regel 5 kom je vrolijk aanzetten met een nieuwe header.
Los van wat die header vertelt: je bent te laat.

Het zou hetzelfde zijn, als dat je nadat je deze output hebt gestuurd, aankomt met "oja, het is geen tekst maar een plaatje". Je browser is al bezig met de verwerking.

Escape zou zijn, als je output buffering aan hebt staan. Dan mag je tot x bytes output klaar zetten voor versturen, zonder dat dat werkelijk verstuurd wordt. Moet je niet doen, want dat kan tot rare fouten leiden.
Bijv. dat een script goed werkt voor een gebruiker die iets met het adres "a-straat 1 in Dorp" doet, maar dat het misgaat bij "laan van hier tot ginder en verder 9999 in Groot-Ommelanden-en-Daarnaast" omdat je over je bytes heen gaat.

-- dat terzijde

Maar roep je test9.php direct aan, dan wordt test7 daarin opgenomen via include.
Dus regel 2 wordt dan in feite vervangen door de hele inhoud van test7.php.

Waarbij je nooit voorbij de exit regel komt.

Zou de redirect werken ondanks de headers-sent, dan roept het script zichzelf weer aan.


--
Wat is eigenlijk het doel dat je probeert te bereiken?
Waarom niet gewoon met een session werken?
Zo te zien is Ben een beginner, dus ik denk dat we het een beetje simpel moeten houden.

Ik denk dat hij gewoon aan het testen is hoe hij variabelen vanuit het ene bestand in het andere bestand kan gebruiken.

Wat je zou kunnen doen is 2 bestanden maken: index.php en getallen.php

index.php

<?php

include 'getallen.php';

echo 'dit is test<br>';
echo $getal1 . '<br>';
echo $getal2;

?>
getallen.php

<?php

$getal1 = 10;
$getal2 = 5;

?>

Reageren