Avatar billede koch Nybegynder
15. juli 2005 - 18:25 Der er 42 kommentarer og
1 løsning

Sessions virker kun på én side!

Jeg er ved at lave log in til nogle sider og det virker ok med brugernavn og password. Problemet er bare, at hvis jeg klikker på en af de andre sider som også kræver login, så spørger den efter brugernavn og password igen... og det skulle jo netop være ideen med at bruge sessions.


Jeg har følgende:


session_start();
   
   
    $brugernavn = isset($_POST['brugernavn']) ? $_POST['brugernavn'] : $_SESSION['brugernavn'];
    $adgangskode = isset($_POST['adgangskode']) ? $_POST['adgangskode'] : $_SESSION['adgangskode'];
        if(!isset($brugernavn))
    {

//brugeren skal logge på

    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">


Brugernavn: <input type="text" name="brugernavn" size = "8" />   

Adgangskode: <input type="password" name="adgangskode"/>

    <input type="submit" value="Log ind" />

<?php
exit;


herefter tester jeg brugernavn og adgangskode... Men det er allerede i det første at den ikke forstår at $brugernavn ikke er sat.

Hvad gør jeg galt her? Jeg har klippet lidt i ovenstående, så helt 'grammatisk' korrekt er det ikke mht. koden.
Avatar billede myplacedk Nybegynder
15. juli 2005 - 18:56 #1
Jeg tror ikke problemet er at læse fra sessionen. Så må problemet være at skrive til den, prøv at tjekke den del af koden igennem.
Avatar billede koch Nybegynder
15. juli 2005 - 19:01 #2
Det eneste jeg har der er vel

//opretter sessionvariable
    $_SESSION['brugernavn'] = $brugernavn;
    $_SESSION['adgangskode'] = $adgangskode;

som kommer lige efter ovenstående...
Avatar billede mr-xmas Nybegynder
15. juli 2005 - 19:59 #3
har du <?php session_start(); ?> på alle sider ?
Avatar billede koch Nybegynder
15. juli 2005 - 20:01 #4
jep... inkluderer ovenstående på alle sider hvor jeg skal bruge det....
Avatar billede mr-xmas Nybegynder
15. juli 2005 - 20:03 #5
hmm så kan jeg ikke rigtig hjælpe
prøv bare at skriv  <?php session_start(); ?>
Avatar billede koch Nybegynder
15. juli 2005 - 20:16 #6
Det er også det der står... Men det der står ovenover er alt sammen med i det script
Avatar billede myplacedk Nybegynder
15. juli 2005 - 21:30 #7
Skud fra hoften: Cookies fungerer vel i din browser, ik'? Du har vel ikke en eller anden lam firewall el. lign. med sin egen mening?
Avatar billede sukos Juniormester
15. juli 2005 - 21:50 #8
Jeg ville nu blot spørge

if(isset($_SESSION["brugernavn"], $_SESSION["adgangskode"])) {
echo"Ok";
}else{
echo"login";
}
Avatar billede Slettet bruger
16. juli 2005 - 00:01 #9
<?
session_start();
   
if(isset($_POST['send']))
    {
    $brugernavn = $_POST['brugernavn'];
    $adgangskode = $_POST['adgangskode'];
    }
else
    {
    $brugernavn = $_SESSION['brugernavn'];
    $adgangskode = $_SESSION['adgangskode'];
    }
   
if(!isset($brugernavn))
    {
    //brugeren skal logge på
    ?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    Brugernavn: <input type="text" name="brugernavn" size = "8" />   
    Adgangskode: <input type="password" name="adgangskode"/>
    <input type="submit" name="send" value="Log ind" />
    <?php
    }
exit;
?>


Sådan ville jeg nok gøre
Avatar billede mr-xmas Nybegynder
16. juli 2005 - 00:09 #10
har du husket at skrive <?php session_start(); ?> helt oppe foroven enden alt andet ?
Avatar billede koch Nybegynder
16. juli 2005 - 00:10 #11
Jeg brugte lige

if(isset($_SESSION["brugernavn"], $_SESSION["adgangskode"])) {
echo"Ok";
}else{
echo"login";
}

og fik følgende.

Når jeg har logget på siden upoad.php så får jeg Ok. Når jeg så klikker på et link til insert.php som også kræver at man er logget på så får jeg login.

Sidste eksempel er vel umiddelbart det samme som det der står i forvejen... eller?
Avatar billede koch Nybegynder
16. juli 2005 - 00:13 #12
Jeg har lige prøvet med dit eksempel wicez også, samme problem!
Avatar billede koch Nybegynder
16. juli 2005 - 00:18 #13
Det ser således ud i sin fulde udstrækning:

        <?php
    //Starter ny session hvis dette er første side som brugeren besøger eller loader variablen som stemmer overens med brugerens session
    session_start();
   
    //Hvis brugeren har logget på er login informationerne blevet postet eller også findes de i sessionarrayet, condition ? value_if_true : value_if_false
    $brugernavn = isset($_POST['brugernavn']) ? $_POST['brugernavn'] : $_SESSION['brugernavn'];
    $adgangskode = isset($_POST['adgangskode']) ? $_POST['adgangskode'] : $_SESSION['adgangskode'];
       
    if(!isset($brugernavn))
    {

        ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html>
            <head>
                <title>
                    Log ind for at opdatere hjemmesiden
                </title>
                <meta http-equiv="content-type" content="text/html; Charset=iso-8859-1" />
                <meta name="title" content="--" />
                <meta name="language" content="dan" />
                <meta name="robots" content="nofollow" /> 
                <meta name="author" content="--" />
                <link rel="stylesheet" type="text/css" href="bclayout.css" />
                <link rel="stylesheet" type="text/css" href="galleri.css" />
            </head>
            <body>
                <?php
                // Fejlmeddelelse
                echo ("<div class=\"text\">Log på med brugernavn og adgangskode.");
               
                //actionatributten ($_SERVER['PHP_SELF']) gør at siden submittes til samme side som form koden
                ?>
                <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                    <table>
                        <tr>
                            <td>
                                Brugernavn:
                            </td>
                            <td>
                                  <input type="text" name="brugernavn" size = "8" />
                            </td>
                        <tr>
                            <td>
                                Adgangskode:
                            </td>
                            <td>
                                <input type="password" name="adgangskode" size = "8" />
                            </td>
                        <tr>
                            <td>
                                <input type="submit" value="Log ind" />
                            </td>
                        </tr>
                    </table>
                </form>
                </div>
            </body>
        </html>
        <?php
            exit;
    }
Avatar billede pallotto Nybegynder
16. juli 2005 - 16:31 #14
Du svarede aldrig på mr-xmas spørgsmål. Og nu vil jeg lige gøre det klart for dig :)
I alle dine filer hvor du skal bruge noget med session der skal der stå HELT I TOPPEN af filen <?PHP session_start; ?> der må ikke være noget oven over den kode.

