Hvorfor virker mit session ikke?

Tags:    php

Hey udvikleren.dk

Jeg har sidder med asp i 2½ år nu, men jeg har for nylig slået om til php da jeg vil prøve noget nyt og fordi MySQL skulle være mere satbil og mere sikker.

Jeg har et login side og en default.php side. Default kan man kun komme ind på hvis man har rigtig brugernavn og kode ord ellers bliver man sendt tilbage til login igen.

Min to sider ser sådan ud:


login.php

<?session_start();?>

<html>
<head>
<title>Logger dig ind</title>
</head>

<body>



<p>

<form method="post" action="default.php">
<b>Navn</b><br>
<input type="text" name="navn" length="40"><br>
<b>Adgangskode</b><br>
<input type="password" name="adgangskode" length="40"><br>
<input type="submit" name="submit" value="Log ind">
</form>

<?

if ($submit) {
if (($navn == "Admin") && ($adgangskode == "1234")) {
$_session['login'] = 1;
$_session['bruger'] = $navn;

header("location:default.php");
exit;
} else {
$_session['login'] = "false";
$_session['bruger'] = "Wrong Choice man";


}



} else {
echo $_session['login'] ;
echo "Fejl i systemet";
}

?>


</p>
</body>


</html>


Og default.php ser sådan ud:
<?

session_start();
if (!$_session['login'] == 1) {
header("location:login.php");
exit;
}
?>


<html>
<head>
<title>Login.dk</title>
<link rel="stylesheet" type="text/css" a href="../css.css">
</head>

<body>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="brown" class="bottom"><font face="Verdana" size="5" color="black">Login:Corner.DK</font></td>
<td bgcolor="brown" width="70%" class="bottom"><font face="Verdana" size="5" color="black">/<? echo $_session['bruger']; ?></font></td>
</tr>
<tr>
<td>
<!-----------------Menuen----------------->

<table border="0" width="100%">
<tr><td><a href="default.php?page=Slet" class="menu"><img src="../billeder/case.jpg" border="0">Slet:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Opdatering" class="menu"><img src="../billeder/case.jpg" border="0">Opdatering:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Links" class="menu"><img src="../billeder/case.jpg" border="0">Links:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Artikel" class="menu"><img src="../billeder/case.jpg" border="0">Artikel:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Ret_fil" class="menu"><img src="../billeder/case.jpg" border="0">Ret_fil:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Chat_log" class="menu"><img src="../billeder/case.jpg" border="0">Chat_log:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Upload_billed" class="menu"><img src="../billeder/case.jpg" border="0">Upload_billed:Corner.dk</a></td></tr>
<tr><td><a href="default.php" class="menu"><img src="../billeder/case.jpg" border="0">Forside:Corner.dk</a></td></tr>
</table>


</td>
<td bgcolor="white" valign="top"><p>

<?

//Undersiderne hives frem

if ($page == "Slet"){
include("Sider/slet.php") ;
} elseif ($page == "Opdatering") {
include("Sider/Opdatering.php") ;
} elseif ($page == "Links") {
include("Sider/Links.php");
} elseif ($page == "Artikel") {
include("Sider/Artikel.php") ;
} elseif ($page == "Ret_fil") {
include("Sider/ret_fil.php");
} elseif ($page =="Chat_log") {
include("Sider/Chat_log.php") ;
} elseif ($page =="Upload_billed") {
include("Sider/Upload_billed.php");
} else {
include("Sider/Forside.php");
}



?>



</p></td>
</tr>



</table>



<br>
<br>
<br>
<a href="logout.php">Log ud</a>

</body>

</html>



Mit problem er at jeg ikke kan få den til at virke ordentlig og jeg tror at det har noget at gøre med den måde hvor på jeg skriver sessions? Vil i gerne give mig en løsning på hvad jeg gør forkert? Jeg tror måske også at det kan være noget med min php.ini, men jeg ved ikke lige hvad jeg skal lave om på.

På forhånd tak, |MxS




3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Hey udvikleren.dk

Jeg har sidder med asp i 2½ år nu, men jeg har for nylig slået om til php da jeg vil prøve noget nyt og fordi MySQL skulle være mere satbil og mere sikker.

