Probleem met sessievariabelen naar volgende pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Peter van Kroonenburg

Peter van Kroonenburg

03/12/2022 12:40:05
Quote Anchor link
Ik heb een probleem met SESSIE variabelen. Ik heb 2 pagina’s gemaakt.


Test_1.php (dit werkt)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?PHP
session_start();
$_SESSION['een']="nummer een";
echo "Sessie een=: ". $_SESSION['een'];
?>

RESULTAAT: Sessie een=: nummer een
------------------------------------------------------------


Test_2.php (dit werkt NIET)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?PHP
session_start();
echo "Sessie een=: ". $_SESSION['een'];
?>

RESULTAAT: Sessie een=:

Kan iemand een tip geven waar dit aan zou kunnen liggen.
PHP Version 7.4.21


[Session]

session.save_handler = files
session.save_path = /Applications/MAMP/tmp/php
session.use_strict_mode = 0
session.use_cookies = 1

; http://php.net/session.cookie-secure
;session.cookie_secure =
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440

; NOTE: If you are using the subdirectory option for storing session files
; (see session.save_path above), then garbage collection does *not*
; happen automatically. You will need to do your own garbage
; collection through a shell script, cron entry, or some other method.
; For example, the following script would is the equivalent of
; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
; find /path/to/sessions -cmin +24 -type f | xargs rm

; Check HTTP Referer to invalidate externally stored URLs containing ids.
; HTTP_REFERER has to contain this substring for the session to be
; considered as valid.
; http://php.net/session.referer-check
session.referer_check =

;
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.sid_length = 26
session.trans_sid_tags = "a=href,area=href,frame=src,form="
;session.trans_sid_hosts=“"


Groet,
Peter
 
PHP hulp

PHP hulp

03/02/2023 20:08:42
 
- Ariën  -
Beheerder

- Ariën -

03/12/2022 12:51:46
Quote Anchor link
Is het wel op hetzelfde domein? En is er een PHPSESSID cookie?
Gewijzigd op 03/12/2022 12:52:07 door - Ariën -
 
Peter van Kroonenburg

Peter van Kroonenburg

03/12/2022 13:19:59
Quote Anchor link
In map: MAMP/tmp/php/ staan de sessie van vandaag
sess_0a9f8gc54to6d431n5o0ocou9k
sess_0j7ssgbee3eaagrpn1oulrvta5
sess_0ken4k0er5leae0mnkevqjs2r1
sess_0m7elqbb9dma0h64p21mb0eesi

Standaard wordt MAMP/...../htdocs gebruikt
In mij site echter op een andere map.
Deze is in de server instellingen correct aangepast en werkt verder ok!

print_r($_COOKIE) geeft geen resultaat.
 
Jan R

Jan R

03/12/2022 18:34:22
Quote Anchor link
Je sluit toch niet de browser tussen de 2 pagina's. want dan stopt de sessie natuurlijk ook.
 
Peter van Kroonenburg

Peter van Kroonenburg

03/12/2022 23:50:55
Quote Anchor link
Nee de browser blijft gewoon open. Ik heb geen idee waar ik moet zoeken waardoor nu de site plat ligt. Balen.
 
- Ariën  -
Beheerder

- Ariën -

04/12/2022 00:00:57
Quote Anchor link
Gezien de sessie op de server gewoon bestaat vermoed ik iets aan de client-side.
Test het eens in een andere browser of ander apparaat.
 
Peter van Kroonenburg

Peter van Kroonenburg

04/12/2022 00:21:03
Quote Anchor link
Ik heb getest op Safari. Reactie hetzelfde als op Chrome.
Firefox voert de scripts niet uit. Geef bij het uitvoeren een blank scherm zonder meldingen.

Toevoeging op 04/12/2022 00:22:05:

Is er misschien een foute instelling te zien op php.ini?
 
- Ariën  -
Beheerder

- Ariën -

04/12/2022 00:39:30
Quote Anchor link
En wat geeft een
print_r($_SESSION);
 