Det er vigtigt at du ikke starter session senere nede i scriptet. Det skal stå i toppen af din fil.
Avatar billede koch Nybegynder
16. juli 2005 - 17:00 #15
Det første der står er include("accescontrol.php");  og i denne fil står der som det første session_start();

Det burde være ok, ik?
Avatar billede Slettet bruger
16. juli 2005 - 17:01 #16
Jo det gør det.
Avatar billede koch Nybegynder
16. juli 2005 - 17:12 #17
Så skal der vist tænkes når det stadig ikke virker ;)
Avatar billede myplacedk Nybegynder
16. juli 2005 - 21:23 #18
Du svarede heller ikke på denne:
Cookies fungerer vel i din browser, ik'? Du har vel ikke en eller anden lam firewall el. lign. med sin egen mening?
Det er desværre ikke sjældent nok, at jeg støder på den. :-/
Avatar billede Slettet bruger
16. juli 2005 - 22:00 #19
Cookies og firewall er vel irellevant mht. sessioner?
Avatar billede myplacedk Nybegynder
16. juli 2005 - 22:59 #20
wicez:
Nej. Normalt bruges en cookie til overførsel af session-id, og den overførsel er kritisk for at sessioner kan fungere.
En firewall er egentlig ikke relevant, men noget software (som kalder sig selv en "firewall") gør de mærkeligste ting ved HTTP, derfor er jeg nødt til at spørge alligevel.
Avatar billede koch Nybegynder
17. juli 2005 - 01:39 #21
Nu har jeg deaktiveret Norton internet security og microsoft spyware for en sikkerheds skyld og cookies er slået til, men det er samme problem!
Avatar billede hmortensen Nybegynder
17. juli 2005 - 02:37 #22
Prøv at se hvad der står i session arrayet. Under session_start(); der tilføjer du:
print_r($_SESSION);
Avatar billede koch Nybegynder
17. juli 2005 - 03:18 #23
der står bare Array()
Avatar billede Slettet bruger
17. juli 2005 - 08:42 #24
Prøv med

