$_SESSION[] wordt niet gevuld
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<!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>
<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>
Gewijzigd op 26/12/2024 12:37:08 door Bas van de Ven
Gewijzigd op 25/12/2024 17:47:27 door - SanThe -
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.
Gewijzigd op 25/12/2024 19:18:39 door Bas van de Ven
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.
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?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?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>
$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>
Gewijzigd op 29/12/2024 11:52:05 door Bas van de Ven
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.
Dit is onderdeel van een <table> die nergens te zien is.
Zie regel 75 en 76 in de code van mijn eerste post
Gewijzigd op 29/12/2024 10:25:18 door Bas van de Ven
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<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>
<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>
Toevoeging op 29/12/2024 10:50:16:
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.
Gewijzigd op 29/12/2024 11:54:38 door Bas van de Ven
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
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.
Gewijzigd op 29/12/2024 11:50:22 door Bas van de Ven
Quote:
<!DOCTYPE html>
<html>
<head>
<title>
</title>
<link rel="stylesheet" type="text/css" href="test2_style_header.css">
</head>
<body>
</body>
</html>
<!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.
Gewijzigd op 29/12/2024 12:17:36 door - SanThe -
Helaas lost dat mijn probleem niet op en ik verwacht niet dat hier de oorzaak moet worden gezocht voor mijn probleem.
Gewijzigd op 29/12/2024 12:22:00 door Bas van de Ven
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.
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.
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?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";
?>
$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:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?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();
?>
// 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();
?>
Ook de Output Buffering Control van PHP lost het probleem op.
Thanks :)