Avatar billede s0mmer Nybegynder
10. februar 2005 - 19:08 Der er 8 kommentarer og
1 løsning

Kan ikke gemme sessions

Hej.
Jeg har lavet et lille simpelt login script:

<?
include("db_con.php4");
$query = $db->SendSQL("SELECT * FROM gipzone WHERE brugernavn='".$_POST["brugernavn"]."' AND password='".$_POST["password"]."'");

session_start();
if($_POST["login"])
{
$brugernavn = $query[0][0];
$password = $query[0][1];
$brugerid = $query[0][2];
$brugertype = $query[0][3];

if(count($query) > 0)
{


//echo count($query);

$_SESSION["brugernavn"] = "$brugernavn";
$_SESSION["password"] = "$password";
$_SESSION["brugerid"] = "$brugerid";
$_SESSION["brugertype"] = "$brugertype";



    if ($brugerid == $_SESSION["brugerid"])
      {
        header("Location:gipzone.php");
}



} // hertil hvis der findes en bruger
}// stop if knap

?>

- Og så på min gipzone.php side har jeg så:

<?
include("db_con.php4");
$query = $db->SendSQL("SELECT * FROM gipzone WHERE brugernavn='".$_SESSION["brugernavn"]."' AND password='".$_SESSION["password"]."'");
$brugerid = $query[0][2];


    if ($brugerid !== $_SESSION["brugerid"])
      {
        header("Location:login.php");
}
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

</body>
</html>
<?
echo "<center><font face='verdana' size='1'>Velkommen ".$_SESSION["brugernavn"]." <br>";
?>


- Problemet er at session'sne ikke ryger med over på gipzone.php eller man ku sige de slet ikk blev lavet? Der er ihvertfald ikke noget Velkommen "navn" og man ryger heller ikke tilbage på login.php pga. session er lig med ingenting
Avatar billede hmortensen Nybegynder
10. februar 2005 - 19:09 #1
Du skal ha session_start(); på den side også.

Det skal stå på alle sider hvor din session skal gælde.
Avatar billede espeholt_jr Nybegynder
10. februar 2005 - 19:09 #2
if ($brugerid !== $_SESSION["brugerid"])  skal være

  if ($brugerid != $_SESSION["brugerid"])
Avatar billede espeholt_jr Nybegynder
10. februar 2005 - 19:11 #3
hmortensen->helt sikker på det, synes jeg ikke jeg plejer at gøre... men kan godt ske ;)

s0mmer->prøv begge ting, og lad os vide hvilke af metoderne der virker, eller om ingen virker ;)
Avatar billede hmortensen Nybegynder
10. februar 2005 - 19:11 #4
Og så er det en god idé at sætte exit; efter header("location..."), da du derved sikre at der ikke bliver udført mere på siden:

if ($brugerid != $_SESSION["brugerid"])
{
  header("Location:login.php");
  exit;
}
Avatar billede s0mmer Nybegynder
10. februar 2005 - 19:17 #5
endnu en pinlig fejl.. jeg skal lige igang med mit php igen :) men tak hmortensen, self var det session_start..
Avatar billede espeholt_jr Nybegynder
10. februar 2005 - 19:21 #6
!= og !== er vel ikke det samme?
Avatar billede s0mmer Nybegynder
10. februar 2005 - 19:24 #7
jeg vender lige tilbage.. altså problemet med at finde mine sessions er løst.. men der hvor dan skal smide brugeren af hvis han egentlig ikke er logget ind fungerer jo ik helt. Fordi hvis brugeren ikke er logget ind er session lig med ingenting. Og den tjekker jo bare hvis ingenting ikke er lig med ingenting så skal jeg videre.. Forstår du hmortensen?
Avatar billede hmortensen Nybegynder
10. februar 2005 - 19:30 #8
Jeg tillader mig at skrive dit script lidt om, men det bliver først senere.
Du har nogle ting der ikke er helt så godt.

Du ligger bl.a. kodeord i din session.
Avatar billede s0mmer Nybegynder
10. februar 2005 - 20:33 #9
Okay, helt iorden. Selvom det ikke behøves. Men mange tak, ser frem til at se det måske hen på aftenen?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester