webForumDet fria alternativet

Problem med Sessions i Login

11 svar · 294 visningar · startad av Smultron

SmultronMedlem sedan juli 2002423 inlägg
#1

Jag har skapat en login osv till en sida, men när den ska skapa en Session fungerar det ej, blir inte något fel men det funkar inte att gå in på sidor där jag har lagt till en kontroll som kollar om session är skapad.

Detta är koden för att logga in:

<?
	$open = mysql_connect("localhost", "user", "password");

        $sql = mysql_db_query("data", "SELECT * FROM users WHERE username = '$username'", $open);

        $rad = mysql_fetch_array($sql);

	if($username = $rad["username"] & $password = $rad["password"])
	{
		
	
		$besok = $rad["antal"] + 1;
		$senast = date("y-m-d");

		$userlog = 1;
		$usernfo = $rad[0];
		session_start();
		Session_register("userlog");
		session_register("usernfo");

                $sqlq = mysql_db_query("data", "UPDATE users SET senast = '$senast', antal = '$besok' WHERE username = '$username'", $open);
                mysql_close($open);

		print "INNE!";
		
		$username = $username;
		header("Location: index2.php?id");

	}else
	{
		
		mysql_close($open);
		header("Location: index.php");
	}

	
?>

Detta är koden för att kolla om Session är registrerad:

<?

	if(!session_is_registered("usernfo"))
	{
		header("Location: index.php");
	}

	if(!session_is_registred("userlog"))
	{
		header("Location: index.php");
	}
?>

Hoppas någon kan hitta felet så att det fungerar för mig...

FuelMedlem sedan okt. 20001 285 inlägg
#2

Kör..

session_start();

överst på alla sidor

SmultronMedlem sedan juli 2002423 inlägg
#3

ok ska testa det

SmultronMedlem sedan juli 2002423 inlägg
#4

det fungerar ej. men det måste vara något med att Session inte skapas

UrMeMedlem sedan apr. 2001762 inlägg
#5

Jag hade ett liknande problem. Mitt problem var att jag körde en forward adress (.tk) .. och att i IE var det inställt på att inte acceptera sessioner/cookies mellan domäner typ.

Du kör ingen sådan slags adress?

SmultronMedlem sedan juli 2002423 inlägg
#6

jag kör på min egen webserver, alltså localhost när jag kör till den

MatteMedlem sedan aug. 20002 975 inlägg
#7

Har du register_globals=On ?

Vilken PHP-version kör du ?

SmultronMedlem sedan juli 2002423 inlägg
#8

register_globs är ON ja!
och jag kör PHP Version 4.3.1

MatteMedlem sedan aug. 20002 975 inlägg
#9

Ok, då får vi göra några tester.

I ditt inloggningsskript, ändra

header("Location: index2.php?id");

till

header("Location: index2.php?".SID);

Sedan överst i index2.php:

<?php
session_start();

echo "<pre>";
print_r($_SESSION);
echo "</pre>";

Vad får du för utskrift i index2.php ?

SmultronMedlem sedan juli 2002423 inlägg
#10

hmm, sessions funkar!
det är ju mongo??
det verkar som mitt script för att kolla om Sessions är registrerad eller inte, inte fungerar korrekt för att den skriver ut
Array
(
[userlog] => 1
[usernfo] => 1
)

vilket är rätt för den användaren, om jag ändrar anv'ndare ändras "usernfo", vilket beror på vad som står databasen

SmultronMedlem sedan juli 2002423 inlägg
#11

jag har fått det att funka nu,
ui min "security" kod så använde jag mig av !session_is_registred
istället ände jag denna koden


	if($_SESSION["userlog"] <= 0)
	{
		header("Location: index.php");
	}

thx

MatteMedlem sedan aug. 20002 975 inlägg
#12

Ligger dina sessionsvariabler kvar om du går på fler sidor?

Testa att ändra tillbaka

header("Location: index2.php?".SID);

till

header("Location: index2.php");

Anledningen att jag ville att du skulle lägga till SID var för att kolla om problemet låg i själva sessionen eller sessionscookien.

SID för med sig sessionsid med URL-en, så sessionen går att komma åt även då cookies spökar.

Men nu har du även gjort andra ändringar. Så kolla att din sessionscookie fungerar.

126 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)