inlog en uitlog sessie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jesse

Jesse

15/10/2006 12:51:00
Quote Anchor link
Hallo,

ik moet een inlogsysteem schrijven voor een gedeelte van mijn site. Nu is het zo ingedeeld dat er een index.php is, die alle pagina's in zich laad die de user bezoekt, in de variabele $inhoud.

inloggen gebeurd in de file login.php, uitloggen via logout.php. de layout staat in de layout.php. Dat is dus de structuur.

om te controlleren of iemand ingelogd is, laat de layout de sessie variabelen zien die er op dat moment zijn.

Het probleem is dat als ik inlog als user, hij pas na refreshen de sessie gegevens laad zien op het scherm. vervolgens wilt hij de de user niet uitloggen, ook al geef ik aan dat hij dat moet doen.

dit is de index.php :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php session_start();
      $session_id = session_id();
    include("mysql.php");
    include("util.php");

    $menu = "<form method='post' action='../portfolio/logout.php'>
            <input type='submit' />Logout
            </form><br/>
            <a href='main.php'>main</a>"
;
    $inhoud = "Je hebt nog geen inhoud";
    
    if(!isset($_GET['page'])) {
    $page = "login.php";
    session_register("level");
    session_register("email");
    session_register("achternaam");
    session_register("voornaam");
    session_register("username");
    
    }
else {
    $page = make_safe($_GET['page']) . ".php";
    }

    if(file_exists($page)) {
    include($page);
    }
else {
        header("location: ../portfolio/index.php?page=error&type=404");
    die();
    }

    include("layout.php");
?>


en de login.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
    $hulp
= $_SERVER["PHP_SELF"];
    
    
if (!empty($_POST))  {
    // dus er is een inlogpoging gedaan
    
    $query = "SELECT * from gebruiker WHERE username='" . $_POST["ID"] ."'  AND hash = PASSWORD('" . $_POST["PASS"]. "')";    
    $result = mysql_query($query);

    
    if (mysql_num_rows($result) > 0)  {
        echo ("login correct");
        $row = mysql_fetch_array($result, MYSQL_NUM);
        $username = $row[0];    
        $voornaam = $row[1];     
        $achternaam = $row[2];    
        $email = $row[3];      
        $level = $row[5];        
        
        
        
        
        
    
    }

    else {
    die(); header("location: ../portfolio/index.php");
    }
}


    $inhoud = ("
        <div id='text1'>
            <h2> Login please...</h2>
        
            <form method='post' action=$hulp>
                ID:         <input type='text' name='ID' />
                Password:    <input type='password' name='PASS' />
                <input type='submit' />
        </form>
        
        </div>"
);
?>


en de logout:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

session_unset($session_id);
header("location: ../portfolio/index.php");
if(isset($_SESSION['username'])) {

    unset($_SESSION['username']);
    unset($_SESSION['voornaam']);
    unset($_SESSION['achternaam']);
    unset($_SESSION['level']);
    unset($_SESSION['email']);
    unset($_POST["ID"]);
    unset($_POST["PASS"]);
}


?>


ik hoop dat het niet teveel is om in één keer te vragen, maar het is lastig te begrijpen waarom de uitlog code niet werkt...en opnieuw inloggen onder een andere user werkt ook niet; de sessie variabelen bovenin blijven constant de eerste user aangeven.
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.