Jeg har et login side og en default.php side. Default kan man kun komme ind på hvis man har rigtig brugernavn og kode ord ellers bliver man sendt tilbage til login igen.

Min to sider ser sådan ud:


login.php

<?session_start();?>

<html>
<head>
<title>Logger dig ind</title>
</head>

<body>



<p>

<form method="post" action="default.php">
Navn
<input type="text" name="navn" length="40">
Adgangskode
<input type="password" name="adgangskode" length="40">
<input type="submit" name="submit" value="Log ind">
</form>

<?

if ($submit) {
if (($navn == "Admin") && ($adgangskode == "1234")) {
$_session['login'] = 1;
$_session['bruger'] = $navn;

header("location:default.php");
exit;
} else {
$_session['login'] = "false";
$_session['bruger'] = "Wrong Choice man";


}



} else {
echo $_session['login'] ;
echo "Fejl i systemet";
}

?>


</p>
</body>


</html>


Og default.php ser sådan ud:
<?

session_start();
if (!$_session['login'] == 1) {
header("location:login.php");
exit;
}
?>


<html>
<head>
<title>Login.dk</title>
<link rel="stylesheet" type="text/css" a href="../css.css">
</head>

<body>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="brown" class="bottom"><font face="Verdana" size="5" color="black">Login:Corner.DK</font></td>
<td bgcolor="brown" width="70%" class="bottom"><font face="Verdana" size="5" color="black">/<? echo $_session['bruger']; ?></font></td>
</tr>
<tr>
<td>
<!-----------------Menuen----------------->

<table border="0" width="100%">
<tr><td><a href="default.php?page=Slet" class="menu"><img src="../billeder/case.jpg" border="0">Slet:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Opdatering" class="menu"><img src="../billeder/case.jpg" border="0">Opdatering:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Links" class="menu"><img src="../billeder/case.jpg" border="0">Links:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Artikel" class="menu"><img src="../billeder/case.jpg" border="0">Artikel:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Ret_fil" class="menu"><img src="../billeder/case.jpg" border="0">Ret_fil:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Chat_log" class="menu"><img src="../billeder/case.jpg" border="0">Chat_log:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Upload_billed" class="menu"><img src="../billeder/case.jpg" border="0">Upload_billed:Corner.dk</a></td></tr>
<tr><td><a href="default.php" class="menu"><img src="../billeder/case.jpg" border="0">Forside:Corner.dk</a></td></tr>
</table>


</td>
<td bgcolor="white" valign="top"><p>

<?

//Undersiderne hives frem

if ($page == "Slet"){
include("Sider/slet.php") ;
} elseif ($page == "Opdatering") {
include("Sider/Opdatering.php") ;
} elseif ($page == "Links") {
include("Sider/Links.php");
} elseif ($page == "Artikel") {
include("Sider/Artikel.php") ;
} elseif ($page == "Ret_fil") {
include("Sider/ret_fil.php");
} elseif ($page =="Chat_log") {
include("Sider/Chat_log.php") ;
} elseif ($page =="Upload_billed") {
include("Sider/Upload_billed.php");
} else {
include("Sider/Forside.php");
}



?>



</p></td>
</tr>



</table>






<a href="logout.php">Log ud</a>

</body>

</html>



Mit problem er at jeg ikke kan få den til at virke ordentlig og jeg tror at det har noget at gøre med den måde hvor på jeg skriver sessions? Vil i gerne give mig en løsning på hvad jeg gør forkert? Jeg tror måske også at det kan være noget med min php.ini, men jeg ved ikke lige hvad jeg skal lave om på.

På forhånd tak, |MxS

Fold kodeboks ind/udKode 

måske skulle du også bruge $_session['login'] = TRUE;
hvis du bruger FALSE, når der er fejl i login
//Krille



du behøver ikke $_SESSION[login] da du bare kan tjekke om navnet er tomt

headers skal være det første der sendes til browseren. Du kan derfor ikke lave om på dem når du har sendt noget html afsted



Hey udvikleren.dk

Jeg har sidder med asp i 2½ år nu, men jeg har for nylig slået om til php da jeg vil prøve noget nyt og fordi MySQL skulle være mere satbil og mere sikker.

