Newsgroup: it.comp.www.php
Titolo: Tecnica Briciole di pane (breacrumbs) voi come lo fate ?

Salve vorrei inserire nel mio sito
Un "navigatore  che mostri all'utente sempre e dove si trova
ho un problema cioč che non so come fare per tenere traccia
di quei percorsi che non sono legati logicante
tipo: homepage> elenco > scheda
se poi da scheda ad esempio č presente un link contatti
come faccio da contatti a sapere da dove sono venuto ?
...home->elenco->scheda
invece che ad esempio da:
home->elencodue->scheda
Oppure adesempio ipotizando che provengo da una ricerca tipo
home -> ricerca -> scheda
??
Ho pensato di usare le session per tenere traccia del "path"
e funziona il problema e che quando la sessione termina perdo
la traccia !
Qualche idea qualche soluzione ?
grazie
ciao 

 Qualche idea qualche soluzione ?
Non far terminare la sessione! :-)
--
rob4you

 ha scritto nel messaggio 
news:mn.a32b7d6c4...@KIEDIMELO.IT...

Questo però come sai è inevitabile...
Bene almeno è chiaro il problema :-)

 Questo però come sai è inevitabile...
Imposta una scadenza della sessione più "remota", no? :-)


E' poco serio sto "giocando"  sul tempo
sono comportamenti che un utente medio non si aspetta
Pensavo i cookye oppure il db usando il session id
ma se scade la session lo perdo cmq vero ?
---

 sono comportamenti che un utente medio non si aspetta
Che intendi scusa?
Perché "poco serio"?
E poi, dopo quanto tempo non ti va più bene la sessione nel tuo caso?
Se pensi anche ai cookie come alternativa, idem, potresti impostare un 
cookie con una data di scadenza altissima, tipo duecento anni. Cosa ha 
di poco serio questo sistema?
--
rob4you

 
Manca un particolare: per quanto tempo devi conservere queste info? Nei 
post successivi parli di scadenza della sessione, senza quantificare il 
tempo: si tratta di ore, giorni o mesi? nel primo caso, come già 
consigliato, potresti aumentare la durata della sessione; se hai un 
sistema di autenticazione potresti salvarti sul db la strada percorsa da 
tale utente, se stai sviluppando un'applicazione in intranet potresti 
rintracciare l'utente attraverso informazioni del browser (ip, nome del 
browser etc..) e memorizzare il percorso sempre su db
	Francesco


Pensavo i cookye potrebbero andare perchè posso impostarli
in modo che si eliminino alla chiusura del browser
il che puà andare bene...

"yappo" <yappo2 no basta spam@ tisc_ali . it> ha scritto nel messaggio 
news:458a38fd$0$22381$4faf...@reader2.news.tin.it...

Ho scovato un'altro problema (usando i cookye)
Cioè in pratica i cookye e le sessioni sono condivisi
Non è possibile creare dei cookye temporanei per quella particolare
sessione ?
Cioè fare in modo che per ogni pagina aperta sullo stesso sito
ci siano dei cookye diversi ?

 ci siano dei cookye diversi ?
Temo di no, almeno non con php, anche perché se ci pensi, in una 
situazione normale questo comportamento non avrebbe senso.
Inoltre, a parte il check del referrer (che come si è detto più volte 
non è un metodo su cui fare affidamento), per php non fa differenza se 
tu apri una nuova pagina oppure ti trovi sul sito e vai a finire in 
quella pagina: al server arriva sempre la stessa richiesta tipo: GET 
pagina.php HTTP/1.1.
--
rob4you
www.outofmind.eu

 al server arriva sempre la stessa richiesta tipo: GET pagina.php HTTP/1.1.
Però un tricks forse l'ho trovato! per ora solo una idea magari ti viene 
qualche spunto!
pensavo di genereare un numero univoco per ogni pagina e creare
il cookye in questo modo nomesito_idunivoco
ora devo trovare il modo di capire come per per associare
a istanza x idcookye.... 

 a istanza x idcookye....
Come dice il tormentone: "e siamo sempre lì!" :-)
Se tu vuoi cercare un sistema per fare in modo che ogni volta che apri 
il browser, vengano "azzerate le briciole di pane" per quella nuova 
pagina, ma mantenute per quelle già aperte, allora è evidente che devi 
usare le sessioni. Non riesco davvero a capire quale sia il problema 
così grande a impostare un vita della sessione piuttosto lunga.
Se l'utente va a mangiare, e poi torna, a meno che non faccia il cenone 
di sei mesi, una sessione che dura un giorno (o vedi tu il tempo 
giusto) non sarebbe nulla di male.
Tanto più, se scegli di usare i cookie e basta...metti che l'utente ha 
scelto di disabilitare i cookie? Che si fa? Rinunci? :-)
--
rob4you


