Inlog Systeem databases & sql
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
if(isset($_POST['hidden'])){
include('mysql_connect.php');
// variable
$username = $_POST['username'];
$password = $_POST['password'];
echo($sql);
$sql = "SELECT * FROM leden WHERE username='".$username."' AND password='".$password."'";
$query = mysql_query ($sql);
$num = mysql_num_rows($query);
if($num == 1){
// Ingelogd
echo "lol";
$sql2 = "SELECT * FROM leden WHERE username'".$username."' AND password='".$password."'";
$query2 = mysql_query($sql2);
$fetch = mysql_fetch_assoc($query2);
$_SESSION['username'] = $username;
$_SESSION['id'] = $fetch['id'];
$_SESSION['ingelogd'] = true;
header('location: member.php');
echo "Ingelogd";
}
else{
echo "Gebruikersnaam of Wachtwoord is verkeerd!!";
}
}
else{
?>
if(isset($_POST['hidden'])){
include('mysql_connect.php');
// variable
$username = $_POST['username'];
$password = $_POST['password'];
echo($sql);
$sql = "SELECT * FROM leden WHERE username='".$username."' AND password='".$password."'";
$query = mysql_query ($sql);
$num = mysql_num_rows($query);
if($num == 1){
// Ingelogd
echo "lol";
$sql2 = "SELECT * FROM leden WHERE username'".$username."' AND password='".$password."'";
$query2 = mysql_query($sql2);
$fetch = mysql_fetch_assoc($query2);
$_SESSION['username'] = $username;
$_SESSION['id'] = $fetch['id'];
$_SESSION['ingelogd'] = true;
header('location: member.php');
echo "Ingelogd";
}
else{
echo "Gebruikersnaam of Wachtwoord is verkeerd!!";
}
}
else{
?>
<form action='index.php' method='POST'>
Username: <input type='text' name='username'/><br>
Password: <input type='password' name='password'/><br>
<input type='hidden' name='hidden'>
<input type='submit' value='login!'>
</form>
En waarom voer je precies dezelfde query twee keer uit? Ook nutteloos, de resultaten die je nodig hebt op regel 24 t/m 26 kan je ook gewoon uit de eerste halen.
Maar om de fout te vinden zal je toch echt eerst een foutafhandeling moeten inbouwen.
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
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
<?php
if('POST' == $_SERVER['REQUEST_METHOD']) {
include('mysql_connect.php');
// variable
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM leden
WHERE username='" . mysql_real_escape_string($username) . "'
AND password='" . mysql_real_escape_string($password) . "'";
if(!$resultset = mysql_query($sql)) {
echo 'er trad een fout op: '. mysql_error();
echo '<br>'. $sql;
exit();
}
$num = mysql_num_rows($resultset);
if($num == 1) {
// Ingelogd
echo "lol";
$fetch = mysql_fetch_assoc($resultset);
$_SESSION['username'] = $fetch['username'];
$_SESSION['id'] = $fetch['id'];
$_SESSION['ingelogd'] = true;
// als je nu doorgestuurd wordt, zie je op regel 29 de echo niet meer....
//header('location: member.php');
echo "Ingelogd";
}
else {
echo "Gebruikersnaam of Wachtwoord is verkeerd!!";
$_SESSION['ingelogd'] = false;
$_SESSION['id'] = null;
$_SESSION['username'] = null;
}
}
else {
?>
if('POST' == $_SERVER['REQUEST_METHOD']) {
include('mysql_connect.php');
// variable
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM leden
WHERE username='" . mysql_real_escape_string($username) . "'
AND password='" . mysql_real_escape_string($password) . "'";
if(!$resultset = mysql_query($sql)) {
echo 'er trad een fout op: '. mysql_error();
echo '<br>'. $sql;
exit();
}
$num = mysql_num_rows($resultset);
if($num == 1) {
// Ingelogd
echo "lol";
$fetch = mysql_fetch_assoc($resultset);
$_SESSION['username'] = $fetch['username'];
$_SESSION['id'] = $fetch['id'];
$_SESSION['ingelogd'] = true;
// als je nu doorgestuurd wordt, zie je op regel 29 de echo niet meer....
//header('location: member.php');
echo "Ingelogd";
}
else {
echo "Gebruikersnaam of Wachtwoord is verkeerd!!";
$_SESSION['ingelogd'] = false;
$_SESSION['id'] = null;
$_SESSION['username'] = null;
}
}
else {
?>
Het aanmaken van 2 variabelen (regel 7/8) niet echt zinvol is.
Een wachtwoord niet zonder enige beveiliging opgeslagen dient te worden.
In een live-omgeving je geen fouten gaat echo-en op het scherm, maar via logboek of mail.
Gebruik geen * in een query, maar geef het veld/de velden op die je wilt ophalen.
mysql is 'deprecated' en zal op (korte) termijn tot foutmeldingen/problemen gaan leiden. Stap over op mysqli of PDO.
en om daarna pas met de gebreken te komen.
Aan TS om daar (n)iets mee te doen.
heeft iemand anders een betere code voor een inlog/registreer systeem en database ?
Op dit forum komen regelmatig vragen naar voren die vergelijkbaar zijn met jouw code en waar advies voor verbetering wordt gegeven. Mbv Google is heel veel te vinden. Kortom: wat houdt je tegen om zelf bezig te gaan om je te ontwikkelen i.p.v. een klaar en klaar script te vragen (waarbij je geen idee hebt wat waarvoor staat). Copy/Paste is heel gemakkelijk, maar uiteindelijk geen oplossing.
En momenteel zit ik al een week vast op zo'n simpel iets waardoor mijn andere opdrachten van school erbij inschieten en dat ik dan achter ga lopen en vertraging mee kan oplopen :(
Enrico van der List op 30/03/2014 18:46:02:
En momenteel zit ik al een week vast op zo'n simpel iets waardoor mijn andere opdrachten van school erbij inschieten en dat ik dan achter ga lopen en vertraging mee kan oplopen :(
Kennelijk is het niet zo simpel, anders had je het wel klaar ;-)
Het is dus als opdracht van school?! Wil je dat wij jouw huiswerk gaan maken?
Als het goed is heb je ook les en een docent. Ga er niet van uit dat ze op school maar zo wat doen. Jij zou er dan wat van moeten leren ipv copy/paste te gaan doen.