Peter van Kroonenburg

Peter van Kroonenburg

04/12/2022 00:44:56
Quote Anchor link
Ik gebruik momenteel mijn macbook M1. Ik heb vervolgens de 2 bestanden op mijn oude macbook gezet. Hierop draait een andere versie php 7.3.8.

De resultaten zijn exact hetzelfde als op mijn M1.


Toevoeging op 04/12/2022 00:52:42:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?PHP
session_start();
ini_set("display_errors", 1);
error_reporting(E_ALL);
print_r($_SESSION);
?>


Resultaat: Array ( )

Toevoeging op 04/12/2022 00:58:58:

Ik ga er een nachtje over slapen. Erg bedankt vast voor het meedenken. Misschien komt er nog ergens een helder moment.
 
Ozzie PHP

Ozzie PHP

04/12/2022 01:55:50
Quote Anchor link
Probeer eens het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

$success
= session_start();
echo 'Sessie werkt: ' . var_export($success, true);

?>
 
Peter van Kroonenburg

Peter van Kroonenburg

04/12/2022 08:56:27
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?PHP
$success
= session_start();
echo 'Sessie werkt: ' . var_export($success, true);
?>


Resultaat: Sessie werkt: true



Toevoeging op 04/12/2022 08:57:30:

De bovenste is een foutje.


Toevoeging op 04/12/2022 09:18:21:

Ik ben er door jullie hulp van overtuigd dat ik ergens een fout in een script heb staan. Ik ga vanavond verder zoeken. Bedankt.


Toevoeging op 05/12/2022 08:17:55:

Helaas nog geen oplossing. Getracht oplossing te vinden met Cookies. Werkt ook niet. Zou dat vervand kunnen hebben. In de browser staan cookies op TOESTAAN.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?PHP
$value
="Peter";
setcookie("MyCookie", "$value", time()+3600);  /* expire in 1 hour */    
redirect_to("get_cookie.php");
exit();
?>




Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?PHP
$cookie_name
="MyCookie";
if(!isset($_COOKIE[$cookie_name])) {
  echo "Cookie named '" . $cookie_name . "' is not set!";
}
else {
  echo "Cookie '" . $cookie_name . "' is set!<br>";
  echo "Value is: " . $_COOKIE[$cookie_name];
}

?>



RESULTAAT:
Cookie named 'MyCookie' is not set!

Toevoeging op 05/12/2022 08:21:09:

In het eerste script is "$value" = $value dus zonder "
 
Ozzie PHP

Ozzie PHP

05/12/2022 14:44:44
Quote Anchor link
test1.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$success
= session_start();
echo 'Sessie werkt: ' . var_export($success, true);
$_SESSION['test'] = 'aaa';

?>

test2.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$success
= session_start();
echo 'Sessie werkt: ' . var_export($success, true);
var_dump($_SESSION);

?>

Ga in je browser naar test1.php en direct daarna naar test2.php. Wat zie je dan?
 
Peter van Kroonenburg

Peter van Kroonenburg

05/12/2022 15:20:38
Quote Anchor link
1. Sessie werkt: true

2. Sessie werkt: truearray(0) { }




Inmiddels het volgend gedaan;

1. Hele website op een losse SSD geplaatst.
2. Alle instellingen aangepast zodat het werkt.
3. Alles werkt zoals eerst maar sessies en cookies NIET
4. De SSD aangesloten op oude macbook pro en instellingen aangepast
5. Ook hier werkt alles en ook de SESIONS.

Dus samengevat: De site op de SSD werkt wel met SESSION in macbook 1 maar niet met session en cookies op macbook M1
Verder slaat Chrome alle Cookies van andere applicatie gewoon op.
Omdat alles werkt op mijn oude MacBook lijkt er met de scripts op de websites dus niets mis.
Waar zou dan de oorzaak kunnen liggen is nu de vraag.

