In mijn header van mijn website heb ik een (nieuwe) menustructuur gemaakt voor mijn programma. Mijn programma werkt met variabelen $_SESSION[]. 3 van deze variabelen moeten juist zijn gevuld om ingelogd te komen.

De nieuwe menustructuur ziet er uit volgens onderstaande code. Er blijken echter maximaal 23 <a> elementen mogelijk.
Als ik nog meer <a> elementen willekeurig toevoeg worden de variabelen $_SESSION[] niet meer gevuld en kan men dus niet inloggen. (24 <a> elementen in onderstaande code)

Weet iemand waar ik het moet zoeken om mijn probleem te verhelpen ?

Ps. Onderstaande code is in elke pagina van mijn programma ge-included. Tevens heb ik bewust elk <a> element even laten verwijzen naar dezelfde pagina.

<!DOCTYPE html>
<html>
<head>
<title>
	
</title>
<link rel="stylesheet" type="text/css" href="test2_style_header.css">

</head>
<body>
<center>

<?php $url ='https://test........nl/';

echo '<br>';
echo '<br>';
echo '<br>';
echo '<br>';
echo '<br>';
echo '$_SESSION["U1"] = '.$_SESSION["U1"].'<br>';
echo '$_SESSION["W1"] = '.$_SESSION["W1"].'<br>';
echo '$_SESSION["I1"] = '.$_SESSION["I1"].'<br>';

	  ?>


	<div id = "rechts_uitlijnen" class = 'header_afbeelding'><section> <?php echo $titel; ?> </section><img src='Afbeelding.jpg' /></div>

<ul class="header_groen">
	<li><a href= '<?php echo $url;?>Home.php' style = 'color : black'>Home</a></li>
	
	<li class="dropdown"><span>Registratie</span>
		<div class="dropdown-content">
		  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
		  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
		</div>
	</li>
	
	<li><a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a></li>
	<li><a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a></li>
	<li><a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a></li>
	<li><a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a></li>
	<li><a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a></li>
	<li><a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a></li>
	<li><a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a></li>
	<li><a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a></li>
	<li><a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a></li>
	<li><a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a></li>

	<li class="dropdown"><span>RVO</span>
	  	<div class="dropdown-content">
	 	  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
	  	  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
	  	</div>
	</li>
	
	<li class="dropdown"><span>Raadplegen</span>
		<div class="dropdown-content">
		  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
		  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
		  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
		  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
		  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
		  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
		  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
		  <a href='<?php echo $url;?>Zoeken.php' style = 'color : black'>Zoeken</a>
		</div>
	</li>

	<li id = "rechts_uitlijnen"><a href='<?php echo $url;?>index.php' style = 'color : black'>Uitloggen</a></li>


</ul>

<table id ="table1">
<TR> <!-- hier volgt de inhoud van elke pagina binnen mijn programma -->
	
</body>

</html>
Maar wat staat er in header.php?
- SanThe - op 29/12/2024 11:45:15

Maar wat staat er in header.php?


Zie mijn eerste post.
Zojuist wilde ik nog aanvullen in mijn eerste post dat de code uit header.php komt maar dat gaat niet meer.
Dit:


<!DOCTYPE html>
<html>
<head>
<title>

</title>
<link rel="stylesheet" type="text/css" href="test2_style_header.css">

</head>
<body>

</body>

</html>

hoort niet in header.php als die wordt geincluded.
M.u.v. <link rel="stylesheet" type="text/css" href="test2_style_header.css"> heb ik het weggehaald. Ook </body> en </html> onderaan header.php. Ik snap je punt dat html elementen niet dubbel moeten worden aangeroepen en ga daarmee aan de slag.
Helaas lost dat mijn probleem niet op en ik verwacht niet dat hier de oorzaak moet worden gezocht voor mijn probleem.
Op internet op jouw pagina klik met de rechter muisknop en bekijk de paginabron. Daar zie je, in ieder geval in Firefox, alle html fouten in het rood.
Hier en daar heb ik wel wat kunnen verbeteren aan mijn html n.a.v. je laatste reactie, bedankt daarvoor. Helaas heeft dat mijn probleem nog steeds niet opgelost. Binnen de <a> element zie ik in ieder geval geen fouten als ik de paginabron bekijk.
Ik hoop dat ook Ivo nog even reageert op mijn vraag n.a.v. zijn reactie.
Als er in header.php 12 <a> staan zie ik geen reden waarom dat dan niet op de site zou staan.
Is het inmiddels opgelost?

Het lijkt erop dat je nog naar $_SESSION schrijft nádat er output naar de client is verzonden. In dit (verkorte) fragment komt bijvoorbeeld de include van inloggen.php en responscheck.php ná <html>, <head>, enzovoort het begin van het HTML document:


<?php
$versie = '26-12-2024';
session_start();
?>

<html>
<head>
<title>Home</title>
</head>
<body>

<center>

<?php
$titel = '...';
$subtitel = '...';
include "header.php";
?>

 <TD align = "center">

<?php
$file = "Home.php";
include "Inloggen.php";
if (isset($_SESSION["U1"]) && isset($_SESSION["W1"]) && isset($_SESSION["I1"])) {
    include "responscheck.php";
?>


Je zou dit kunnen oplossen door de volgorde van allerlei operaties om te gooien, maar een simpelere oplossing is de output buffering (ob) van PHP gebruiken:


<?php
// Ergens aan het begin vóórdat je iets naar de client verzendt:
ob_start('ob_gzhandler');

// <...>

// Helemaal aan het einde na het laatste fragment HTML:
ob_end_flush();
?>
Bedankt Ward. Jouw reactie lijkt inderdaad de oplossing. Door include "Inloggen.php"; direct achter session_start(); te zetten is het probleem opgelost.
Ook de Output Buffering Control van PHP lost het probleem op.
Thanks :)

Reageren