logout probleem
Maar nu heb ik er toch nog een vraag over.
Ik heb onderstand script in gebruik.
In 2 verschillende tabelen,
Alleen met het verschil dat in de een dit staat: SESSION['member_gebruiker_id']
En de andere dit: SESSION['admin_gebruiker_id']
En dat werkt prima zodat ik nu kan inloggen zonder dat ik in de ander tabel ook ingelogt ben.
Alleen het uitlogen werkt niet goed, want als ik in de admin ben ingelogt en dan naar de members ga zonder eerst uit te loggen, moet ik daar ook inloggen, wat goed is, maar als ik daar dan uitlog ben ik ook uit gelogt in de admin.
Nu geen antwoorden zoals
Ze staan allebij wel in 1 database maar in verschillende tabellen.
Code (php)
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
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
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
include('../includes/config.php');
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$gebruiker_query = "SELECT * FROM members WHERE gebruiker_naam = '".mysqli_real_escape_string($con, trim($_POST['gebruikersnaam']))."';";
$gebruiker_sql = mysqli_query($con, $gebruiker_query)or die(mysqli_error());
$gebruiker_tellen= mysqli_num_rows($gebruiker_sql);
if ($gebruiker_tellen == 1){
$rij = mysqli_fetch_array($gebruiker_sql);
if(sha1($_POST['wachtwoord']) == $rij['gebruiker_wachtwoord']){
session_start();
$_SESSION['member_gebruiker_id'] = $rij['member_gebruiker_id'];
$_SESSION['gebruiker_naam'] = $rij['gebruiker_naam'];
$_SESSION['gebruiker_rank'] = $rij['gebruiker_rank'];
header('Location: index1.php');
}else{
echo 'Fout bij het inloggen. Probeer het opnieuw';
}
}else{
echo 'Fout bij het inloggen. Probeer het opnieuw';
}
}else{
echo '<br />
<table width="400px" align="center" valign="top" border="0" bordercolor="#0000A0" cellpadding="5" cellspacing="0">
<form method="POST" action="inloggen.php">
<tr>
<td align="left">Naam:</td><td><input type="text" name="gebruikersnaam"></td>
<td align="left">Wachtwoord:</td><td><input type="text" name="wachtwoord"></td>
<td><input type="submit" name="inloggen" value="Inloggen"></td>
<td> </td><td><a href="?uitloggen">uitloggen</a></td>
</tr>
</form>';
}
?>
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
include('../includes/config.php');
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$gebruiker_query = "SELECT * FROM members WHERE gebruiker_naam = '".mysqli_real_escape_string($con, trim($_POST['gebruikersnaam']))."';";
$gebruiker_sql = mysqli_query($con, $gebruiker_query)or die(mysqli_error());
$gebruiker_tellen= mysqli_num_rows($gebruiker_sql);
if ($gebruiker_tellen == 1){
$rij = mysqli_fetch_array($gebruiker_sql);
if(sha1($_POST['wachtwoord']) == $rij['gebruiker_wachtwoord']){
session_start();
$_SESSION['member_gebruiker_id'] = $rij['member_gebruiker_id'];
$_SESSION['gebruiker_naam'] = $rij['gebruiker_naam'];
$_SESSION['gebruiker_rank'] = $rij['gebruiker_rank'];
header('Location: index1.php');
}else{
echo 'Fout bij het inloggen. Probeer het opnieuw';
}
}else{
echo 'Fout bij het inloggen. Probeer het opnieuw';
}
}else{
echo '<br />
<table width="400px" align="center" valign="top" border="0" bordercolor="#0000A0" cellpadding="5" cellspacing="0">
<form method="POST" action="inloggen.php">
<tr>
<td align="left">Naam:</td><td><input type="text" name="gebruikersnaam"></td>
<td align="left">Wachtwoord:</td><td><input type="text" name="wachtwoord"></td>
<td><input type="submit" name="inloggen" value="Inloggen"></td>
<td> </td><td><a href="?uitloggen">uitloggen</a></td>
</tr>
</form>';
}
?>
En dit staat er in de logout
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
session_start();
include ("../includes/config.php");
session_destroy();
header('Location: index.php');
echo '<h3 align="center">Je bent successvol uit gelogt. <a href="inloggen.php">Klik hier</a> om in te loggen !</h3>';
?>
session_start();
include ("../includes/config.php");
session_destroy();
header('Location: index.php');
echo '<h3 align="center">Je bent successvol uit gelogt. <a href="inloggen.php">Klik hier</a> om in te loggen !</h3>';
?>
Ik heb al geprobeerd met header('Location: admin/index.php') en header('Location: members/index.php') maar dat werkt niet, en ook zonder header('Location: index.php') niet.
Wat doe ik fout?
Gewijzigd op 05/03/2014 18:05:05 door Niek Kasius
sessions_destroy verwijder je simpelweg alle sessies. Kijk maar in de handleiding van php.net.
Je probleem is te verhelpen met de functie unset.
Met Je probleem is te verhelpen met de functie unset.
Gewijzigd op 05/03/2014 19:00:32 door Milo S
Code (php)
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
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
<?php
session_start();
if(isset($_GET['uitloggen'])){
session_unset();
header('Location: index.php');
}
[/code]
En nu ik dat verwijderd heb, En de logout heb geinclude op deze manier
[code]
[code]<?php
echo '<div id="content">';
if(isset($_GET['teamtoevoegen'])){
include('team_toevoegen.php');
}elseif(isset($_GET['wedstrijdtoevoegen'])){
include('wedstrijd_toevoegen.php');
}elseif(isset($_GET['standbewerken'])){
include('stand_bewerken.php');
}elseif(isset($_GET['uitloggen'])){
include('uitloggen.php');
}else{
include('admin_text.php');
}
}elseif(isset($_GET['registreren'])){
include('registreren.php');
}else{
include('inloggen.php');
}[/code]
in de logout.php dit heb gezet:
[code]
[code]<?php
if (isset($_SESSION['gebruiker_id'])) {
unset($_SESSION['gebruiker_id']);
header('Location: index.php');
}
?>
Werkt het nu perfect
session_start();
if(isset($_GET['uitloggen'])){
session_unset();
header('Location: index.php');
}
[/code]
En nu ik dat verwijderd heb, En de logout heb geinclude op deze manier
[code]
[code]<?php
echo '<div id="content">';
if(isset($_GET['teamtoevoegen'])){
include('team_toevoegen.php');
}elseif(isset($_GET['wedstrijdtoevoegen'])){
include('wedstrijd_toevoegen.php');
}elseif(isset($_GET['standbewerken'])){
include('stand_bewerken.php');
}elseif(isset($_GET['uitloggen'])){
include('uitloggen.php');
}else{
include('admin_text.php');
}
}elseif(isset($_GET['registreren'])){
include('registreren.php');
}else{
include('inloggen.php');
}[/code]
in de logout.php dit heb gezet:
[code]
[code]<?php
if (isset($_SESSION['gebruiker_id'])) {
unset($_SESSION['gebruiker_id']);
header('Location: index.php');
}
?>
Werkt het nu perfect
Gewijzigd op 20/03/2014 16:38:10 door Niek Kasius
Je moet natuurlijk niet de functie unset verwarren met session_unset. Die laatste mag in jouw situatie niet meer voorkomen omdat dan alle session variabelen om zeep geholpen worden.
Ik heb nu dit voor de admin
Code (php)
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
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
<?php
include "../includes/header.php";
echo '<div id="header">';
session_start();
if(isset($_SESSION['gebruiker_id'])){
echo '<table width="100%">
<tr>
<td align="center" width="33%"> </td>
<td align="center" width="33%"><b>BILJART ADMIN</b><br /><a href="../index.php">(bekijk stand)</a><br /><a href="../uitslagen.php">(bekijk uitslagen)</a></td>
<td align="right" valign="top" width="33%">Hallo<b> '.$_SESSION['gebruiker_naam'].'</b>
<a href="?uitloggen">uitloggen</a> </td>
</tr>
</table>
</div>
<div id="content">';
if(isset($_GET['teamtoevoegen'])){
include('team_toevoegen.php');
}elseif(isset($_GET['wedstrijdtoevoegen'])){
include('wedstrijd_toevoegen.php');
}elseif(isset($_GET['standbewerken'])){
include('stand_bewerken.php');
}elseif(isset($_GET['uitloggen'])){
include('uitloggen.php');
}else{
include('admin_text.php');
}
}elseif(isset($_GET['registreren'])){
include('registreren.php');
}else{
include('inloggen.php');
}
?>
<div id="footer">
<a href="index.php">Terug</a>
</div>
</div>
include "../includes/header.php";
echo '<div id="header">';
session_start();
if(isset($_SESSION['gebruiker_id'])){
echo '<table width="100%">
<tr>
<td align="center" width="33%"> </td>
<td align="center" width="33%"><b>BILJART ADMIN</b><br /><a href="../index.php">(bekijk stand)</a><br /><a href="../uitslagen.php">(bekijk uitslagen)</a></td>
<td align="right" valign="top" width="33%">Hallo<b> '.$_SESSION['gebruiker_naam'].'</b>
<a href="?uitloggen">uitloggen</a> </td>
</tr>
</table>
</div>
<div id="content">';
if(isset($_GET['teamtoevoegen'])){
include('team_toevoegen.php');
}elseif(isset($_GET['wedstrijdtoevoegen'])){
include('wedstrijd_toevoegen.php');
}elseif(isset($_GET['standbewerken'])){
include('stand_bewerken.php');
}elseif(isset($_GET['uitloggen'])){
include('uitloggen.php');
}else{
include('admin_text.php');
}
}elseif(isset($_GET['registreren'])){
include('registreren.php');
}else{
include('inloggen.php');
}
?>
<div id="footer">
<a href="index.php">Terug</a>
</div>
</div>
En voor de members bijna het zelfde met username als session
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
session_start();
if(isset($_GET['uitloggen'])){
session_unset();
header('Location: index.php');
}
?>
session_start();
if(isset($_GET['uitloggen'])){
session_unset();
header('Location: index.php');
}
?>
Waar heb je dit staan, dit kan namelijk wel eens de fout geven... je unset hier de session....
Gewijzigd op 20/03/2014 17:45:04 door D B
dit staat nergens meer, kijk maar eens in de reactie onder die van Milo S.
ik had dat erin staan, En dat gaf geen fout als er maar 1 inlogger was blijkbaar want ik kon dat niet testen op de localhost omdat ik daar niet kan met meerdere namen tegelijk kan inloggen.
Maar nu heb ik het werkend.