var_dump($_SESSION);
Avatar billede sukos Juniormester
17. juli 2005 - 08:57 #25
Hvordan ser din insert.php ud?

Og hvis register_globals er On, kan du komme galt afsted hvis samme navn til forskellige "værdier",
$_SESSION["brugernavn"] = "noget";

$brugernavn = "noget helt andet";
Avatar billede hmortensen Nybegynder
17. juli 2005 - 08:59 #26
Tror du har fat i noget der sukos, da den her stump så vil overskrive session hele tiden:
$brugernavn = isset($_POST['brugernavn']) ? $_POST['brugernavn'] : $_SESSION['brugernavn'];
    $adgangskode = isset($_POST['adgangskode']) ? $_POST['adgangskode'] : $_SESSION['adgangskode'];
Avatar billede myplacedk Nybegynder
17. juli 2005 - 09:19 #27
Prøv nederst på begge sider (både den der skriver til sessionen, og den der prøve at læse) at indsætte dette:

echo '<p>SID: '.SID,'</p>';
var_dump($_SESSION);

Det skal være efter al anden PHP-kode. Så kan du dels få bekræftet en gang for alle, om sessionen overhovedet virker (der skal stå det samme ved SID), og om der bliver gemt korrekt i sessionen.
Avatar billede koch Nybegynder
17. juli 2005 - 20:10 #28
Jeg har ændret $SESSION["brugernavn"] og SESSION["adgangskode"] til hhv. u_name og p_word.
Jeg har prøvet at indsætte ovenstående. Jeg får i accescontrol.php

SID: PHPSESSID=f69d2a2d113134ae12145ff6fa64275e
array(0) { }

og i min insert.php

SID: PHPSESSID=f69d2a2d113134ae12145ff6fa64275e
array(2) { ["u_name"]=> string(7) "test123" ["p_word"]=> string(4) "1234" }
Avatar billede myplacedk Nybegynder
17. juli 2005 - 21:14 #29
Hvad er mon anderledes i forhold til i nat, hvor du sagde $_SESSION var tom?
Avatar billede koch Nybegynder
17. juli 2005 - 23:03 #30
Der står stadig Array() der hvor jeg har indsat print_r($_SESSION); efter session_start(); hvis det er det du mener!
Avatar billede koch Nybegynder
17. juli 2005 - 23:30 #31
Nå! Jeg forsøgte lige med en session_destroy(); for at lave en log ud side og det fik det til at virke efter jeg havde 'kørt den'!
Avatar billede myplacedk Nybegynder
18. juli 2005 - 10:08 #32
> Der står stadig Array() der hvor jeg har indsat print_r($_SESSION); efter session_start(); hvis
> det er det du mener!

Dvs. siden indeholder:
session_start();
print_r($_SESSION);
[...]
var_dump($_SESSION);

Første gang er den tom, men anden gang er der data? Lyder meget mærligt...
Avatar billede koch Nybegynder
18. juli 2005 - 17:29 #33
Det er mærkeligt! Før det virker som det skal, så skal jeg have logget ud, altså session_destroy();!
Avatar billede koch Nybegynder
21. juli 2005 - 01:34 #34
siden indeholder i starten
        <?php session_start();
    print_r($_SESSION);
   
    [...]
    //echo ("<p>SID: ".SID."</p>");
    var_dump($_SESSION);

Det samme er tilføjet efter php-koden i filerne man skal logge ind på.

Første gang jeg ankommer til siden står der følgende:
Array ( )
SID: PHPSESSID=711e0ef39d14028a4af09cfafd06f738

array(0) { }



Når jeg så har logget ind står der følgende:

Array ( )
SID: PHPSESSID=f1062a678aa6f998d84eecebbe14540c

array(0) { }



og på siden jeg er logget ind på:

SID: PHPSESSID=f1062a678aa6f998d84eecebbe14540c

array(2) { ["u_name"]=> string(7) "1234567" ["p_word"]=> string(4) "1234" }



Klikker jeg på et andet link fås følgende:

Array ( )
SID: PHPSESSID=1cdc486b2f500adbf246351c99f99fb5

array(0) { }

