Uitloggen
Hoe moet ik dit toepassen in dit script?
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
session_start(); //Zorg dat deze weer bovenin staat!
if ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
$_SESSION['login'] = TRUE;
//Als het wachtwoord goed is laat dan de resultaten zien
$query = 'SELECT * FROM partnernaam ORDER BY achternaam';
$result = mysql_query($query) or die ("Sorry maar ik kan de partnernaam niet weergeven");
while($row = mysql_fetch_object($result)){
?>
<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><?php echo ''.$row->naam_id.' '.$row->voornaam.' '.$row->achternaam.''; ?></td>
</tr>
<tr>
<td>
<?php
$querygegevens =
'SELECT
pn.*,
pg.*
FROM partnernaam AS pn
JOIN
partnergegevens AS pg
ON pn.naam_id = pg.naam_id
GROUP BY pg.naam_id
ORDER BY pn.achternaam';
$resultgegevens = mysql_query($querygegevens) or die ("Sorry maar ik kan de partnergegevens niet weergeven");
while($rowgegevens = mysql_fetch_object($resultgegevens)){
?>
<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><?php echo $rowgegevens->websitenaam ; ?></td>
<td><?php echo '<a href="'.$rowgegevens->url.'" target="_blank">'.$rowgegevens->url.'</a>' ; ?></td>
</tr>
<tr>
<td><?php echo '<a href="mailto:'.$rowgegevens->email.'" target="_blank">'.$rowgegevens->email.'</a>' ; ?></td>
<td><?php echo '<a href="'.$rowgegevens->url_terug.'" target="_blank">'.$rowgegevens->url_terug.'</a>' ; ?></td>
</tr>
<tr>
<td><?php echo 'Toegevoegd: '.$rowgegevens->datum ; ?></td>
<td><?php echo 'Ingeschreven nieuwsbrief: '.$rowgegevens->nieuwsbrief ; ?></td>
</tr>
<tr>
<td><?php echo 'Categorie: '.$rowgegevens->cat_id ; ?></td>
<td><?php echo 'SubCategorie: '.$rowgegevens->sub_id ; ?></td>
</tr>
</table>
<?php
} //einde binnenste while lus
?></td>
</tr>
</table>
<?php
} //einde buitenste while lus
}else{
?>
<form name="form1" id="form1" method="post" action="<?php $_SERVER['PHP_SELF']; ?>" >
<table width="350" height="150" border="0" align="center" cellpadding="4" cellspacing="0" class="tabellogin">
<tr bgcolor="#CCCCCC">
<td height="15" colspan="2"><h1>Login Scherm Admin </h1></td>
</tr>
<tr>
<td><strong>Naam:</strong></td>
<td><input name="naam" type="text" size="20" maxlength="20" /></td>
</tr>
<tr>
<td><strong>Wachtwoord:</strong></td>
<td><input name="wachtwoord" type="password" size="20" maxlength="10" /></td>
</tr>
<tr align="center">
<td colspan="2"><input name="submit" type="submit" value="Inloggen" /></td>
</tr>
</table>
</form>
<?php
}
?>
session_start(); //Zorg dat deze weer bovenin staat!
if ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
$_SESSION['login'] = TRUE;
//Als het wachtwoord goed is laat dan de resultaten zien
$query = 'SELECT * FROM partnernaam ORDER BY achternaam';
$result = mysql_query($query) or die ("Sorry maar ik kan de partnernaam niet weergeven");
while($row = mysql_fetch_object($result)){
?>
<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><?php echo ''.$row->naam_id.' '.$row->voornaam.' '.$row->achternaam.''; ?></td>
</tr>
<tr>
<td>
<?php
$querygegevens =
'SELECT
pn.*,
pg.*
FROM partnernaam AS pn
JOIN
partnergegevens AS pg
ON pn.naam_id = pg.naam_id
GROUP BY pg.naam_id
ORDER BY pn.achternaam';
$resultgegevens = mysql_query($querygegevens) or die ("Sorry maar ik kan de partnergegevens niet weergeven");
while($rowgegevens = mysql_fetch_object($resultgegevens)){
?>
<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><?php echo $rowgegevens->websitenaam ; ?></td>
<td><?php echo '<a href="'.$rowgegevens->url.'" target="_blank">'.$rowgegevens->url.'</a>' ; ?></td>
</tr>
<tr>
<td><?php echo '<a href="mailto:'.$rowgegevens->email.'" target="_blank">'.$rowgegevens->email.'</a>' ; ?></td>
<td><?php echo '<a href="'.$rowgegevens->url_terug.'" target="_blank">'.$rowgegevens->url_terug.'</a>' ; ?></td>
</tr>
<tr>
<td><?php echo 'Toegevoegd: '.$rowgegevens->datum ; ?></td>
<td><?php echo 'Ingeschreven nieuwsbrief: '.$rowgegevens->nieuwsbrief ; ?></td>
</tr>
<tr>
<td><?php echo 'Categorie: '.$rowgegevens->cat_id ; ?></td>
<td><?php echo 'SubCategorie: '.$rowgegevens->sub_id ; ?></td>
</tr>
</table>
<?php
} //einde binnenste while lus
?></td>
</tr>
</table>
<?php
} //einde buitenste while lus
}else{
?>
<form name="form1" id="form1" method="post" action="<?php $_SERVER['PHP_SELF']; ?>" >
<table width="350" height="150" border="0" align="center" cellpadding="4" cellspacing="0" class="tabellogin">
<tr bgcolor="#CCCCCC">
<td height="15" colspan="2"><h1>Login Scherm Admin </h1></td>
</tr>
<tr>
<td><strong>Naam:</strong></td>
<td><input name="naam" type="text" size="20" maxlength="20" /></td>
</tr>
<tr>
<td><strong>Wachtwoord:</strong></td>
<td><input name="wachtwoord" type="password" size="20" maxlength="10" /></td>
</tr>
<tr align="center">
<td colspan="2"><input name="submit" type="submit" value="Inloggen" /></td>
</tr>
</table>
</form>
<?php
}
?>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
if ($_SESSION['login'] && isset($_POST['uitloggen']) {
session_destroy();
//hier een header refresh, en je bent uitgelogd
}
?>
if ($_SESSION['login'] && isset($_POST['uitloggen']) {
session_destroy();
//hier een header refresh, en je bent uitgelogd
}
?>
Het lukt niet....
Je kan trouwens ook gewoon een linkje maken, waarin je de get variabele uitloggen meegeeft (hoeft niet persé een knop te zijn)
vb.
<a href="?uitloggen" name="uitloggen">Log Uit</a>
En dan in je pagina:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
if(isset($_GET['uitloggen']) && isset($_SESSION['login'])){
session_destroy();//vernietig sessie
}
//dit is je eigen code weer, alleen in een elseif ipv een if
elseif ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
}
?>
if(isset($_GET['uitloggen']) && isset($_SESSION['login'])){
session_destroy();//vernietig sessie
}
//dit is je eigen code weer, alleen in een elseif ipv een if
elseif ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
}
?>
Elsy schreef op 18.02.2007 14:14:
Het lukt niet....
Hoi Elsy, jij kan beter dan dit. Wees een beetje duidelijker dan kunnen wij er misschien wat mee.
Ga even kijken naar het script van Robert en probeer het nog een keer.
Ik ben nu ingelogd en als ik dan klik op de link uitloggen kom ik op de index pagina terecht met in de adresbalk: http://www.kijk-vergelijk.nl/?uitloggen
Als ik dan weer op de "admin" link klik kom ik gewoon weer meteen terecht op de pagina van de partners. Dus zonder te hoeven inloggen.
Ik had de cookies al verwijderd.
Je kunt testen door op mijn site te kijken onder het kopje: info en contact en dan onderaan op het puntje (.) te klikken.
http://www.kijk-vergelijk.nl/
?uitloggen=true
Wat doe je met die $_GET['uitloggen']?
Edit: Typo.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
if(isset($_GET['uitloggen']) && isset($_SESSION['login'])){
session_destroy();//vernietig sessie
}elseif ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
$_SESSION['login'] = TRUE;
//Als het wachtwoord goed is laat dan de resultaten zien
echo '<a href="?uitloggen" name="uitloggen">Log Uit</a><br />';
?>
if(isset($_GET['uitloggen']) && isset($_SESSION['login'])){
session_destroy();//vernietig sessie
}elseif ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
$_SESSION['login'] = TRUE;
//Als het wachtwoord goed is laat dan de resultaten zien
echo '<a href="?uitloggen" name="uitloggen">Log Uit</a><br />';
?>
Het is echter niet eens nodig om session_destroy() te gebruiken aangezien er in principe niets op tegen is dat de huidige sessie behouden blijft. Het wel of niet ingelogd zijn is namelijk afhankelijk van het bestaan van een bepaalde sessievariabele en van het bestaan van een sessie zelf.
Zie ook php.net onder session_destroy.
$_SESSION = '';
Ik heb het allebei geprobeerd maar er is niets veranderd.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
session_start(); //Zorg dat deze weer bovenin staat!
error_reporting(E_ALL);
$_SESSION = array();
if(isset($_GET['uitloggen']) && isset($_SESSION['login'])){
session_destroy();//vernietig sessie
}elseif ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
$_SESSION['login'] = TRUE;
//Als het wachtwoord goed is laat dan de resultaten zien
echo '<a href="?uitloggen" name="uitloggen">Log Uit</a><br />';
?>
session_start(); //Zorg dat deze weer bovenin staat!
error_reporting(E_ALL);
$_SESSION = array();
if(isset($_GET['uitloggen']) && isset($_SESSION['login'])){
session_destroy();//vernietig sessie
}elseif ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
$_SESSION['login'] = TRUE;
//Als het wachtwoord goed is laat dan de resultaten zien
echo '<a href="?uitloggen" name="uitloggen">Log Uit</a><br />';
?>
Nou logt ie altijd uit volgens mij. Je maakt de sessie al leeg voordat je weet of er wel moet worden uitgelogd.
Als ik nu inlog zie ik de gegevens.
Als ik dan uitlog door op de link te klikken kom ik hier terecht: http://www.kijk-vergelijk.nl/?uitloggen
Als ik dan weer op het puntje (nu admin) klik moet ik weer opnieuw inloggen. Dus volgens mij werkt het nu goed.
Ja, maar log nu eens in en blijf je dan ook ingelogd totdat jij op die link klikt?
Elsy schreef op 18.02.2007 16:02:
Maar blijf je ook ingelogd als je naar een andere pagina gaat of bijvoorbeeld de pagina refresht?Uhm, is dit niet goed dan?
Ik blijf ingelogd totdat ik uitlog dmv de link
@Blanche
Als ik refresh blijf ik ingelogd maar als ik op een andere link in het menu klik dan moet ik opnieuw inloggen.
Dit wordt natuurlijk een probleem als ik meerdere partners erin heb staan en dus met paginanummering ga werken.
Dus toch maar in de if() zetten.
Als ik op een andere link in het menu klik ben ik nog wel ingelogd.
Maar het uitloggen werkt niet meer, ik blijf ingelogd.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
session_start(); //Zorg dat deze weer bovenin staat!
if(isset($_GET['uitloggen']) && isset($_SESSION['login'])){
$_SESSION = array();
session_destroy();//vernietig sessie
}elseif ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
$_SESSION['login'] = TRUE;
//Als het wachtwoord goed is laat dan de resultaten zien
echo '<a href="?uitloggen" name="uitloggen">Log Uit</a><br />';
?>
session_start(); //Zorg dat deze weer bovenin staat!
if(isset($_GET['uitloggen']) && isset($_SESSION['login'])){
$_SESSION = array();
session_destroy();//vernietig sessie
}elseif ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
$_SESSION['login'] = TRUE;
//Als het wachtwoord goed is laat dan de resultaten zien
echo '<a href="?uitloggen" name="uitloggen">Log Uit</a><br />';
?>
Waar staat die code? In de index?