SESSION data verdwijnt.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 volgende »

Ozzie PHP

Ozzie PHP

14/02/2012 23:06:04
Quote Anchor link
SanThe. Als hij dit in t2 binnen z'n formulier zet:

$_SESSION["name"] = $_POST['tx_name'];

en vervolgens POST hij het formulier... dan wordt $_SESSION["name"] gevuld met $_POST['tx_name']; Echter, omdat er geen inputvelden zijn en er dus ook geen $_POST waarden zijn zal de waarde van $_POST['tx_name'] resulteren in NULL. Het wordt dus:

$_SESSION["name"] = NULL;

En op deze manier worden al deze waarden op NULL gezet.
 
PHP hulp

PHP hulp

26/12/2024 04:07:42
 
- SanThe -

- SanThe -

14/02/2012 23:06:10
Quote Anchor link
Als je, door welke oorzaak dan ook. twee keer op t2 komt zijn alle post-waarden weg en wordt de session dus ook geleegd.

Toevoeging op 14/02/2012 23:09:09:

Ozzie PHP op 14/02/2012 23:06:04:
SanThe. Als hij dit in t2 binnen z'n formulier zet:

$_SESSION["name"] = $_POST['tx_name'];

en vervolgens POST hij het formulier... dan wordt $_SESSION["name"] gevuld met $_POST['tx_name']; Echter, omdat er geen inputvelden zijn en er dus ook geen $_POST waarden zijn zal de waarde van $_POST['tx_name'] resulteren in NULL. Het wordt dus:

$_SESSION["name"] = NULL;

En op deze manier worden al deze waarden op NULL gezet.


Dat maakt toch niet uit WAAR dat staat. De POST-waarden komen uit de vorige pagina t1. En niet uit een nog te versturen niet ingevuld formulier.
 
- Jim  -

- Jim -

14/02/2012 23:11:09
Quote Anchor link
Ozzie PHP op 14/02/2012 23:06:04:
SanThe. Als hij dit in t2 binnen z'n formulier zet:

$_SESSION["name"] = $_POST['tx_name'];

en vervolgens POST hij het formulier... dan wordt $_SESSION["name"] gevuld met $_POST['tx_name']; Echter, omdat er geen inputvelden zijn en er dus ook geen $_POST waarden zijn zal de waarde van $_POST['tx_name'] resulteren in NULL. Het wordt dus:

$_SESSION["name"] = NULL;

En op deze manier worden al deze waarden op NULL gezet.


@Ozzie: in t2.php wordt de waarde niet opnieuw ingesteld, maar ze bestaan gewoonweg niet. Maar dan moeten deze gegevens al in de sessie staan.

Zoals in de eerdere post:
even
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
echo session_id(); // Deze regel toevoegen op iedere pagina, dan zijn evt. verschillen tussen de sessies te zien.
?>
Gewijzigd op 14/02/2012 23:12:12 door - Jim -
 
- SanThe -

- SanThe -

14/02/2012 23:12:56
Quote Anchor link
Staan t1, t2 en t3 wel op dezelfde server, hetzelfde domein?
 
Ozzie PHP

Ozzie PHP

14/02/2012 23:13:32
Quote Anchor link
Eens... maar in het formulier in t2 bestaan die $_POST waarden niet meer, maar wordt er wel een formulier verzonden. En... de niet bestaande (lege) $_POST waarden worden in de $_SESSION variabelen gestopt.

Dus op het moment dat je op t2 komt zijn de $_SESSION variabelen gevuld vanuit het formulier uit t1. Op het moment dat het formulier in t2 wordt verzonden worden alle $_SESSION variabelen gevuld met lege waarden. Uitzondering is de id omdat die niet uit een $_POST waarde komt.

Toevoeging op 14/02/2012 23:15:05:

- SanThe - op 14/02/2012 23:12:56:
Staan t1, t2 en t3 wel op dezelfde server, hetzelfde domein?

Wooow... zit je aan het bier? :D
 