Ik heb MAMP helemaal verwijderd en opnieuw geïnstalleerd. Maakt geen verschil SESSION op de M1 heeft er geen zin in.
 
Ozzie PHP

Ozzie PHP

05/12/2022 15:46:34
Quote Anchor link
Heb je het al eens in een andere browser geprobeerd?
 
Jan terhuijzen

jan terhuijzen

05/12/2022 17:39:07
Quote Anchor link
Ik zou bijna denken dat je ergens in je php een fout hebt, of per ongeluk iets doet als...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$_SESSION = [];
// Of
unset($_SESSION);

Ik weet niet hoe complex je project is en hoeveel code erin zit, maar in de hele route die je request aflegt door je php scripts kan het misschien toch ergens zitten... Bijvoorbeeld doordat je een keer iets testte.

Ik weet dat php de data die in een sessie zit, opslaat in een file (gebeurt achter de schermen door php). Ik weet niet wat het standaard pad is naar die sessie file(s). Het zal in elk geval in een beveiligde map zitten en niet toegankelijk zijn via het web.
Je zou kunnen proberen:
1. Request naar test1.php
2. Die test1.php schrijft nu een waarde in je $_SESSION. Met andere woorden, er is nu een sessie gemaakt en naartoe geschreven.
3. De sessie moet nu voorkomen in een/de session storage file van php.
4. De sessie file moet je ergens kunnen benaderen en uitlezen, om te controleren of de sessie data is opgeslagen.
Dan weet je in elk geval dat het tot dat punt werkt.
 
Peter van Kroonenburg

Peter van Kroonenburg

05/12/2022 17:43:59
Quote Anchor link
Safari hetzelfde als Chrome. Ook geen SESSIONS en COOKIES.
Vervolgens Chrome verwijderd en opnieuw geinstalleerd. Geen verschil.

Ik heb mijn SSD met de site gekoppeld aan een oud MacPro die ik nog heb staan.
Werkt daar het wel inclusief SESSIES en COOKIES.

De oorzaak zit waarschijnlijk ergens anders maar waar??? Ik heb geen idee wat ik nog zou kunnen proberen.
 
Ivo P

Ivo P

05/12/2022 19:57:50
Quote Anchor link
gebruik je overal of op sommige plekken httpS?

Toevoeging op 05/12/2022 19:58:21:

en kijk met "inspect" ook eens mee met het dataverkeer: is de session-id steeds hetzelfde?
 
Peter van Kroonenburg

Peter van Kroonenburg

05/12/2022 20:21:59
Quote Anchor link
De sessie_id is steeds verschillend. Soms 3 verschillend binnen 1 minuut.
Gebruik is https
 
Ozzie PHP

Ozzie PHP

05/12/2022 22:58:05
Quote Anchor link
Dat komt vermoedelijk omdat ie de gestarte sessie niet kan terugvinden en dus een nieuwe aanmaakt bij ieder pagina request.

Heb je hier wellicht iets aan? Ook iemand die problemen had met $_SESSION op een Macbook.

https://stackoverflow.com/questions/64887059/php-sessions-session-is-empty-running-locally-on-mac
 
Peter van Kroonenburg

Peter van Kroonenburg

06/12/2022 12:14:54
Quote Anchor link
Ik heb de link bekeken. Dit gaat hoofdzakelijk over aanpassen van php.ini.
Op de andere 2 pc waarop ik site tijdelijk heb geinstalleerd draai hij goed met de zelfde php.ini
Toch bedankt voor het meedenken.
Gr
Peter
 
Jan terhuijzen

jan terhuijzen

06/12/2022 16:19:50
Quote Anchor link
Het lijkt er dus in elk geval op dat de webbrowser raar doet en de session id niet in zijn geheugen houdt en dus niet bij elke nieuwe request hetzelfde session id meestuurt.
Zoiets heb ik nog nooit meegemaakt.
Gewijzigd op 06/12/2022 16:20:34 door jan terhuijzen
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.