Jag har suttit och stirrat mig blind på denna kod i säkert en timme nu, men kan inte hitta felet. Felet är att när jag trycker på login så skrivs inte "Du är nu inloggad!" på sidan secure.php. Utan istället skrivs "Du måste logga in via inloggningssidan."
login.php
<?php
//Om man trycker på knappen login händer detta
if(isset($_POST['login'])) {
//Kollar om rätt lösen och pass är ifyllt. Om det är det skapas en session
if($_POST['anv']==$anv && $_POST['pass']==$pass) {
$_SESSION['inloggad']=TRUE;
echo "<script language='javascript'>
location.href=('secure.php');
</script>";
exit;
}
//Detta är felmeddelandet som skrivs ut om du anger fel lösenord eller användarnamn
else {
echo "Du har angivit fel information, eller inget alls, försök igen.";
}
}
?>
secure.php
<?php
if(isset($_SESSION['inloggad'])) {
echo "Du är nu inloggad!";
echo "<br /><a href='secure.php?logout=1'>Logga ut</a>";
}
else {
echo "<br />Du måste logga in via inloggningssidan.<br /><br />
<a href='login.php'>Logga in</a>";
}
//Om man trycker på länken logga ut händer detta
if(isset($_GET['logout'])) {
session_unregister();
session_destroy();
echo "<script language='JavaScript'>
location.href=('login.php');
</script>";
exit;
}
?>
För att lösa felmeddelandet så kan du prova att söka i det här forumet. Lämplig sökterm är "Cannot modify header information" (du kommer hitta en hel del svar på vad just det felet betyder).
.../Edit: När jag testar med header får jag bara ett felmeddelande
Cannot modify header information - headers already sent by (output started at c:\Inetpub\wwwroot\login.php:20)
Felmeddelandet betyder att du skriver ut någonting före den rad som försöker fixa headern. Det kan naturligtvis vara en regelrätt utskrift med echo eller printf, men det kan också vara att du har minst ett tecken (exempelvis mellanslag) före din <?php-tagg.
Om du vill använda header så måste du se till att alla sådana kommandon ligger före utskrift till webbsidan.
137 ms totalt · 3 externa anrop · v20260731065814-full.55e59744