webForumDet fria alternativet

Sessions ID på länkar? Hur får jag bort?

PHP

8 svar · 758 visningar · startad av pedinho

Medlem sedan nov. 200110 inlägg
Frågan#1

Hoj!

Har ett inloggningsscript där jag sätter en session på startsidan som säger till om man är inloggad eller inte.

Men på länkarna på denna förstasida så visas SessionsId efter länkarna. Detta har gjort att i min gästbok så syns inga meddelanden om man går direkt från förstasidan och in till gästboken.

Några vanliga missar man har gjort eller någe galet i övrigt som nån kommer på?

Har även vissa användare som verkar har problem med sessions. Finns det några inställningar i browsern eller är det mitt script?

Medlem sedan maj 20033 218 inlägg
#2

posta lite kod...

Medlem sedan dec. 200539 inlägg
#3

Fattar inte om du VILL använda sesison id vid länkarna eller inte...? Om du istället vill använda cookies så är det en inställning i PHP.ini:

session.use_trans_sid

testa med:

ini_set("session.use_trans_sid",0);

eller ändra i php.ini-filen. scriptet kommer då inte att funka om cookies är avstängda.

läs mer på http://se.php.net/manual/en/ref.session.php eller posta kod!

//hampus

Medlem sedan nov. 200110 inlägg
#4

Woohoo! Verkar ha löst det första problemet iaf :)
Betyder detta att man döljer sessionsid? Verkar som det iaf.

Medlem sedan nov. 200110 inlägg
#5

Det första problemet har lösts nu... det med länkarna.
Nu är det tydligen så att Sessions inte fungerar för vissa av
mina användare, dvs dom kan inte logga in. Jag har testat
logga in med deras uppgifter, fungerar bra hos mej.

Vart ligger felet? Finns det begränsningar i sin browser, och
hur ändrar man inställningen i så fall.'

För en av användarna fungerade dett att logga in tidigare.

Lite kod:

<?
session_start($logged_in);
include "includes/db.inc";
if ($logged_in == yes)
{
   echo "Du är redan inloggad";   
   die;
}
if (isset($login))
{
 
   //Användarnamn och lösenords kontroll
   $sql = "SELECT * FROM user
   WHERE UserName='$username'
                AND Password='$password' LIMIT 1";
   
   //Ifall tabellen skulle returneras helt tom
   $result = mysql_query($sql)
      or die ("Hittade nada...");
   
   //Ifall användaren anger felaktigt användarnamn eller lösen
   $num = mysql_numrows($result)
   or die ("
   Det verkar som om du inte får vara här...
   ");
      
// ----------------------------------------------------------------------------------
// Hämtar en rad i taget från databasen, fortsätter tills inga fler rader finns att hämta
while ( $a = mysql_fetch_array($result) )
{
   $UserId       = $a["UserId"];
   $AdminLevel   = $a["AdminLevel"];
   $UserName    = $a["UserName"];
}
      
//Ifall användaren har angett rätt användarnamn och lösen
if ($num == 1)
{
                //Ifall användaren loggar in från Start
                if($cat == "start")
   {
      header("Location: index.php");
   }
   
                //Ifall användaren loggar in från Gästboken
   if($cat == "gbook")
   {
      header("Location: gbook.php");
   }
   else
   {      
      if ($AdminLevel==1||$AdminLevel==2||$AdminLevel==3)
      {
         header("Location: admin.php");
      }
      else if ($AdminLevel==0)
      {
         header("Location: members.php");
      }
   }
         
   $User_Id = "$UserId";
   $Anvandare = "$UserName";
   //Variabel som visar att du ÄR inloggad
   $logged_in = "yes";
   //Sparar variablar i Sessioner
   session_register("User_Id", "logged_in", "Anvandare", "AdminLevel");
// ----------------------------------------------------------------------------------
                }
}
 
?>
 
<html>
<head>
<title>Untitled-4</title>
</head>
<form action="login.php?login=yes&cat=<?echo $cat;?>" method="post">
Användarnamn<br>
<input type="hidden" name="inloggad" value="yes">
<input type="text" name="username" size="16" maxsize="50"><br>
Lösenord<br>
<input type="password" name="password" size="16" maxsize="50">
&nbsp; <input type="submit" value="Logga in &raquo;">
       
</body>
</html>
Medlem sedan mars 20025 907 inlägg
#6

pedinho skrev:

Vart ligger felet? Finns det begränsningar i sin browser, och
hur ändrar man inställningen i så fall.'

Tillåter besökaren inte cookies och du sparar sessionIDt i en cookie, så kommer av naturliga skäl besökaren inte att få sitt sessionID. Vilket leder till problem!

/r

session_start($logged_in);

Vad är det för någon variabel du har inne i session_start()? Där ska det inte vara någonting! http://se2.php.net/session_start

Medlem sedan nov. 200110 inlägg
#7

ehm... har tagit bort variabeln som fanns i session_start.
testade allt där ett tag :/

kan ha nåt att göra med det du skriver... att det sparas i cookies.
finns det några andra sätt att använda sessions på? som du inte
sparar i cookies?

Medlem sedan maj 20033 218 inlägg
#8

pedinho skrev:

ehm... har tagit bort variabeln som fanns i session_start.
testade allt där ett tag :/

kan ha nåt att göra med det du skriver... att det sparas i cookies.
finns det några andra sätt att använda sessions på? som du inte
sparar i cookies?

Du kan använda dem utan cookies?

Medlem sedan mars 20025 907 inlägg
#9

För att sessions ska fungera så måste besökaren antingen tillåta sessioncookies, eller så måste du skicka med sessionIDt i adressen hela tiden. Hur ska annars servern kunna skilja på vilka sessioner som hör till vilken besökare!?

254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)