og jeg bliver bedt om at logge ind igen.


Efter jeg har klikket log out fås:

Array ( )
SID:

array(0) { }


og på siden jeg logger ind på:

SID:

array(2) { ["u_name"]=> string(7) "1234567" ["p_word"]=> string(4) "1234" }

og herefter kan jeg klikke videre på de forskellige links!
Avatar billede myplacedk Nybegynder
21. juli 2005 - 21:16 #35
Nu kan jeg genkende "mønstret", men nu er det meste af dagen gået, og jeg kan ikke huske hvad årsagen er.

Du kan prøve to ting. Den nemme: Slet alle sessions-filerne i session.save_path, og se om det hjælper.
Det gør det nok ikke, men det er nemt. ;-)

Det er nok en fejl i din kode, som vil stå tydeligere frem, hvis du gør sådan her (Kan i øvrigt bruges på de fleste problemer, hvor man ikke ved præcis hvor fejlen er):

Prøv at koge din kode ned til det simpleste kode, hvor fejlen kan genskabes.
Dvs. tag en kopi af det hele, og fjern alt det, der ikke har med login-proceduren og gøre. Se om fejlen stadig kan genskabes. Fjern al HTML-kode osv. som ikke er nødvendig, for at genskabe fejlen.

Du ender nok med to-tre filer (login, logud og evt. en "vis-sessions-data"-side), som ikke indeholder meget andet end session_start() o.lign., kode til at manipulere sessionsdata, kode til at håndtere HTML-formen og HTML-formen selv.

Med lidt øvelse bliver denne procedure nem, men tidskrævende og kedelig. Ofte vil problemet vise sig inden man er færdig. Kommer man ned på ganske få linjers kode, uden at kunne se fejlen, har man noget som er rigtigt godt til at poste i et forum (fx. Eksperten). Det giver meget større chance for et godt svar, end hvis man poster 2000 linjers kode.
Og så bliver det i øvrigt utroligt meget hurtigere at gøre dette, hvis man udvikler modulært. (Dvs. sammensæt din kode af mindre uafhængige moduler.)
Avatar billede koch Nybegynder
24. juli 2005 - 11:53 #36
Så er alt det overflødige fjernet, men jeg har samme problem. Koderne ser nu således ud:

accescontroltest.php (som inkluderes i alle filerne som der kræver login)

<?php session_start();

    $brugernavn = isset($_POST['testu_name']) ? $_POST['testu_name'] : $_SESSION['testu_name'];
    $adgangskode = isset($_POST['testp_word']) ? $_POST['testp_word'] : $_SESSION['testp_word'];
   
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html>
            <head>
                <title>
                    Test af sessions
                </title>
                <meta http-equiv="content-type" content="text/html; Charset=iso-8859-1" />
            </head>   
            <?php

   
    if(!isset($brugernavn))
    {
        ?>
            <body>
                Angiv brugernavn og adgangskode.
                <br /><br />
                <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" />
                Brugernavn: <input type = "text" name = "testu_name" size = "8" />
                Adgangskode: <input type = "password" name = "testp_word" size = "8" />
                <input type = "submit" value = "Log ind" />
                </form>

            </body>
        </html>
        <?php
        exit;
    }

    //hvis brugernavn er sat
    else
    {
        $_SESSION["testu_name"] = $brugernavn;
        $_SESSION["testp_word"] = $adgangskode;
   
        require("functions_hp.php");
        opret_forbbruger();
       
        $result = mysql_query("SELECT * FROM bruger WHERE username = '$brugernavn' && password = '$adgangskode'");
   
        luk_forbbruger();
       
        //hvis der ikke er noget resultat fra forespørgslen
        if (!$result)
        {
            $resultat_mes = "Der opstod en fejl.";
            ?>
                <body>   
                    <?php // Fejlmeddelelse
                        echo ("Fejl i forespørgsel <b>$resultat_mes</b>");
                    ?>
                </body>
            </html>
            <?php
            exit;
        }
       
        //hvis ikke der var nogen mathches
        if (mysql_num_rows($result) == 0)
        {
            unset($_SESSION['testu_name']);
            unset($_SESSION['testp_word']);
            ?>
       
                <body>
                        <h2>
                            Log ind
                        </h2>
                        <br />
                        Adgang nægtet. Det indtastede brugernavn eller adgangskode er forkert. Forsøg at <a href = "<?php echo $_SERVER['PHP_SELF'] ?>" />log på igen</a>
                </body>
            </html>
            <?php
            exit;
        }
    }