- SanThe -

- SanThe -

14/02/2012 23:16:33
Quote Anchor link
Ozzie PHP op 14/02/2012 23:13:32:
Dus op het moment dat je op t2 komt zijn de $_SESSION variabelen gevuld vanuit het formulier uit t1.


Mee eens.


Ozzie PHP op 14/02/2012 23:13:32:
Op het moment dat het formulier in t2 wordt verzonden worden alle $_SESSION variabelen gevuld met lege waarden.


Waarom? Het formulier wordt niet naar t2 maar naar t3 gepost. Dus pagina t2 wordt niet opnieuw geparsed. De session is al gevuld.

Toevoeging op 14/02/2012 23:18:18:

Ozzie PHP op 14/02/2012 23:13:32:
- SanThe - op 14/02/2012 23:12:56:
Staan t1, t2 en t3 wel op dezelfde server, hetzelfde domein?

Wooow... zit je aan het bier? :D


Nee, helaas. Chocomel.
Maar het zou kunnen.
Gewijzigd op 14/02/2012 23:19:14 door - SanThe -
 
- Jim  -

- Jim -

14/02/2012 23:19:29
Quote Anchor link
Ozzie PHP op 14/02/2012 23:13:32:
...

Dus op het moment dat je op t2 komt zijn de $_SESSION variabelen gevuld vanuit het formulier uit t1.
KLOPT

Op het moment dat het formulier in t2 wordt verzonden worden alle $_SESSION variabelen gevuld met lege waarden.
INCORRECT!

Uitzondering is de id omdat die niet uit een $_POST waarde komt.
...


Als de pagina t2 geladen wordt, worden de POST waarden (komend uit t1) in de session geplaatst. No more, no less...
Dat wordt dan ook niet meer verstuurd. Het formulier op t2 is dus, leeg, verstuurd niets anders dan alleen de SUBMIT. De gegevens moeten dan ook in de sessie blijven staan.

Met session_id() kan er dan ook gekeken worden of er telkens een nieuwe sessie wordt gestart of dat een sessie vervolgt wordt.
 
Ozzie PHP

Ozzie PHP

14/02/2012 23:21:35
Quote Anchor link
De session is al gevuld, maar als we kijken naar het resultaat in t3 dan zijn de waarden weg. Ik ga er vanuit dat deze overschreven zijn met lege waarden.

Dit kan trouwens makkelijk getest worden denk ik.

Freek. Vul het formulier op t1 eens in en verzend het. Als je dan op t2 komt moet je niet op de verzendknop drukken, maar je moet via de browser t3.php aanroepen.

Wil je dat eens proberen? En wat gebeurt er dan?
 
- SanThe -

- SanThe -

14/02/2012 23:23:04
Quote Anchor link
Ozzie PHP op 14/02/2012 23:21:35:
Freek. Vul het formulier op t1 eens in en verzend het. Als je dan op t2 komt moet je niet op de verzendknop drukken, maar je moet via de browser t3.php aanroepen.


Dat is wel een interessante test. Goed zo Ozzie.
 
- Jim  -

- Jim -

14/02/2012 23:24:33
Quote Anchor link
Freek is even aan het afkoelen van de frustratie... :D
Test het zelf even op de link die ik gepost heb, of bouw 't even...
Kan je het zelf zien...
 
- SanThe -

- SanThe -

14/02/2012 23:25:35
Quote Anchor link
Freek jansen op 14/02/2012 20:04:42:
wow, boel response. en tot mijn verbazing vrijwel direct .(tja, het was toen al mijn bedtijd) :). tanx guys.


Ik denk dat hij al op één oor ligt. Het is nu reeds later dan toen.
 
Ozzie PHP

Ozzie PHP

14/02/2012 23:27:24
Quote Anchor link
Hehe... ik vrees dat je gelijk hebt.

- SanThe - op 14/02/2012 23:16:33:
Nee, helaas. Chocomel.
Maar het zou kunnen.

