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>

<?php
session_start();
?>
<!DOCTYPE html>
<html>
en de rest......
Dank SanThe voor je reactie.
session_start(); komt reeds eerder voor in mijn code per pagina. Ook de controle of de variabelen $_SESSION[] goed zijn gevuld en of je dus bent ingelogd.
Bovenstaande code wordt dus ge-included in al die pagina's. Jouw feedback lost mijn probleem niet op helaas.
Het klinkt alsof je session_start() niet hebt staan voor (VOOR) er output naar je browser gaat.

En dat in combinatie met een automatische buffer die je in php.ini hebt ingesteld: bijvoorbeeld dat php de output buffert tot er minstens 5MB (voorbeeld) aan gegevens is om te versturen.

Gevolg: als je session_start() plaatst binnen die 5 MB, dan zijn er nog geen headers verstuurd en kan PHP dus nog de benodigde headers toevoegen.
Ga je over die 5MB heen, dan komen de standaard header en vist session_start() achter het net. Zou je errors op het scherm tonen, dan krijg je zo'n "headers already sent" melding in je scherm.

Dat leid ik af uit het feit dat jij maar 24 <a> elementen kunt plaatsen: daarna ga je over de buffer heen.

Oplossing (alle 3)
1) zet je error reporting maximaal en stuur de meldingen ook naar het scherm
2) zet die buffer op 0, want als je naar een andere server gaat en de buffer is daar 0 gaat het mogelijk mis. Net als dat het goed gaat voor een webpagina waarop de klants adres staat als "plein 1", maar mis voor een klant die op de "burgemeester van voorst tot voorstlaan 1234"

3) vraag je af wat wél de goede plek is voor session_start, want kennlijk staat die verkeerd.
Dank voor je reactie Ivo.

Een foutmelding wordt niet getoont. Enkel een eigen foutboodschap uit Inloggen.php. Nl. U bent niet ingelogd. met de inlog velden. Naar welke foutmelding ben je opzoek?

Hier een voorbeeld van hoe ik al mijn pagina's heb opgebouwd. De code bovenaan deze topic komt uit header.php. Daar gaat het na te veel <a> elementen fout. header.php zit na session_start(). Geldt jouw reactie dan nog steeds?

Ter volledigheid elke pagina toont licht grijs de versie datum. Vandaar de variabele $versie. Dat kan toch niet het probleem zijn als de pagina (in dit geval Home.php) wordt aangeroepen?


<?php /* 19-2-2015 : login toegevoegd */
$versie = '28-9-2018'; /* titel.php verwijderd. Zit in header.php samen met Style.css */
$versie = '11-5-2020'; /* verwijzing naar demo site gewijzigd. 23-5 : jpg aangepast */
$versie = '26-12-2024'; /* <TD width = 960 height = 400 align = "center"> gewijzigd naar <TD align = "center">  */
session_start(); ?>


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

<center>

<?php
$titel = 'OER van OVIS';
$subtitel = 'Optimalisering En Rendementverbetering van het Schaap';
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"; ?>
<table>
<?php $host = $_SERVER['HTTP_HOST'];
if($host == 'demonstr.......nl' ) { ?>
<tr align = center>
 <td>
	<a href=' <?php echo $url; ?>Instructieboekje.pdf' target="_blank" style = "color : blue"> Instructieboekje </a>
 </td>
</tr>
<?php } ?>
<tr>
 <td>
	<img src="OER_van_OVIS.jpg" width= 650 height= 240 valign = "center"/>
 </td>
</tr>
</table>

</TD>

<?php
Include "menu1.php"; 
} ?>

</body>
</html>

Waar slaat <TD align = "center"> op?
Dit is onderdeel van een <table> die nergens te zien is.
- SanThe - op 29/12/2024 10:09:20

Waar slaat <TD align = "center"> op?
Dit is onderdeel van een <table> die nergens te zien is.


Zie regel 75 en 76 in de code van mijn eerste post
Je opent <table> <tr> <td> maar je sluit ze nergens.
- SanThe - op 29/12/2024 10:33:52

Je opent <table> <tr> <td> maar je sluit ze nergens.


Bij deze de reactie op Ivo aangepast. Nu de volledige code uit Home.php
Dit is de code uit menu1.php
M.i. een hoop onnodig script voor deze topic maar nu wel volledig.


<html>

<body>
<?php include "Foutafhandeling.php";
include "url.php"; 

if($modtech == 0) { $color = 'grey'; } else { $color = 'blue'; }
?>
<td>
Menu : </br>
<hr/style ='color : #A6C6EB'>
<a href= '<?php echo $url;?>Home.php' style = 'color : blue'>
Home</a> <br/>
<hr/style ='color : #E2E2E2'>
<a href='<?php echo $url;?>InvSchaap.php' style = 'color : blue'>
Aanvoer schaap</a>
<hr/style ='color : #E2E2E2'>
<a href='<?php echo $url;?>InlezenReader.php' style = 'color : blue'>
Inlezen reader</a> <br/>
<hr/style ='color : #E2E2E2'>

.... hier staat nog meer code met <a> elementen ......

Beheer</a>
<hr/style ='color : #E2E2E2'>
<a href='<?php echo $url;?>Inkoop.php' style = "color : <?php echo $color; ?> ;">
Voorraadbeheer</a>
<hr/style ='color : #E2E2E2'>
<a href='<?php echo $url;?>Finance.php' style = "color : <?php echo $color; ?> ;">
Financieel</a>
<hr/style ='color : #E2E2E2'>


<?php if(isset($versie)) { ?>
<i style = "color : #E2E2E2;"><?php echo "versie : ".$versie; ?> </i> <br/> <?php } ?>
<i style = "color : #E2E2E2;"><?php echo "ingelogd : ".$_SESSION["U1"]; ?></i>
</td>

</TR>
</table>

</tbody>
</body>
</html>



[size=xsmall]Toevoeging op 29/12/2024 10:50:16:[/size]

Het zijn dus de <a> elementen uit (o.a.) menu1.php die ik wil verplaatsen naar de header. Dus header.php in mijn geval. Zie mijn eerste post.
Ik zie geen header.php.
- SanThe - op 29/12/2024 11:37:55

Ik zie geen header.php.


Zie regel 19 in de code van mijn reactie op Ivo

Reageren