HamatzuMedlem sedan mars 2005232 inlägg 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;
}
?>
PeeerMedlem sedan mars 20025 907 inlägg Har du session_start() överst på båda sidorna?
Sen hade jag nog ersatt
echo "<script language='javascript'>
location.href=('secure.php');
</script>";
//med
header('location: secure.php');
exit();
HamatzuMedlem sedan mars 2005232 inlägg
Peeer skrev:
Har du session_start() överst på båda sidorna?
echo "<script language='javascript'>
location.href=('secure.php');
</script>";
//med
header('location: secure.php');
exit();
Ja det har jag. Ska testa det där med header.
------------------------
/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)
PeeerMedlem sedan mars 20025 907 inlägg Då har jag dessvärre ingen aning.
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).
:)
aasahMedlem sedan mars 20034 471 inlägg
Hamatzu skrev:
.../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.