webForumDet fria alternativet

Login-hjälp

4 svar · 406 visningar · startad av Hamatzu

HamatzuMedlem sedan mars 2005232 inlägg
#1

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
#2

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
#3

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
#4

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
#5

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.

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