4 berichten aan het bekijken - 1 tot 4 (van in totaal 4)
  • Q:
    Bijdrager
    The JM

    [PHP] Sessie wordt niet fatsoenlijk hervat

    Ik upload bestanden middels Uploadify. Door de Flash Cookie Bug moet ik de id van de sessie meesturen naar het server side-script dat de afbeelding verwerkt, want de sessie wordt niet hervat (de hele pagina is afgeschermd met een login).
    Om te controleren of de bezoeker ingelogd is controleer ik een waarde in de session globale variabele. Om het even makkelijk te maken controleer ik of $_SESSION[‘logged_in’] op true staat.

    Op upload-image.php staat het formulier. Bovenaan de pagina staat deze PHP-code:

    error_log('huidig id: ' . session_id());

    Dan stuur ik de sessie-id mee in een post-array naar de server (uploadify.php) met uploadify middels:

    'scriptData': { 'PHPSESSID': '<?php echo session_id(); ?>' },

    Op uploadify.php wordt de login gecontroleerd en de sessie hervat. Bovenaan deze pagina staan de regels

    if (isset($_POST['PHPSESSID']))<br />
    {<br />
    	error_log('hervat id:' . $_POST['PHPSESSID']);<br />
    	session_id($_POST['PHPSESSID']);<br />
    	error_log('id hervat: ' . session_id());<br />
    }

    Als het goed is wordt hier dus 3x hetzelfde id gelogd, de sessie wordt hervat met dezelfde id en de session globale variable krijgt ook z’n waarden terug. Maar dit is wat ik zie in de log:

    [Tue Oct 11 11:32:59 2011] [error] [client 192.168.1.1] huidig id: 5iu5gr23j94p2omlgk0gq32pemomppb1<br />
    [Tue Oct 11 11:33:10 2011] [error] [client 192.168.1.1] hervat id:5iu5gr23j94p2omlgk0gq32pemomppb1<br />
    [Tue Oct 11 11:33:10 2011] [error] [client 192.168.1.1] id hervat: 5iu5gr23j94p2omlgk0gq32pemomppb1<br />
    [Tue Oct 11 11:33:10 2011] [error] [client 192.168.1.1] Bezoeker is niet ingelogd.

    De id wordt dus goed doorgestuurd, en wordt hervat. Dat werkt. Maar toch krijgt de session globale variabele zijn waarden niet terug. Hoe kan dit?

    Bijdrager
    The JM

    Ik ben al een stap dichterbij. Ik controleer ook de User Agent, en blijkbaar maakt Flash Player een sessie aan met z’n eigen user agent, dus dan loopt het vast.

    Bijdrager
    jimeh

    Heb je op de nieuwe pagina ook een sessie gestart?

    Bijdrager
    The JM

    Ja, alles klopte kwam ik achter. Het enige is dat ik de sessie-id opsla in de database, samen met het IP-adres, de XFF en de User Agent. En juist de User Agent wijkt af, want blijkbaar heeft Flash een eigen User Agent. Dus als ik die dan niet controleer wordt de sessie wel gevalideerd:)
    Evengoed bedankt voor je reactie!

4 berichten aan het bekijken - 1 tot 4 (van in totaal 4)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.