uitlog systeem
Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in C:\xampp\htdocs\loguit.php on line 3
en logt hij vervolgens niet goed uit..
weet iemand hoe ik dit goed kan doen?
Inlog systeem:
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
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
<?php
include ("connect.php");
$redirect_pagina = "pagina.php";
if ($_GET['actie'] == 'login') {
$query = "SELECT * FROM members WHERE gebruikersnaam = '".$_POST['user']."'";
$resultaat = mysql_query($query) OR die ("Kon geen verbinding maken met MySQL");
$aantal = mysql_num_rows($resultaat);
if (empty($_POST['user'])) {
echo "<center>Je hebt geen gebruikersnaam ingevuld</center>";
} else {
if ($aantal == '0'){
echo "<center>Gebruikersnaam bestaat niet</center>";
} else {
$login = mysql_fetch_object($resultaat);
if(md5($_POST['password']) == $login->wachtwoord) {
$logins = $login->logins +1;
$inlogip = $_SERVER['REMOTE_ADDR'];
mysql_query("UPDATE members SET logins=('".$logins."') WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
mysql_query("UPDATE members SET inlogdatum=(NOW()) WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
mysql_query("UPDATE members SET inlogip=('".$inlogip."') WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
mysql_query("UPDATE profiel SET logins=('".$logins."') WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
mysql_query("UPDATE profiel SET inlogdatum=(NOW()) WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
$_SESSION['gebruikersnaam'] = $_POST['user'];
echo "<center>Je bent succesvol ingelogd, een moment.. <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=".$redirect_pagina."\"></center>";
} else {
echo "<center>Je inloggegevens kloppen niet</center>";
}
}}
} else {}
include("inlogformulier.php");
?>
include ("connect.php");
$redirect_pagina = "pagina.php";
if ($_GET['actie'] == 'login') {
$query = "SELECT * FROM members WHERE gebruikersnaam = '".$_POST['user']."'";
$resultaat = mysql_query($query) OR die ("Kon geen verbinding maken met MySQL");
$aantal = mysql_num_rows($resultaat);
if (empty($_POST['user'])) {
echo "<center>Je hebt geen gebruikersnaam ingevuld</center>";
} else {
if ($aantal == '0'){
echo "<center>Gebruikersnaam bestaat niet</center>";
} else {
$login = mysql_fetch_object($resultaat);
if(md5($_POST['password']) == $login->wachtwoord) {
$logins = $login->logins +1;
$inlogip = $_SERVER['REMOTE_ADDR'];
mysql_query("UPDATE members SET logins=('".$logins."') WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
mysql_query("UPDATE members SET inlogdatum=(NOW()) WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
mysql_query("UPDATE members SET inlogip=('".$inlogip."') WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
mysql_query("UPDATE profiel SET logins=('".$logins."') WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
mysql_query("UPDATE profiel SET inlogdatum=(NOW()) WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
$_SESSION['gebruikersnaam'] = $_POST['user'];
echo "<center>Je bent succesvol ingelogd, een moment.. <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=".$redirect_pagina."\"></center>";
} else {
echo "<center>Je inloggegevens kloppen niet</center>";
}
}}
} else {}
include("inlogformulier.php");
?>
Controle:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
include ("connect.php");
include ("loguit.php");
if(isset($_SESSION['gebruikersnaam'])){
$query = "SELECT * FROM profiel WHERE gebruikersnaam = '".$_SESSION['gebruikersnaam']."'";
$resultaat = mysql_query($query) OR die ("Kon geen verbinding maken met MySQL");
$user = mysql_fetch_object($resultaat);
?>
session_start();
include ("connect.php");
include ("loguit.php");
if(isset($_SESSION['gebruikersnaam'])){
$query = "SELECT * FROM profiel WHERE gebruikersnaam = '".$_SESSION['gebruikersnaam']."'";
$resultaat = mysql_query($query) OR die ("Kon geen verbinding maken met MySQL");
$user = mysql_fetch_object($resultaat);
?>
Uitlog systeem:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if ($_GET['actie'] == 'loguit') {
session_destroy();
$redirect_pagina = "index.php";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"2; URL=".$redirect_pagina."\">";
}else{}
?>
if ($_GET['actie'] == 'loguit') {
session_destroy();
$redirect_pagina = "index.php";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"2; URL=".$redirect_pagina."\">";
}else{}
?>
Gewijzigd op 01/01/1970 01:00:00 door Thom stofberg
Gewijzigd op 01/01/1970 01:00:00 door thom stofberg
kan iemand plz helpen?
Verder rammelt je code nog aan alle kanten. Je query's zijn sql-injectie gevoelig (gebruik mysql_real_escape_string() ), en je foutafhandeling ontbreekt. In edit zie je wat ik bedoel
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
ok thnx :) en moet ik dan ook de pagina's die beginnen met de controle afsluiten met session_destroy();?
Nee, dan vernietig je namelijk gelijk al bij het inloggen de sessie die je wilt bewaren. Alleen bij uitloggen vernietigen.
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
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
<?php
include ("connect.php");
$redirect_pagina = "pagina.php";
if ($_GET['actie'] == 'login') {
if(!empty($_POST['user'])){
$query = "SELECT veldnaam1, veldnaam2, veldnaam3 FROM members WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['user'])."'";
if(!$result = mysql_query($query)){
trigger_error(mysql_error());
}
else {
$aantal = mysql_num_rows($result);
if($aantal = 0 ){
echo '<center>Gebruikersnaam bestaat niet</center>';
}
else {
$login = mysql_fetch_assoc($resultaat);
if(md5($_POST['password']) == $login['wachtwoord']) {
$logins = $login['logins'] +1;
$inlogip = $_SERVER['REMOTE_ADDR'];
$update = "UPDATE members SET logins = ".$logins." , inlogdatum = NOW(), inlogip = '".$_SERVER['REMOTE_ADDR']."' WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['username']."'";
$update2 = "UPDATE profiel SET logins = ".$logins.", inlogdatum = NOW() WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['user']."'";
if(!$result = mysql_query($update) OR !$result2 = mysql_query($update2)){
trigger_error(mysql_error());
}
else {
$_SESSION['gebruikersnaam'] = $_POST['user'];
echo "<center>Je bent succesvol ingelogd, een moment.. <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=".$redirect_pagina."\"></center>";
}
}
}
}
}
}
else{
include("inlogformulier.php");
}
?>
include ("connect.php");
$redirect_pagina = "pagina.php";
if ($_GET['actie'] == 'login') {
if(!empty($_POST['user'])){
$query = "SELECT veldnaam1, veldnaam2, veldnaam3 FROM members WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['user'])."'";
if(!$result = mysql_query($query)){
trigger_error(mysql_error());
}
else {
$aantal = mysql_num_rows($result);
if($aantal = 0 ){
echo '<center>Gebruikersnaam bestaat niet</center>';
}
else {
$login = mysql_fetch_assoc($resultaat);
if(md5($_POST['password']) == $login['wachtwoord']) {
$logins = $login['logins'] +1;
$inlogip = $_SERVER['REMOTE_ADDR'];
$update = "UPDATE members SET logins = ".$logins." , inlogdatum = NOW(), inlogip = '".$_SERVER['REMOTE_ADDR']."' WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['username']."'";
$update2 = "UPDATE profiel SET logins = ".$logins.", inlogdatum = NOW() WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['user']."'";
if(!$result = mysql_query($update) OR !$result2 = mysql_query($update2)){
trigger_error(mysql_error());
}
else {
$_SESSION['gebruikersnaam'] = $_POST['user'];
echo "<center>Je bent succesvol ingelogd, een moment.. <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=".$redirect_pagina."\"></center>";
}
}
}
}
}
}
else{
include("inlogformulier.php");
}
?>
Dit is niet om je alles voor te kauwen, maar volg ongeveer zo'n opbouw en je kan heel gemakkelijk debuggen.
Oja, en voor de zeikerds, is nog heel wat te verbeteren, maar moet even m'n aandacht bij de film houden.
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
[linebreak] mysql_query("UPDATE members SET logins=(".$logins.") WHERE gebruikersnaam=".$_POST[user]."") OR die(mysql_error());[linebreak] mysql_query("UPDATE members SET inlogdatum=(NOW()) WHERE gebruikersnaam=".$_POST[user]."") OR die(mysql_error());[linebreak] mysql_query("UPDATE members SET inlogip=(".$inlogip.") WHERE gebruikersnaam=".$_POST[user]."") OR die(mysql_error());[linebreak] mysql_query("UPDATE profiel SET logins=(".$logins.") WHERE gebruikersnaam=".$_POST[user]."") OR die(mysql_error());[linebreak] mysql_query("UPDATE profiel SET inlogdatum=(NOW()) WHERE gebruikersnaam=".$_POST[user]."") OR die(mysql_error());[linebreak]
dit kan korter,
http://en.wikipedia.org/wiki/Update_(SQL)
quote:
UPDATE T SET C1 = 1, C2 = 2 where Username = '".$username."';
dit kan korter,
http://en.wikipedia.org/wiki/Update_(SQL)
quote:
UPDATE T SET C1 = 1, C2 = 2 where Username = '".$username."';
@ TS:
gebruik mysql_fetch_assoc($resource) , objecten hoef je haast nooit te fetchen in php. En je gebruikt ze dan als volgt:
$rows = mysql_fetch_assoc($result);
$fieldvar = $rows['fieldname'];
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
Afra schreef op 07.07.2009 16:10:
Ook je uitlog pagina moet beginnen met session_start()
Verder rammelt je code nog aan alle kanten. Je query's zijn sql-injectie gevoelig (gebruik mysql_real_escape_string() ), en je foutafhandeling ontbreekt. In edit zie je wat ik bedoel
Verder rammelt je code nog aan alle kanten. Je query's zijn sql-injectie gevoelig (gebruik mysql_real_escape_string() ), en je foutafhandeling ontbreekt. In edit zie je wat ik bedoel
en als ik dit toevoeg aan de pagina's?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function mysql_real_escape_array($array) {
if(is_array($array)) {
foreach($array as $key => $value) {
if(is_array($value)) {
$array[$key] = mysql_real_escape_array($value);
} else {
$array[$key] = mysql_real_escape_string($value);
}
}
} else {
$array = mysql_real_escape_string($array);
}
return $array;
}
?>
function mysql_real_escape_array($array) {
if(is_array($array)) {
foreach($array as $key => $value) {
if(is_array($value)) {
$array[$key] = mysql_real_escape_array($value);
} else {
$array[$key] = mysql_real_escape_string($value);
}
}
} else {
$array = mysql_real_escape_string($array);
}
return $array;
}
?>
Prachtig dat je een escape array functie gecreeerd hebt, maar ik bedoelde gewoon dat je in je query niet zomaar post waarden moet stoppen, daar gooi je gewoon mysql_real_escape_string overheen. EN dat zijn strings, geen array, dus dat hoeft niet.