?>





Så er der to testsider hvor man skal loogge ind:
testsessions.php

<?php include "accescontroltest.php";?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <title>
            Test af sessions
        </title>
        <meta http-equiv="content-type" content="text/html; Charset=iso-8859-1" />
        </head>
    <body>
    <h1>
        Test af sessions
    </h1>
   
    <a href ="testsessions1.php">test sessions 1</a>
    <br />
    <a href ="logouttestsessions.php">logud</a>
   
    </body>
    </html>




og testsessions1.php


<?php include "accescontroltest.php";?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <title>
            Test af sessions
        </title>
        <meta http-equiv="content-type" content="text/html; Charset=iso-8859-1" />
    </head>
    <body>
    <h1>
        Test af sessions
    </h1>
   
    <a href ="testsessions.php">test sessions</a>
    <br />
    <a href ="logouttestsessions.php">logud</a>
    </body>
    </html>



Og til sidst log ud siden:

<?php
    session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html>
            <head>
                <title>
                    Log ud, test sessions
                </title>
                <meta http-equiv="content-type" content="text/html; Charset=iso-8859-1" />
            </head>
            <body>
            <h1>
                Test af sessions
            </h1>
            <?php
            session_destroy();
                echo("Du er nu logget ud.");   
            ?>
            <a href ="testsessions.php">test sessions </a>
            </body>
        </html>




Når jeg logger ind på en side så er det som om at sessions ikke gemmes for jeg bliver bedt om at logge ind på hver side. Dette er kun indtil at jeg har klikket på logud. Herefter logger jeg på en af siderne og det virker efter hensigten.
Avatar billede Slettet bruger
24. juli 2005 - 12:04 #37
Du har da på ingen måde fjernet al unødvendig kode.. Alle dine dokumenter er spækket med html.
Avatar billede koch Nybegynder
24. juli 2005 - 12:13 #38
Nu er h1, h2 mm. fjernet (troede ikke dette havde betydning).

accescontroltest.php

<?php session_start();

    $brugernavn = isset($_POST['testu_name']) ? $_POST['testu_name'] : $_SESSION['testu_name'];
    $adgangskode = isset($_POST['testp_word']) ? $_POST['testp_word'] : $_SESSION['testp_word'];
   
    ?>
        <html>
            <head>
                <title>
                    Test af sessions
                </title>
            </head>   
            <?php

   
    if(!isset($brugernavn))
    {
        ?>
            <body>
                Angiv brugernavn og adgangskode.
                <br /><br />
                <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" />
                Brugernavn: <input type = "text" name = "testu_name" size = "8" />
                Adgangskode: <input type = "password" name = "testp_word" size = "8" />
                <input type = "submit" value = "Log ind" />
                </form>

            </body>
        </html>
        <?php
        exit;
    }

    //hvis brugernavn er sat
    else
    {
        $_SESSION["testu_name"] = $brugernavn;
        $_SESSION["testp_word"] = $adgangskode;
   
        require("functions_hp.php");
        opret_forbbruger();
       
        $result = mysql_query("SELECT * FROM bruger WHERE username = '$brugernavn' && password = '$adgangskode'");
   
        luk_forbbruger();
       
        //hvis der ikke er noget resultat fra forespørgslen
        if (!$result)
        {
            $resultat_mes = "Der opstod en fejl.";
            ?>
                <body>   
                    <?php // Fejlmeddelelse
                        echo ("Fejl i forespørgsel <b>$resultat_mes</b>");
                    ?>
                </body>
            </html>
            <?php
            exit;
        }
       
        //hvis ikke der var nogen mathches
        if (mysql_num_rows($result) == 0)
        {
            unset($_SESSION['testu_name']);
            unset($_SESSION['testp_word']);
            ?>
       
                <body>
                            Log ind
                        <br />
                        Adgang nægtet. Det indtastede brugernavn eller adgangskode er forkert. Forsøg at <a href = "<?php echo $_SERVER['PHP_SELF'] ?>" />log på igen</a>
                </body>
            </html>
            <?php
            exit;
        }
    }
?>




testsessions.php


<?php include "accescontroltest.php";?>

<html>
    <head>
        <title>
            Test af sessions
        </title>
        </head>
    <body>
        Test af sessions
   
    <a href ="testsessions1.php">test sessions 1</a>
    <br />
    <a href ="logouttestsessions.php">logud</a>
   
    </body>
    </html>



