Uitloggen
Ik wil al die functies eruit halen en er gewoon simpel een pagina van maken waar op staat, u bent nu uitgelogd u wordt automatisch doorgestuurd( Dit doe ik met een refresh naar home in de head)
Kan iemand dit voor mij veranderen? Dat er maar 1 log uit functie word gebruikt?
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
if (!checklogin()) {
echo "Je bent niet ingelogd, u gaat automatisch verder... <br><br><br><img src=\"images/245.gif\" /> ";
} else {
if(!$_POST['logout']) {
$count_sessions = mysql_query("SELECT COUNT(*) FROM sessions WHERE userid = '".sqlsafe($_COOKIE['id'])."' ");
$sessionscounted = mysql_result($count_sessions,0);
if ($sessionscounted == 1) { $browserstring = "browser"; } else { $browserstring = "browsers"; }
echo "<p>Je bent op dit moment ingelogd op <b>".$sessionscounted."</b> ".$browserstring.".<br />Maak een keuze uit een van de volgende opties:</p>";
echo "<form method=\"POST\" action=\"\">";
echo "<input name=\"logoutmode\" type=\"radio\" value=\"onlythissession\">Alleen deze PC.<br />";
echo "<input name=\"logoutmode\" type=\"radio\" value=\"allsessions\">Alle PC's.<br />";
echo "<input name=\"logoutmode\" type=\"radio\" value=\"choosesession\" id=\"logout_by_session\">Kies een sessie:<br /><br /><br />";
echo "<table border=\"1\">";
?>
<tr>
<td> </td>
<td>SessID</td>
<td>Datum / tijd</td>
</tr>
<?php
$sessioninfo = mysql_query("SELECT * FROM sessions WHERE userid = '".sqlsafe($_COOKIE['id'])."'");
while($sessions = mysql_fetch_assoc($sessioninfo)){
?>
<tr>
<td><input name="sessionid[]" type="checkbox" value="<?php echo $sessions['hash'];?>" onChange="document.getElementById('logout_by_session').checked = true"></td>
<td><?php echo $sessions['hash'];?></td>
<td><?php echo $sessions['logintime'];?></td>
</tr>
<?php
}
?>
</table>
<input type="submit" name="logout" value="Uitloggen">
<?php
echo "</form>";
} else {
if($_POST['logoutmode'] == "onlythissession") {
if(mysql_query("DELETE FROM sessions WHERE hash = '".$_COOKIE['hash']."' ")) {
echo "<center>Wacht tot u uitgelogd bent<br><br><br><img src=\"images/245.gif\" /></center> ";
} else {
echo "Uw sessie is niet uitgelogd wegens een fout:<br />".mysql_error();
}
} else if ($_POST['logoutmode'] == "allsessions") {
if(mysql_query("DELETE FROM sessions WHERE userid = '".$_COOKIE['id']."' ")) {
echo "<center>Wacht tot u uitgelogd bent<br><br><br><img src=\"images/245.gif\" /></center>";
} else {
echo "Uw sessies zijn niet uitgelogd wegens een fout:<br />".mysql_error();
}
} else if ($_POST['logoutmode'] == "allothersession") {
echo "Deze functie werkt nog niet.";
} else if ($_POST['logoutmode'] == "choosesession") {
echo "<center>Wacht tot u uitgelogd bent<br><br><br><img src=\"images/245.gif\" /></center> ";
foreach($_POST['sessionid'] as $index => $sessid) {
if(!mysql_query("DELETE FROM sessions WHERE hash = '".$sessid."' ")) {
echo "Je sessie is niet uitgelogd wegens een fout:<br />".mysql_error();
}
}
} else if (!$_POST['logoutmode']) {
echo "Je ben vergeten een keuze te maken uit de uitlogopties.";
} else {
echo "Deze uitlogoptie is niet bekend.";
}
}
}
?>
if (!checklogin()) {
echo "Je bent niet ingelogd, u gaat automatisch verder... <br><br><br><img src=\"images/245.gif\" /> ";
} else {
if(!$_POST['logout']) {
$count_sessions = mysql_query("SELECT COUNT(*) FROM sessions WHERE userid = '".sqlsafe($_COOKIE['id'])."' ");
$sessionscounted = mysql_result($count_sessions,0);
if ($sessionscounted == 1) { $browserstring = "browser"; } else { $browserstring = "browsers"; }
echo "<p>Je bent op dit moment ingelogd op <b>".$sessionscounted."</b> ".$browserstring.".<br />Maak een keuze uit een van de volgende opties:</p>";
echo "<form method=\"POST\" action=\"\">";
echo "<input name=\"logoutmode\" type=\"radio\" value=\"onlythissession\">Alleen deze PC.<br />";
echo "<input name=\"logoutmode\" type=\"radio\" value=\"allsessions\">Alle PC's.<br />";
echo "<input name=\"logoutmode\" type=\"radio\" value=\"choosesession\" id=\"logout_by_session\">Kies een sessie:<br /><br /><br />";
echo "<table border=\"1\">";
?>
<tr>
<td> </td>
<td>SessID</td>
<td>Datum / tijd</td>
</tr>
<?php
$sessioninfo = mysql_query("SELECT * FROM sessions WHERE userid = '".sqlsafe($_COOKIE['id'])."'");
while($sessions = mysql_fetch_assoc($sessioninfo)){
?>
<tr>
<td><input name="sessionid[]" type="checkbox" value="<?php echo $sessions['hash'];?>" onChange="document.getElementById('logout_by_session').checked = true"></td>
<td><?php echo $sessions['hash'];?></td>
<td><?php echo $sessions['logintime'];?></td>
</tr>
<?php
}
?>
</table>
<input type="submit" name="logout" value="Uitloggen">
<?php
echo "</form>";
} else {
if($_POST['logoutmode'] == "onlythissession") {
if(mysql_query("DELETE FROM sessions WHERE hash = '".$_COOKIE['hash']."' ")) {
echo "<center>Wacht tot u uitgelogd bent<br><br><br><img src=\"images/245.gif\" /></center> ";
} else {
echo "Uw sessie is niet uitgelogd wegens een fout:<br />".mysql_error();
}
} else if ($_POST['logoutmode'] == "allsessions") {
if(mysql_query("DELETE FROM sessions WHERE userid = '".$_COOKIE['id']."' ")) {
echo "<center>Wacht tot u uitgelogd bent<br><br><br><img src=\"images/245.gif\" /></center>";
} else {
echo "Uw sessies zijn niet uitgelogd wegens een fout:<br />".mysql_error();
}
} else if ($_POST['logoutmode'] == "allothersession") {
echo "Deze functie werkt nog niet.";
} else if ($_POST['logoutmode'] == "choosesession") {
echo "<center>Wacht tot u uitgelogd bent<br><br><br><img src=\"images/245.gif\" /></center> ";
foreach($_POST['sessionid'] as $index => $sessid) {
if(!mysql_query("DELETE FROM sessions WHERE hash = '".$sessid."' ")) {
echo "Je sessie is niet uitgelogd wegens een fout:<br />".mysql_error();
}
}
} else if (!$_POST['logoutmode']) {
echo "Je ben vergeten een keuze te maken uit de uitlogopties.";
} else {
echo "Deze uitlogoptie is niet bekend.";
}
}
}
?>
Wat ik zelf altijd doe is een bestand aanmaken logout.php en daar alle sessies in destroyen en unsetten. Vervolgens kun je daar een echo laten zien van 'u bent nu uitgelogd' en kun je (door middel van javascript ?) automatisch de bezoeker doorsturen naar een andere pagina.
Normaliter doe ik geen php dus mocht ik fout zitten dan hoor ik graag van iemand hoe Japser Schellekens dit beter kan aanpakken.
Ik word gek van deze logout pagina, heb er zelf een vergoeding voor over.
Mijn excuses. Ik heb waarschijnlijk over het hoofd gezien dat dit topic onder vacatures is geplaatst.
Maar dit is en oud script van mij die ik je al eerder afraadde voor productiedoeleinden. Waarom gebruik je hem dan eigenlijk nog?
Gebruik liever sessies.
Gewijzigd op 13/08/2015 12:25:58 door - Ariën -
Dacht dat er bepaalde regels waren waaraan vacature moet voldoen. Die lijken te missen. Misschien dat eschwin daarom niet door had in welke categorie de post staat.
Als je expliciet uit wilt loggen op dat apparaat, ben je uitgelogd op dat apparaat.
Als iemand overal uitgelogd wil zijn, moet iemand zelf maar op elke locatie uitloggen.
Als hij/zij op een publieke machine ingelogd was en daar hun login onthouden is... sja. Geef gewoon een waarschuwing bij het inloggen "doe dit alleen op een vaste machine / netwerk wat je vertrouwt".
Uitloggen = uitloggen op dat apparaat. Simpel.
Dan kan die bovenstaande gribus een stuk korter als je het mij vraagt.
Bonus: je hebt daar een paar vette SQL injection gaten.
$_COOKIE rechtstreeks in een query? LOL.
Thomas van den Heuvel op 13/08/2015 19:41:55:
Dan kan die bovenstaande gribus een stuk korter als je het mij vraagt.
Dat had je niet vroeger moeten zegen tegen mij, toen ik dit script maakte ;-)
Gelukkig zou ik het nu beter doen, maar tijd ontbreekt. In ieder geval met PHP-sessions zou je een goed script kunnen maken i.s.m. de lelijke session-handler die er nu achter hangt. Misschien zelfs een overwrite van de PHP-session-afhandeling.
Gewijzigd op 13/08/2015 20:20:10 door - Ariën -
Niet te vergeten, bedenk altijd aantal scenario's wat hackers met je script kunnen doen, iemand hoeft maar een cookie te veranderen in een sql injection.. Dan ben je de klos.