varför måste jag ställa in säkerhetsinställningarna i internet explorer till lägsta nivå för att kunna logga in i min sida? kan man inte tillåta sessions direkt.
här har ni alla info:
http://proximus.campus.luth.se/~proximus/test.php
21 svar · 465 visningar · startad av jboy_87
varför måste jag ställa in säkerhetsinställningarna i internet explorer till lägsta nivå för att kunna logga in i min sida? kan man inte tillåta sessions direkt.
här har ni alla info:
http://proximus.campus.luth.se/~proximus/test.php
Själv kör jag på inställningen mellanhög för sekretess, och har inga problem med sessionscookies.
Med däremot kan IE6 ge problem när du har en domän i ditt adressfält, och sedan har ett frameset där du i en frame har din sida som ligger på en annan domän.
Då kan säkerhetsinställningarna i IE vägra att sätta sessionscookien.
det måste gå ju https://www.silverplanet.se kör ju med php och sessions funkar?
när jag kör med mitt domän namn så funkar inte sessions damn vad konstigt vad har sessions med domän namnet att göra? Och hur ska jag ta mig till?
Ja, men silverplanet har inte en annan domän i sin frame.
Det går även med annan domän i en frame, men det kräver lite mer arbete vid kodning.
Om du testar med en annan webbläsare (t.ex Mozilla eller Opera), gör det någon skillnad då ?
Har du någon länk till din sida där det inte går ?
jboy_87 skrev:
när jag kör med mitt domän namn så funkar inte sessions damn vad konstigt vad har sessions med domän namnet att göra? Och hur ska jag ta mig till?
Förstår jag dig rätt nu att du har en domän i adressfältet och en domän i en frame?
Säkerhetsinställningarna i standardinställning för IE6 tillåter inte att du sätter cookies då.
jepp kör med det!
hmm hur ska jag göra då byta domän eller?
..
Kan du inte få domänet att peka på servern har du en litet problem, eller rättare sagt ett större arbete framför dig.
Först. Du måste ha session_start() överst på ALLA sidor. Bryts kedjan i dina länkar (en sida utan session_start) så tappar du sessionen.
Jag förmodar att du inte har rätt att gå in och ändra i php.ini.
Annars kunde du ändrat session.use_trans_sid till On.
Detta går även att göra med en htaccess-fil om du kör windows/Linux, men hur den ska se ut vet jag tyvärr inte.
Om du inte kan ändra i php.ini så får du lägga till sessionsid på alla länkar och liknande:
<!-- HTML-läge -->
<a href="sida.php?<?=SID ?>">Länk</a>
<?php
// PHP-läge
echo "<a href=\"sida.php?".SID."\">Länk</a>";
Men jag tror det borde finnas någon här som kan hjälpa dig sätta ihop en sådan htaccess-fil (under förutsättning du kör Unix/Linux).
Sedan, oberoende inställning av session.use_trans_sid, så är sannolikheten stor att du behöver lägga till det på olika former av redirect med PHP eller javascript:
<!-- javascript -->
<script type="text/javascript">
<!--
document.location.href = 'sida.php?<?=SID ?>';
// -->
</script>
<?php
// PHP-läge
header("Location: sida.php?".SID);
jag har tillgång till filen kör linux ska jag bara sätta session.use_trans_sid till on. kommer det och funka då?
Ja om du lägger till SID på dina redirect typ header("Location: ") i PHP eller någon form av redirect i javascript. Se senare delen av mitt tidigare inlägg.
Nu kommer du att föra sessionsid vidare i URL-en, så det är viktigt att din besökare inte går på en sida som inte har session_start() överst. Då kommer sessionid att försvinna från URL-en och dina besökare kommer att tappa sin session.
Det kan t.ex vara idé att låta externa länkar öppnas i ett eget fönster.
session_start fungerar som så att först kollar den om det finns en sessionscookie. Finns den så är allt ok och sessionen hämtas upp.
Finns ingen cookie så kollar session_start om sessions-namn/id finns i URL-en. Finns den det så hämtas sessionen upp, och på sidan läggs sessionsid till på alla länkar innan sidan skickas från webservern.
Gör du på detta viset så borde det fungera för dig, även med högre säkerhet i webbläsarinställningarna.
OBS! Efter ändringar i php.ini så måste du starta om webservern för att ändringarna ska gälla.
-
session_start kör jag på alla sidor, sidan funkar ju när jag skriver in ip adressen!
hmm men jag vill ju inte få bort domännamnet den kommer väll gå bort och ip adressen kommer och visas när jag kör då via redirect?
Redirecten körs ju i en frame, så den kommer inte att påverka det du har i adressfältet. Du laddar alltså bara om innehållet i framen med ny sida.
Ditt domännamn kommer att stå kvar i adressfältet.
om man köper en riktig domän dvs utan pekning kommer det och funka då utan redirect?
varför dör session efter nåra min? vill göra så att den aldrig dör bara när användaren stänger webbläsaren!
kan det vara det här?
session.cache_expire = 180
Har du en domän som pekar på din webservers IP-nummer så ska det fungera med cookies.
Som det är nu har du en domän som pekar mot ett ip-nummer. Här har du ett frameset där din sida, med en annan domän, ligger i en frame.
jboy_87 skrev:
varför dör session efter nåra min? vill göra så att den aldrig dör bara när användaren stänger webbläsaren!
För det mesta tycker jag problemet verkar vara tvärtom :)
Det som reglerar cookiens livslängd är session.gc_maxlifetime, eller som det står i php.ini:
; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
Det ska alltså till 24 minuters inaktivitet för att sessionen ska rensas bort. Detta värde (1440 sekunder) kan du öka.
Nu är inte detta hela sanningen, för det påverkas också av gc_probability och gc_divisor. Är dessa 1 respektive 100 så innebär det att det är en chans på hundra att utrensningen av för gamla sessioner kommer att göras när session_start körs. Det innebär att när du har lite trafik på servern så kan sessionen leva en bra stund längre.
Sen är det ju ditt val, men personligen kan jag inte förstå varför det ska finnas för anledning till att sessionen ska leva längre. Så länge personen är aktiv så kommer ju sessionen att fortleva. Och går de från datorn, så är det ju ett sätt att fixa en automatisk utloggning (om du nu har inloggning i din session).
jag kör ett annat trix med automatisk utloggning!
Ser att jag var trött igår, eller så var det sviter av fredagen :)
Jag skrev så här:
Det som reglerar cookiens livslängd är session.gc_maxlifetime
Det ska naturligt visa vara
Det som reglerar sessionens livslängd är session.gc_maxlifetime
Cookien lever så länge webläsaren är igång.
nu har jag session.use_trans_sid = on varför funkar det inte!