Gebruikersnaam uit sessie blijft staan

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

John De Zon

John De Zon

12/07/2014 22:58:06
Quote Anchor link
Beste,

ik heb een login systeem dat met het vervelende probleem zit dat als je iemand uitlogd en daarna een ander terug inlogt de gebruikersnaam van de eerste blijft staan. Bijvoorbeeld: ik ben 1 er staat Welkom 1 ik log uit en log in met 2 en er staat Welkom 1.
Hieronder mijn code's:

Logout.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
44
45
46
47
48
49
50
51
52
53
54
55
<?php
include 'config/mysql.php';
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" href="css/main.css" />
        <link rel="shortcut icon" href="images/favicon.png" type="image/png">
        <title>TeamGame: Uitloggen</title>
    </head>
    <body>
        <div id="header">
            <img src="images/logo.png" class="left" />
            <div class="right">
                <table>
                    <tr>
                    <form method="post" action="login.php" style="position:fixed;">
                        <td><label for="userName">Username: </label></td>
                        <td><input type="text" name="userName" class="form_boxText"/></td>
                        
                        <td><label for="password">Wachtwoord: </label></td>
                        <td><input type="password" name="password" class="form_boxText"/></td>
                        
                        <td><button type="submit" name="loginButton" class="button_login" value="Login">Login</button></td>
                    </form>
                    </tr>
                </table>
            </div>
        </div>
        <div id="body" style="padding-left:25%;">
            <table border="0" align="center">                
                <tr>
                <!-- content -->
                    <td height="693" align="center">
                        <?php
//If the user is logged, we log him out
if(isset($_SESSION['userName']))
{

        //We log him out by deleting the username and userid sessions
        unset($_SESSION['userName']);
?>

<div class="message">You are logged out.<br />
                        <?php
} else {
    echo 'We kunnen je niet uitloggen, mischien ben je al uitgelogd.';
}

?>

                    </td>
                </tr>
            </table>
        </div>
    </body>
    
</html>


Mysql.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
session_start();
mysql_connect('localhost', 'root', 'root') or die('Could not conect to MySQL.');
mysql_select_db('root') or die('Could not connect to MySQL database.');
?>


Profile.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
<?php
include 'config/mysql.php';
if(isset($_SESSION['userName'])) {
?>

<!DOCTYPE html>
<html>
    <head>
        <title>TeamCrafted: Profiel</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="http://www.teamgame.tk/css/game.css">
    </head>
    <body>
        <?php include_once("header.php"); ?>
    <div class="content">
            <div>
                <h2>Welkom <?php echo $_SESSION['userName'];?>,</h2>
              <p>op onze browsergame website!</p>
              <p>Hieronder kan je een browsergame naar keuze uikiezen.</p>
            </div>
    </div>
        <ddiv class="image_1">
            <a href="http://www.teamcrafted.tk/browsergame/business_game.php">
                <imdg src="http://www.teamcrafted.tk/browsergame/images/business_game.png" alt="logo" title="TeamCrafted">
            </a>
        </divd>
    </body>
</html>
<?php
} else {
    header('Location: index.php');
}

?>


Ik hoop dat iemand me hiermee kan helpen!


Mvg,
Gewijzigd op 03/04/2017 18:56:02 door - Ariën -
 
PHP hulp

PHP hulp

07/05/2021 00:26:35
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/07/2014 01:31:48
Quote Anchor link
en waar is je login(.php) ?
 
John De Zon

John De Zon

13/07/2014 12:34:37
Quote Anchor link
Login.php linkt aan func_login.php hier de Func_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
<?php
error_reporting('NOTICE');

include 'config/mysql.php';

function
login() {
    $userName = $_POST['userName'];
    $password = $_POST['password'];
    
    $query = mysql_query("SELECT * FROM `logins` WHERE `userName`='$userName' AND `password`='$password'");
    
    $errors = array();
    
    if (empty($userName)) {
        $errors[] = 'Je gebruikersnaam kan niet leeg zijn.';
    }

    
    if (empty($password)) {
        $errors[] = 'Je wachtwoord moet volledig zijn.';
    }
    

    if ($errors==true) {
        foreach ($errors as $error) {
            echo $error.'<br />';
        }
    }
else {
        if (mysql_num_rows($query)==true) {
            echo 'Ingelogd! We sturen je door naar je configuratiescherm.';
            $_SESSION['userName'] = $_POST['userName'];
            include 'config/redirect_profile.php';
        }
else {
            echo 'Login mislukt. Heb je wel een juiste email of een juist wachtwoord ingegeven?';
        }
    }

}


