weer een session probleem.
Op pagina1.php wijs ik de waarde toe en vervolgens wordt deze daar ook correct weergegeven. Echter als op pagina2.php de waarde probeer uit te lezen is deze leeg. Instelling browser houdt cookies etc niet tegen en gebruik chrome. geen idee waar om het niet lukt! Iemand een idee?
Onderstaande is de inhoud van pagina1.php
Code (php)
Onderstaande pagina2.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
session_start();
if (isset($_SESSION['security'])) {
echo 'security waarde is:, ' . $_SESSION['security'] . '!';
echo "sessie toewijzing is gelukt";
}
?>
session_start();
if (isset($_SESSION['security'])) {
echo 'security waarde is:, ' . $_SESSION['security'] . '!';
echo "sessie toewijzing is gelukt";
}
?>
Toevoeging op 04/02/2025 12:13:46:
ik zie overigens in de inspector/console geen foutmeldingen
Met deze code is niks mis.
Even voor de duidelijkeheid: Beide scripts draaien op exact dezelfde hostname/(sub)domein?
Gewijzigd op 04/02/2025 12:46:26 door - Ariën -
hoe bedoel je op een apart profiel, onder een andere gebruikersnaam?
https://support.google.com/chrome/answer/2364824
Het kan zijn dat je wat trammelant hebt met andere addon's ofzo. Dus test het eens uit op een schoon profiel naast je normale profiel. En hoe zit het met andere browsers?
Het kan zijn dat je wat trammelant hebt met andere addon's ofzo. Dus test het eens uit op een schoon profiel naast je normale profiel. En hoe zit het met andere browsers?
Gewijzigd op 04/02/2025 12:47:51 door - Ariën -
ik ben op mijn pc ingelogd onder een andere gebruiker en het geprobeerd. maar zelfde probleem
Paul Weiss op 04/02/2025 12:49:12:
ik ben op mijn pc ingelogd onder een andere gebruiker en het geprobeerd. maar zelfde probleem
Maar is dat zeker weten wel een ander profiel in Chrome? Daar heb ik geen ervaring mee. En mogelijk heeft die exacte dezelfde addons als die in gevecht met elkaar zouden zijn.
Dus daarom is mijn vraag of je een ander profiel in Chrome aan kan maken.
Gewijzigd op 04/02/2025 12:51:10 door - Ariën -
Toevoeging op 04/02/2025 12:54:35:
ander profiel gekozen en werkt nog steeds niet. wat een gedoe met die sessions zeg. Heeft iemand een ander idee hoe ik een php variable tussen verschillende pagina's kan controleren?
Wat doet het in Firefox?
Staat je error_reporting wel op maximaal, en display_errors aan?
Voor hetzelfde geldt staat PHP te gillen dat je sessieafhandeling ergens stuk is, en hoor je dat niet.
Gewijzigd op 04/02/2025 13:11:23 door - Ariën -
En boven over pagina1.php en pagina2.php
Gewijzigd op 04/02/2025 13:16:17 door - SanThe -
ik heb foutmelding aangezet via onderstaande. maar krijg geen meldingen te zien!
Toevoeging op 04/02/2025 13:19:53:
de sesssion werkt wel op de eerste pagina. daar wordt deze ook weergegeven. dan is de sessie toch opgeslagen?
Gewijzigd op 04/02/2025 13:27:19 door - Ariën -
Kijk eens met een print_r() naar $_SESSION
Gewijzigd op 04/02/2025 13:27:50 door - Ariën -
https://www.php.net/manual/en/function.session-id.php
Toevoeging op 04/02/2025 14:05:47:
en met inspect in je browser: stuur je ook session cookies mee?
Echter als ik de sessie aanmaak op pagina0.php en ik probeer deze op pagina2.php op te vragen dan werkt deze niet! enige verschil van pagina0.php t.o.v. pagina1.php is dat in pagina0.php de sessie in een if statement is opgenomen.
Waarom werkt dat dan niet?
pagina1.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// Start de sessie om toegang te krijgen tot de opgeslagen gegevens
session_start();
// Sla een waarde op in de sessie
$_SESSION['toegangscontrolenr10'] = 'inhoud variable toegangscontrole nr10';
if (isset($_SESSION['toegangscontrolenr10'])) {
echo 'Welkom, ' . $_SESSION['toegangscontrolenr10'] . '!';
} else {
echo 'niets gevonden!';
}
?>
// Start de sessie om toegang te krijgen tot de opgeslagen gegevens
session_start();
// Sla een waarde op in de sessie
$_SESSION['toegangscontrolenr10'] = 'inhoud variable toegangscontrole nr10';
if (isset($_SESSION['toegangscontrolenr10'])) {
echo 'Welkom, ' . $_SESSION['toegangscontrolenr10'] . '!';
} else {
echo 'niets gevonden!';
}
?>
pagina2.php (opvragen sessie)
Code (php)
Wanneer de sessie dus aangemaakt wordt in een if statement zoals hieronder dan kan ik deze dus niet op pagina2.php opvragen! onderaan kan de sessie op deze pagina wel opgevraagd worden, maar daarbuiten dus niet!
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
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
<?php
$gebruikersnaamdatabase = "paul";
$gebruikersnaam = "paul";
$wachtwoorddatabase = "geheim";
$wachtwoord = "geheim";
if ($gebruikersnaamdatabase == $gebruikersnaam and $wachtwoorddatabase == $wachtwoord)
{
echo "gebruiker en wachtwoord zijn gelijk";
session_start();
$_SESSION['toegangscontrolenr10'] = 'inhoud variable toegangscontrole nr10';
}
else
{
echo "gebruikers en/of wachtwoord niet gelijk aan elkaar";
}
if (isset($_SESSION['toegangscontrolenr10'])) {
echo 'Welkom, ' . $_SESSION['toegangscontrolenr10'] . '!';
} else {
echo 'niets gevonden!';
}
?>
$gebruikersnaamdatabase = "paul";
$gebruikersnaam = "paul";
$wachtwoorddatabase = "geheim";
$wachtwoord = "geheim";
if ($gebruikersnaamdatabase == $gebruikersnaam and $wachtwoorddatabase == $wachtwoord)
{
echo "gebruiker en wachtwoord zijn gelijk";
session_start();
$_SESSION['toegangscontrolenr10'] = 'inhoud variable toegangscontrole nr10';
}
else
{
echo "gebruikers en/of wachtwoord niet gelijk aan elkaar";
}
if (isset($_SESSION['toegangscontrolenr10'])) {
echo 'Welkom, ' . $_SESSION['toegangscontrolenr10'] . '!';
} else {
echo 'niets gevonden!';
}
?>
Toevoeging op 04/02/2025 16:23:57:
ik ben er helemaal aan uit. session_start(); moet helemaal bovenaan de pagina geplaatst worden.
Paul Weiss op 04/02/2025 15:50:05:
ik weet niet wat de id is. maar ik ben wel een stuk wijzer geworden nu. venaan de pagina geplaatst worden.
En heb je Ivo's reactie gezien? Dan weet je hoe je aan dat ID komt. Als die er is, dan is er een sessie aangemaakt. Zo niet, dan spelen er andere dingen.....
Gewijzigd op 04/02/2025 16:36:36 door - Ariën -
net als andere headers, zoals content-type of redirect moet dat dis vóór enige output gebeuren.
echo Gebruiker of password niet gelijk
veroorzaakt dat er aan de browser verteld moet worden wat voor inhoud er aan komt.
een helder content-type hrmtml/text.
daarna is het niet meer mogelijk om nog sessiin cookie te sturen. Gevolg is dat je browser het sessies id niet weet en die dus ook niet kan meesturen met je 2e request.
daarom zegt men vaak dat sessionstart als eerste moet komen.
dat is niet per se zo, maar moet wel voor de headers verstuurd zijn.
Bedankt voor de toelichting