Jag försöker lösa refererande-sida-problemet som många av oss säkerligen stött på. Variabeln $_SERVER['HTTP_REFERER'] fungerar ju som bekant inte alltid.
Min idé bygger på att man sist på alla sidor lagrar aktuell sidas URL i en session, $_SESSION['referer']. Om man sedan behöver en bakåt-knapp ngnstans så är det bara att skriva <a href="<?=$_SESSION['referer']?>">Bakåt</a>, eftersom det är föregående sida som senast sparats i sessionen. Det fungerar ju galant, tills ngn besökare får för sig att uppdatera sidan mha webbläsarens refresh-knapp, då ligger aktuell sidas URL i sessionen...
Någon som kan hjälpa mig med detta dilemma? Hur kan jag göra, jag är helt slut i skallen...
Alla tips på lösningar mottages med tacksamhet! :)
konsekvensen av lösningen är förstås att "förra sidan" alltid pekar på förra sidan - inte att den stegar bakåt i tiden (klicka på länk 1 sen 2 sen 3 sen "bakåt" => 2, sen bakåt => 3...)
vill du att den ska fungera som en "riktig" bakåtknapp eller ska den bara gå till "förra" sidan... två lite olika saker :)
Det "vanliga" sättet att göra det är väl med javascript:
<a href="javascript:back()">bakåt</a>
Användaren kan inte stänga av sessions (som sparas på servern) utan bara cookies (som sparas på klienten och - enkelt uttryckt - håller reda på vilken session id användaren har). PHP kan själv lösa detta genom att propagera session id via länkarna, så det är inget problem (fast det kan vara lite struligt). läs mer om det på http://se.php.net/manual/en/ref.session.php
Ska du använda scriptet bör du fundera på att rensa arrayn också så att den inte bara växer och växer...,typ:
if (sizeof($_SESSION['ph']>10) { array_pop($_SESSION['ph']); }
... där 10 håller ordning på hur många klick bakåt php ska hålla i minnet...
Är du nöjd med lösningen, markera tråden som löst.