testsessions1.php

<?php include "accescontroltest.php";?>

<html>
    <head>
        <title>
            Test af sessions
        </title>
    </head>
    <body>
        Test af sessions
   
    <a href ="testsessions.php">test sessions</a>
    <br />
    <a href ="logouttestsessions.php">logud</a>
    </body>
    </html>


logoutsessions.php

<?php
    session_start();
?>
        <html>
            <head>
                <title>
                    Log ud, test sessions
                </title>
            </head>
            <body>
                Test af sessions
            <?php
            session_destroy();
                echo("Du er nu logget ud.");   
            ?>
            <a href ="testsessions.php">test sessions </a>
            </body>
        </html>
Avatar billede myplacedk Nybegynder
24. juli 2005 - 12:36 #39
Jeg har ryddet lidt op i din kode, og gjort det mere gennemskueligt for dem, som ikke har indsigt i din kode. Jeg har bla. samlet "ens kode" (header/footer) og fjernet database-kald. Har denne kode samme problem hos dig?
Hverken denne kode, eller den du kom med, giver problemer hos mig.

accescontroltest.php:
<?php
require('header.php');

$brugernavn = isset($_POST['testu_name']) ? $_POST['testu_name'] : $_SESSION['testu_name'];
$adgangskode = isset($_POST['testp_word']) ? $_POST['testp_word'] : $_SESSION['testp_word'];
 
    if(!isset($brugernavn))
    {
        ?>
                Angiv brugernavn og adgangskode.
                <br /><br />
                <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" />
                Brugernavn: <input type = "text" name = "testu_name" size = "8" />
                Adgangskode: <input type = "password" name = "testp_word" size = "8" />
                <input type = "submit" value = "Log ind" />
                </form>
        <?php
        include('footer.php');
        exit;
    }

    //hvis brugernavn er sat
    else
    {
        $_SESSION["testu_name"] = $brugernavn;
        $_SESSION["testp_word"] = $adgangskode;
 
     
    if ($brugernavn=='a' && $adgangskode == 'b') {
      $result = 1;
    } else {
      $result = 0;
    }
     
        //hvis ikke der var nogen mathches
        if ($result == 0)
        {
            unset($_SESSION['testu_name']);
            unset($_SESSION['testp_word']);
            ?>
                        <h2>
                            Log ind
                        </h2>
                        <br />
                        Adgang nægtet. Det indtastede brugernavn eller adgangskode er forkert. Forsøg at <a href = "<?php echo $_SERVER['PHP_SELF'] ?>" />log på igen</a>
            <?php
            include('footer.php');
            exit;
        }
    }
?>

footer.php:
<pre><?php print_r($_SESSION); ?></pre>
</body>
</html>

header.php:
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>test sessions</title>
<meta http-equiv="content-type" content="text/html; Charset=iso-8859-1" />
</head>
<body>

<pre><?php print_r($_SESSION); ?></pre>

<h1>Test af sessions</h1>

logouttestsessions.php:
<?php require('header.php'); ?>
<?php session_destroy(); ?>

Du er nu logget ud.
<a href ="testsessions.php">test sessions </a>

<?php require('footer.php'); ?>

testsessions.php:
<?php include "accescontroltest.php";?>
    <a href ="testsessions.php">test sessions</a>
    <br />
    <a href ="logouttestsessions.php">logud</a>
<?php require('footer.php'); ?>
Avatar billede koch Nybegynder
24. juli 2005 - 13:23 #40
Det giver ingen problemer!
Avatar billede koch Nybegynder
24. juli 2005 - 13:35 #41
Jeg er ved at se om jeg kan finde fejlen... For jeg kan umiddelbart ikke se den direkte.
Avatar billede myplacedk Nybegynder
24. juli 2005 - 13:36 #42
Det er utroligt hvad man kan opnå med lidt oprydning. ;-)
Du kan evt. lave et flow-diagram på dit og mit kode, og se hvad forskellen er, eller du kan blot rydde op i din egen kode. ;-)
Avatar billede koch Nybegynder
27. juli 2005 - 15:10 #43
Mange tak. Ja det er jo sygt. Fandt ikke ud af hvad fejlen var desværre, men det virker nu. Beklager den sene tilbagemelding, min com. skulle til rep. ;(
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