Ook lekker :)
 
- SanThe -

- SanThe -

14/02/2012 23:29:23
Quote Anchor link
- Jim - op 14/02/2012 23:05:39:
Ik heb het dus even getest, en eea achter elkaar gezet zoals te zien:
http://phphulp.businessvirtuals.com/82667/

Daar werkt het prima!! Mogelijk een server instelling?


@Jim: Netjes. Tuurlijk werkt het. Maar waarom bij Freek niet is mij nog niet duidelijk.
Gewijzigd op 14/02/2012 23:31:22 door - SanThe -
 
- Jim  -

- Jim -

14/02/2012 23:31:45
Quote Anchor link
Ik denk dus een server instelling.
Ik heb mijn machines alstijd 100% standaard gehouden ivm updates e.d.
session_id() zal telkens verschillen denk ik....??

edit: en daarmee bedoel ik dat ik geen aanpassingen heb gedaan op de default instellingen en geen tweaks om maar iets werkend te krijgen. Dus het gedeelte sessions is ook standaard. Als het bij hem verschilt, is het de mogelijk een server instelling. Dan is nog de vraag welke, en wat te doen.... ???
Gewijzigd op 14/02/2012 23:34:15 door - Jim -
 
- SanThe -

- SanThe -

14/02/2012 23:35:51
Quote Anchor link
- Jim - op 14/02/2012 23:31:45:
Ik denk dus een server instelling.


Ik denk het niet. Ik heb het idee dat ie stiekum toch twee keer op t2 komt en dat daardoor de session weer geleegd word op die ene hardcoded waarde na. Voor mij het meest logisch.
 
- Jim  -

- Jim -

14/02/2012 23:42:07
Quote Anchor link
Ja, een refresh, is ook mogelijk, maar dat is mijn vermoeden niet...
We zullen het misschien wel horen... :p
 
Ozzie PHP

Ozzie PHP

14/02/2012 23:46:10
Quote Anchor link
Vaag verhaal, maar blijkbaar is Freek al lang in dromenland en het is voor ons nu een beetje koffiedik kijken. Ik ben het eens met SanThe dat ik denk dat er iets in de code fout gaat. Waarom zou het immers van pagina t1 naar t2 wel goed gaan? Misschien handig als Freek morgenochtend even de complete code van t2 en t3 wil posten. Wellicht schept dat meer duidelijkheid en een eventuele oplossing.
 
Freek jansen

freek jansen

15/02/2012 13:07:30
Quote Anchor link
ik zie dat er nog verder werd gepuzzeld. Wie daarmee door wil gaan, ik heb de files op http://eurocoinsale.com/test/t1.php gezet, en daarmee ook uitsluitend dat het een server (-inrichting/config) probleem zou zijn.

Info:
in t2 worden wel sql statements gecreeerd. dat is alleen om de SESSION te testen. Er wordt geen verbinding gemaakt met de db zoals je kunt zien.
Gewijzigd op 15/02/2012 13:10:12 door freek jansen
 

15/02/2012 13:24:12
Quote Anchor link
Werkt hier gewoon, probleem ligt op de server.
Gewijzigd op 15/02/2012 13:32:25 door
 
Freek jansen

freek jansen

15/02/2012 13:33:26
Quote Anchor link
Ik heb zojuist alleen de metadata weggehaald en de titel aangepast. Met name omdat daar speciale characters zoals ampersant inzaten.

Daarna lijkt die het ook te doen. Ik blijf het vaag vinden, maar zoals gezegd, dat kan aan mijn zeer beperkte kennis van webpages, incl HTML, liggen.

Het lijkt mij juist niet aan de server te liggen want hij maakt precies dezelfde merkwaardige beweging op mijn local server en op de remote server (zie url)

Dat jij concludeerde datie het doet is na mijn wijziging van de metadata verwijderen, vandaar.
Gewijzigd op 15/02/2012 13:38:34 door freek jansen
 

Pagina: « vorige 1 2 3 4 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.