Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Settare cookie valido per più domini

    Ciao a tutti,
    in un sito setto i parametri di sessione con session_set_cookie_params() e li rendo validi per un pool di sottodomini di A.IT per intenderci UNO.A.IT, DUE.A.IT e così via, e dopodichè apro la sessione con session_start().
    La mia domanda è se secondo voi esiste un sistema per sharare la sessione tra più sottodomini, intendo fare in modo che la mia sessione sia valida per *.B.IT e *.C.IT, sottolineando che tutti questi domini si trovano sulla stessa macchina, e quindi poter scambiare i dati dei cookie fra i vari domini (E' necessario causa carrello virtuale basato su variabili di sessione).
    Fare una tripla chiamata a session_set_cookie_params() mi sembra un errore logico...
    L'unica è ovviare per un sistema customizzato scritto a mano di gestione delle sessioni utente? Oppure riesco ad usare un workaround?

  2. #2
    Non è possibile settare un cookie per un dominio diverso da quello dove risiede lo script (a meno che si tratti di un sotto dominio, etc.).

    Un workaround è gestire le sessioni tramite database e far si che quando l'utente arriva per la prima volta sul sito, venga impostata un SID comune per tutti i domini che ti interessano (es. utilizzando dei finti tag IMG che puntano ad uno script PHP sui vari domini ed a cui viene passato manualmente lo stesso SID tramite query string).

  3. #3
    Ok, quindi l'unica soluzione è un session management casereccio fatto a mano...
    Ma ti faccio un'altra domanda

    - dominio A.it
    - sottodominio uno.A.it
    - sottodominio due.A.it
    - Url rewriting tramite apache B.it -> uno.A.it
    - Url rewriting tramite apache C.it -> due.A.it

    In questo caso non funziona comunque? Perchè teoricamente il mio server web riconosce B.it come *.A.it e stessa cosa per C.it ... viene riconosciuto come *.A.it ... o no?

  4. #4
    Non funziona comunque perchè il cookie settato per A.it non sarà visibile in B.it e C.it.

    Puoi verificarlo con un'estensione tipi LiveHTTPHeaders

  5. #5
    Grazie mille, non conocevo questa estensione, ormai avevo trovato già tutto quanto quello che mi serviva con firebug, ma la visualizzazione degli header è un pò macchinosa, userò questo...
    E intanto mi metterò all'opera per crearmi la gestione delle sessioni ...
    Grazie dell'aiuto

  6. #6
    No attenzione, forse c'è un metodo...
    http://www.15seconds.com/issue/971108.htm
    Il problema è che non riesco molto a decodificare quello che viene fatto in ASP e trasformarlo nel mio caso in PHP, non riesco proprio a capire il concetto...qualcuno mi aiuta?!?

  7. #7
    Il metodo ASP indocato è lo stesso di quello suggerito nel mio primo post ...

  8. #8
    Ok, allora non ho capito la tua soluzione, pensavo intendessi un'altra cosa
    Mea culpa
    Quindi tecnicamente mi consigli di fare così:

    Entrata in A.it (1a volta) -> richiamo immagine fake di B.it e C.it che crea cookie con lo stesso SID di A.it
    Entrata in B.it (1a volta) -> stessa cosa
    Entrata in C.it (1a volta) -> stessa cosa

    Altrimenti se il cookie esiste già non deve far nulla giusto?

  9. #9
    Più che settare il cookie, avvii la sessione con lo stesso SID.

  10. #10
    Nada, ho problemi...
    Ti spiego

    Pagina test.php su A.it

    codice:
    <?php
    	//session_set_cookie_params (0, "/", ".A.it");
    	session_start();
    	$_SESSION['prova'] = 'ciao';
    ?>
    
    [img]www.B.it/cookie.php?k=<?php echo session_id(); ?>[/img]
    <iframe src="www.B.it/readcookie.php"></iframe>
    Pagina cookie.php su B.it

    codice:
    <?php
    	session_id($_GET['k']);
    	session_start();
    ?>
    Pagina readcookie.php su B.it

    codice:
    <?php
    	session_start();
    	echo session_id() . '
    ';
    	echo $_SESSION['prova'];
    ?>
    La pagina readcookie.php (su B.it) visualizza un session ID differente da quello di A.it, e ovviamente non visualizza la variabile di sessione 'prova' perchè non esiste in quel session id che è diverso...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.