?>
Gewijzigd op 13/07/2014 12:54:38 door John De Zon
 
Ozzie PHP

Ozzie PHP

13/07/2014 14:01:53
Quote Anchor link
>> ik heb een login systeem dat met het vervelende probleem zit dat als je iemand uitlogd en daarna een ander terug inlogt de gebruikersnaam van de eerste blijft staan.

Ik zie dit staan in jouw code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
if(isset($_SESSION['userName']))
{

        //We log him out by deleting the username and userid sessions
        unset($_SESSION['userName']);
?>

Waarom vernietig je niet de complete sessie? Waarom unset je alleen de username?
 
John De Zon

John De Zon

13/07/2014 14:19:51
Quote Anchor link
Hoe doe je dat dan?
 
Victor G

Victor G

13/07/2014 15:43:21
Quote Anchor link
Wat je nu doet is een key uit de array* weghalen, als je de hele array weg wil hebben doe je simpelweg

* $_SESSION is een array

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
unset($_SESSION);
?>
 
John De Zon

John De Zon

13/07/2014 15:49:44
Quote Anchor link
Als ik dat doe gebeurt er niets
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/07/2014 15:58:40
Quote Anchor link
Victor G op 13/07/2014 15:43:21:
Wat je nu doet is een key uit de array* weghalen, als je de hele array weg wil hebben doe je simpelweg

* $_SESSION is een array

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
unset($_SESSION);
?>


daar heb je
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php session_destroy(); ?>
voor.

Maar dan is dus alles uit je sessie weg, ook dingen die niet met inloggen te maken hebben.

Toevoeging op 13/07/2014 16:05:53:

wat gebeurt er in config/redirect_profile.php ?
 
John De Zon

John De Zon

13/07/2014 16:06:10
Quote Anchor link
Ik heb het probleem ook zo nog steeds als ik 2 keer herlaad via de profile.php?id=1 pagina werkt het wel.
 
H Kse

H Kse

13/07/2014 17:10:59
Quote Anchor link
Dit probleem had ik ook gehad ik denk dat dat te maken heeft met dat de eerste refresh je session_destroy() in werking gaat (vernietigen van session).

En bij je 2e refresh de sessions niet meer bestaat vanwege je eerste refresh.

Gewoon logout.php maken en daar session_destroy() doen ?
 
Erwin H

Erwin H

13/07/2014 17:46:43
Quote Anchor link
Victor G op 13/07/2014 15:43:21:
Wat je nu doet is een key uit de array* weghalen, als je de hele array weg wil hebben doe je simpelweg

* $_SESSION is een array

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
unset($_SESSION);
?>


Even de manual lezen:
Quote:
Caution Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal.
 
John De Zon

John De Zon

13/07/2014 18:02:50
Quote Anchor link
@Frank alleen een redirect in html
 
- SanThe -

- SanThe -

13/07/2014 23:13:02
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
session_start();

// Uitloggen
        session_destroy();
        session_id(sha1(microtime()));
        session_start();
?>
 
John De Zon

John De Zon

13/07/2014 23:17:26
Quote Anchor link
Dit probleem gaat maar niet weg. Kan iemand misschien een andere aanpak van sessie doorsturen die volgens hem/haar wel moet werken.
 
- SanThe -

- SanThe -

13/07/2014 23:29:21
Quote Anchor link
Als je mijn code gebruikt ben je echt wel uitgelogd.
Dus wat is het probleem nog?
 
John De Zon

John De Zon

13/07/2014 23:31:10
Quote Anchor link
De gebruikersnaam blijft nog steeds staan!
 
- SanThe -

- SanThe -

13/07/2014 23:33:17
Quote Anchor link
Lijkt mij stug.
Wat heb je nu?
 



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.