No vabč piů che altro č un problema di performance pensavo che
potesse essere non troppo corretto da quel punto di vista...

 fa? Rinunci? :-)
Oltre a confermare in toto quanto dice rob4you (il modo
corretto di affrontare il problema e' usare la sessione e
allungarne il tempo secondo le TUE necessita')...
...Si scrive cookie non cookye!!!
Happy Coding =)
Lokar

 potesse essere non troppo corretto da quel punto di vista...
E' esattamente il contrario. Stai scegliendo di riempire la cartella
temporanea del client con una pletora di cookies, utilizzandoli in un
modo in cui non e' normalmente previsto vengano usati, per non usare
*una* variabile di sessione, impostata con il tempo "corretto" per
l'utilizzo del tuo sito.
Lokar 

 Qualche idea qualche soluzione ?
Devi definire in fase di progettazione il sistema.
In pratica, ogni script deve sapere, di suo, dove si trova nella site-map,
e quindi costruirsi la breadcrumb in base a chi e`.
Quindi "l'oggetto" contatti deve appartenere a una scheda, che deve
appartenere a un elenco, che sai che e` in home. In questo modo
ricostruisci (al contrario) la breadcrumb.
Niente sessioni, niente cookies, solo programmazione a oggetti (e
persistenza dei dati degli oggetti, ma questa dovresti gia` averla se sono
in DB).
Bye.

 ricostruisci (al contrario) la breadcrumb.
Ma in questo modo mostri il percorso della pagina corrente rispetto al 
site-map non i vari step che ha fatto l'utente, oppure mi sbaglio?
	Francesco
 

 site-map non i vari step che ha fatto l'utente, oppure mi sbaglio?
Infatti, se non sbaglio invece yappo voleva proprio mostrare la strada 
percorsa dall'utente.
Che poi io non avevo capito il senso, perché se ad esempio io passo 
dieci volte da paginaA a paginaB, dovrebbe mostrarmi:
paginaA->paginaB->paginaA->paginaB->...->paginaA->paginaB ??
Non è che abbia poi molto senso.
In effetti la soluzione di Alessandro, oltre a essere più razionale è 
anche la più "naturale".
--
rob4you


No vabč il problema e che ci sono dei parametri dinamici se avevo solo 
pagine statiche potevo logicamente
ricavarmi tutto il percorso da un qualsiasi punto.
E poi se deve stare su persistenza
devo cmq usare sessioni almeno per avere un id di tabella le session scadano
La scelta migliore mi sembravano i cookie, andava perň non sapevo poi come 
gestire il tutto
se l'utente non aveva i cookie abilitati
---
Io avevo pensato ad un bella soluzione ma č troppo lunga per ora non posso 
implementarla
La butto li :
In pratica creavo un oggetto sitemap pochi metodi niente di che solo un 
gestione gerarchica poi impostavo
dei criteri di selezione magari un oggetto del tipo sitemapCriteriaSelection 
non so che mi permetteva di discrimniare
o usare come "variabile" nel vero senso della parola alcune parti di link 
poi in base ad un
un link tramite siteMap mi ricreavo il breacrumbs
E tutto da definire cmq... 


Non questo non si verifica perchè il "sistema" (e cosi sta funzionando)
capisce che paginaA è già presente ed allora non la pusha nella "coda"
diciamo

 percorsa dall'utente.
OK, ma allora piu` che un breadcrumb e` una history.
La si puo` implementare memorizzando la URL in un array in sessione, e
prendendo ogni volta gli ultimi n (in base a cosa si vuole visualizzare)
elementi. Naturalmente se vengono passati parametri in POST li perdi, ma
se sono in GET li salvi assieme all'URL.
Qualcosa tipo
$_SESSION["history"][] = array("Nome pagina", $_SERVER["REQUEST_URI"]);
Se la sessione scade, perdi la history, ma, perdonate il francesismo,
cassi dell'utente. Anche il sito della mia banca dopo mezz'ora di
inattivita` mi slogga... :)
Ma la history non e' importante che vada persa dopo un tot, mentre il
breadcrumb deve essere costante, e permettermi di capire dove sono nel
sito.
Bye.


Appunto...
Perň spiegaglielo all'utente questo! magari lui prende il link (ingenuo)
e lo passa per e-mail ad un amico
E quello rimane fregato.
--
The framework for develoment user interface on application web-based
http://sourceforge.net/projects/rdmyframework/
 

 diciamo
E nel caso seguente come si comporta?
paginaA->paginaB->paginaC
poi clicco su un link che mi porta a paginaD, quindi:
paginaA->paginaB->paginaC->paginaD
da lì clicco su un link che mi porta (di nuovo) a paginaB.
Cosa ne vien fuori a questo punto?
paginaA->paginaB->paginaC->paginaD->paginaB ?
oppure cosa?
--
rob4you