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?
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">
<input type="submit" value="Logga in »">
</body>
</html>
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!
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!?
261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25