Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[PHP] Jak przekazać sesję przez GET/POST przy wyłączonej obsłudze cookies?

adam220 06 Lut 2017 11:32 405 7
  • #1 06 Lut 2017 11:32
    adam220
    Poziom 14  

    Witam,
    jak przekazać dane ze skryptu a.php do b.php przy wyłączonej obsłudze cookies?

    a.php

    Kod: php
    Zaloguj się, aby zobaczyć kod


    b.php
    Kod: php
    Zaloguj się, aby zobaczyć kod


    Przy wywołaniu:
    http://mojserwer.pl/b.php?c9f698a40cba247d3b666824f1ff7faa8

    b.php pokazuje że tablica $_SESSION jest pusta.

    Jak przekazać numer sesji przez GET lub POST?

    0 7
  • Pomocny post
    #2 06 Lut 2017 11:59
    pralat
    Poziom 12  

    Możesz jak chcesz, tylko przekaż tę wartość po prostu do session_start, np session_start($_POST['sid']);

    0
  • #3 06 Lut 2017 17:02
    Dżyszla
    Poziom 42  

    Jest jeszcze takie coś, jak globalna definicja SID, która zawiera już parametr gotowy do wywołania (z uwzględnieniem konfiguracji), jeśli tylko przekazywanie nie odbywa się przez ciaska.

    Kod: php
    Zaloguj się, aby zobaczyć kod

    0
  • #5 07 Lut 2017 16:40
    adam220
    Poziom 14  

    @pralat coś mi nie wychodzi przekazanie tego numeru sesji.
    Chyba jest problem ze składnią którą podałeś : session_start($_POST['sid'])
    Czy mógłbyś dopisać do mojego pliku b.php jak to powinno być?

    Na przykład coś takiego nie działa:session_start(e4fa802e692b857f5cef02b35f8868cf)

    W manualu PHP nie znalazłem jak podłaczyć sie do sesji której ID znam.

    Dodano po 1 [godziny] 37 [minuty]:

    @Dżyszla @LED5W @pralat dziękuję za podpowiedzi.
    Mój kod działa.
    Ustawienie

    Kod: php
    Zaloguj się, aby zobaczyć kod

    jest konieczne w każdym skrypcie który ma podłączyć się do istniejącej sesji.

    0
  • #6 07 Lut 2017 16:47
    pralat
    Poziom 12  

    Wprowadziłem Cię w błąd... Prawidłowe wywołanie to:
    session_id ($_POST['sid']);
    session_start();

    W tej chwili jest to już nieistotne, bo masz już inne rozwiązanie - ale wyjaśniam na przyszłość.

    0
  • #7 07 Lut 2017 17:06
    adam220
    Poziom 14  

    Dobrze, że napisałeś, dzięki, wykorzystam to.

    0
  • #8 08 Lut 2017 14:30
    adam220
    Poziom 14  

    Dwie uwagi do rozwiązania @pralat -a (tego poprawionego):

    1) ustawienie

    Kod: php
    Zaloguj się, aby zobaczyć kod
    jest tu zbędne. Konieczne jest tylko gdy numer sesji przekazywany jest "automatycznie" przez GET jako SESSID=abcabcabcabcabcabcabcabc. Tutaj jest użyta funkcja session_id(), która powstrzymuje session_start() od poszukiwania numeru sesji (w get, ciasteczkach, post)


    2) kolejność
    Kod: php
    Zaloguj się, aby zobaczyć kod

    czy
    Kod: php
    Zaloguj się, aby zobaczyć kod

    jest obojętna, skrypt i tak buforuje wysłanie nagłówka do skompletowania danych.

    0