inlog lukt niet
Toen heb ik mezelf een opdracht gegeven om een simpel inlog + registratie te maken en dat telkens vernieuwen met beveiliging etc etc. Ik heb een probleem. Als ik registreer slaat hij de gegevens op maar als ik wil inloggen lukt dat niet
hier zitten al mijn funcies
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
session_start();
function Dbc(){
$db_host = "localhost";
$db_username = "root";
$db_password = "";
$db_name = "testinlog";
$Connection = mysqli_connect($db_host, $db_username, $db_password,$db_name) or die ("Coudnt connect to the database");
mysql_select_db($database, $connection);
return $Connection;
}
function loginControle($username, $password)
{
$connectie = Dbc();
$username = mysqli_real_escape_string($connectie, $username);
$password = mysqli_real_escape_string($connectie, $password);
$query = "SELECT * from login where gebruikersnaam='".$username."' AND wachtwoord='".$password."'";
$result = mysqli_query($connectie, $query);
$rows = mysqli_num_rows($result);
if ($rows == 1) {
$_SESSION['IngelogdUser'] = true;
$_SESSION['IngelogdUserName']= $username;
header("location: geluktinlog.php");
} else {
header("location: inloggenfout.php");
}
mysqli_free_result($result);
mysqli_close($connectie);
}
function registreren()
{
$con = Dbc();
$gebruikersnaam = mysqli_real_escape_string($con, $_POST['gebruikersnaam']);
$wachtwoord = mysqli_real_escape_string($con, $_POST['wachtwoord']);
$sql="INSERT INTO login (gebruikersnaam, wachtwoord)
VALUES ('$gebruikersnaam','$wachtwoord')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
if(isset($_POST['versturen'])){
header("Location: geluktregis.php");
exit;
}
mysqli_close($con);
}
[/code]
dit is gewoon simpel form
[code]
<html>
<head>
<title></title>
</head>
<body>
<div>
<form action="controleren.php">
<label> gebruikersnaam : <input type="text" name="gebruikersnaam" /> </label> <br><br>
<label> wachtwoord : <input type="password" name="wachtwoord" /> </label> <br><br>
<input type="Submit"value="verzenden" name="verzenden" />
<a href="registreren.php">registereren</a>
</form>
</div>
</body>
</html>
[/code]
[code]
[code]<?php
include("function.php");
loginControle($_POST['gebruikersnaam'], $_POST['wachtwoord']);
?>
ik heb express om te kijken of het inlog lukt of niet verwezen naar een page genaamd inloggenfout
ik snap niet wat ik fout heb gedaan kan iemand mij erbij helpen ?
session_start();
function Dbc(){
$db_host = "localhost";
$db_username = "root";
$db_password = "";
$db_name = "testinlog";
$Connection = mysqli_connect($db_host, $db_username, $db_password,$db_name) or die ("Coudnt connect to the database");
mysql_select_db($database, $connection);
return $Connection;
}
function loginControle($username, $password)
{
$connectie = Dbc();
$username = mysqli_real_escape_string($connectie, $username);
$password = mysqli_real_escape_string($connectie, $password);
$query = "SELECT * from login where gebruikersnaam='".$username."' AND wachtwoord='".$password."'";
$result = mysqli_query($connectie, $query);
$rows = mysqli_num_rows($result);
if ($rows == 1) {
$_SESSION['IngelogdUser'] = true;
$_SESSION['IngelogdUserName']= $username;
header("location: geluktinlog.php");
} else {
header("location: inloggenfout.php");
}
mysqli_free_result($result);
mysqli_close($connectie);
}
function registreren()
{
$con = Dbc();
$gebruikersnaam = mysqli_real_escape_string($con, $_POST['gebruikersnaam']);
$wachtwoord = mysqli_real_escape_string($con, $_POST['wachtwoord']);
$sql="INSERT INTO login (gebruikersnaam, wachtwoord)
VALUES ('$gebruikersnaam','$wachtwoord')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
if(isset($_POST['versturen'])){
header("Location: geluktregis.php");
exit;
}
mysqli_close($con);
}
[/code]
dit is gewoon simpel form
[code]
<html>
<head>
<title></title>
</head>
<body>
<div>
<form action="controleren.php">
<label> gebruikersnaam : <input type="text" name="gebruikersnaam" /> </label> <br><br>
<label> wachtwoord : <input type="password" name="wachtwoord" /> </label> <br><br>
<input type="Submit"value="verzenden" name="verzenden" />
<a href="registreren.php">registereren</a>
</form>
</div>
</body>
</html>
[/code]
[code]
[code]<?php
include("function.php");
loginControle($_POST['gebruikersnaam'], $_POST['wachtwoord']);
?>
ik heb express om te kijken of het inlog lukt of niet verwezen naar een page genaamd inloggenfout
ik snap niet wat ik fout heb gedaan kan iemand mij erbij helpen ?
Zet na een header('Location: ...'); (let ook op de hoofdletter en de spatie na de dubbele punt) altijd een exit. Officieel moet hier eigenlijk ook een volledige URL in staan.
Zet verder het melden en weergeven van fouten aan en druk eens wat informatie uit formulier / database af naar je scherm. Dat vertelt je mogelijk meer.
in feite moet het werken toch ???
EDIT: misschien is je sessie-directory niet schrijfbaar? Zet je foutenrapportage eens aan.
Voeg in een include die in alle code wordt toegevoegd de volgende code eens toe:
Gewijzigd op 24/02/2015 14:01:32 door Thomas van den Heuvel
2 dit word opgelsagen in het databasetabel genaamd login ik heb nu maar 3 rijen id gebruikersnaam en wachtwoord meer niet maar hij slaat wel op
3 daarna wil ik dat wanneer ik inlog gegevens van database haalt en kijkt of het klopt of niet en daarna inlogd en verwijst naar page inloggelukt of als het niet lukt naar page inloggenfout alleen het probleem is als ik inlog moet ik naar page inloggelukt wat niet gebeurd
Toevoeging op 24/02/2015 14:08:52:
heb dat zowel
maar tevergeefs :(
Een nadere inspectie van de bijbehorende query lijkt mij dan gewenst.
Ah, het begint te dagen.
Voeg eens method="post" toe aan je loginformulier. Als het goed is wordt tot nu toe je gebruikersnaam en wachtwoord meegegeven in je adresbalk. EDIT: en dat zie je dus niet omdat je direct wordt doorgestuurd.
Gewijzigd op 24/02/2015 14:21:31 door Thomas van den Heuvel
:(
het is opgelost bedankt voor je snelle reactie