Jeg har et login side og en default.php side. Default kan man kun komme ind på hvis man har rigtig brugernavn og kode ord ellers bliver man sendt tilbage til login igen.

Min to sider ser sådan ud:


login.php

<?session_start();?>

<html>
<head>
<title>Logger dig ind</title>
</head>

<body>



<p>

<form method="post" action="default.php">
Navn
<input type="text" name="navn" length="40">
Adgangskode
<input type="password" name="adgangskode" length="40">
<input type="submit" name="submit" value="Log ind">
</form>

<?

if ($submit) {
if (($navn == "Admin") && ($adgangskode == "1234")) {
$_session['login'] = 1;
$_session['bruger'] = $navn;

header("location:default.php");
exit;
} else {
$_session['login'] = "false";
$_session['bruger'] = "Wrong Choice man";


}



} else {
echo $_session['login'] ;
echo "Fejl i systemet";
}

?>


</p>
</body>


</html>


Og default.php ser sådan ud:
<?

session_start();
if (!$_session['login'] == 1) {
header("location:login.php");
exit;
}
?>


<html>
<head>
<title>Login.dk</title>
<link rel="stylesheet" type="text/css" a href="../css.css">
</head>

<body>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="brown" class="bottom"><font face="Verdana" size="5" color="black">Login:Corner.DK</font></td>
<td bgcolor="brown" width="70%" class="bottom"><font face="Verdana" size="5" color="black">/<? echo $_session['bruger']; ?></font></td>
</tr>
<tr>
<td>
<!-----------------Menuen----------------->

<table border="0" width="100%">
<tr><td><a href="default.php?page=Slet" class="menu"><img src="../billeder/case.jpg" border="0">Slet:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Opdatering" class="menu"><img src="../billeder/case.jpg" border="0">Opdatering:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Links" class="menu"><img src="../billeder/case.jpg" border="0">Links:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Artikel" class="menu"><img src="../billeder/case.jpg" border="0">Artikel:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Ret_fil" class="menu"><img src="../billeder/case.jpg" border="0">Ret_fil:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Chat_log" class="menu"><img src="../billeder/case.jpg" border="0">Chat_log:Corner.dk</a></td></tr>
<tr><td><a href="default.php?page=Upload_billed" class="menu"><img src="../billeder/case.jpg" border="0">Upload_billed:Corner.dk</a></td></tr>
<tr><td><a href="default.php" class="menu"><img src="../billeder/case.jpg" border="0">Forside:Corner.dk</a></td></tr>
</table>


</td>
<td bgcolor="white" valign="top"><p>

<?

//Undersiderne hives frem

if ($page == "Slet"){
include("Sider/slet.php") ;
} elseif ($page == "Opdatering") {
include("Sider/Opdatering.php") ;
} elseif ($page == "Links") {
include("Sider/Links.php");
} elseif ($page == "Artikel") {
include("Sider/Artikel.php") ;
} elseif ($page == "Ret_fil") {
include("Sider/ret_fil.php");
} elseif ($page =="Chat_log") {
include("Sider/Chat_log.php") ;
} elseif ($page =="Upload_billed") {
include("Sider/Upload_billed.php");
} else {
include("Sider/Forside.php");
}



?>



</p></td>
</tr>



</table>






<a href="logout.php">Log ud</a>

</body>

</html>



Mit problem er at jeg ikke kan få den til at virke ordentlig og jeg tror at det har noget at gøre med den måde hvor på jeg skriver sessions? Vil i gerne give mig en løsning på hvad jeg gør forkert? Jeg tror måske også at det kan være noget med min php.ini, men jeg ved ikke lige hvad jeg skal lave om på.

På forhånd tak, |MxS

Fold kodeboks ind/udKode 

måske skulle du også bruge $_session['login'] = TRUE;
hvis du bruger FALSE, når der er fejl i login
//Krille



OKai men du kan ikke se andet som måske kan være galt? Jeg henter et navn ned i min session['bruger'] ved at sætte den til $navn, altså $_session['bruger'] = $navn; Det er der vel ikke noget forkert i vel?



t