inloggen
ik heb een simple inlog systeem gemaakt maar het doet niet,
zou iemand me willen helpen
alvast bedankt
session_start();
include("inc_connect_mysql.php");
if (empty($_POST)){
$query = "SELECT * FROM inloggegevens
WHERE gebruikersnaam ='" . $_POST["gebruikersnaam"] ."'
AND wachtwoord='". $_POST["wachtwoord"]. "'";
$result = mysql_query($query) or die ($fout);
if ($rij = mysql_fetch_array($result)){
$_SESSION["gebruikersnaam"] = $rij["gebruikersnaam"];
$_SESSION["emailadres"] = $rij["emailadres"];
$_SESSION["id"] = $rij['id'];
$_SESSION["ingelogd"] = 1;
}
}
if($_SESSION["ingelogd"]==1){
header("Location: reservering.php");
}else {
header("Location: inlog.php");
}
echo '<html>
<head>
<title>Inloggen</title>
</head>';
$datum = date ("d - m - Y");
echo' <body bgcolor="#abcdef">
<p align="center"><strong>Inloggen in het reserveringsysteem</strong></p>
<form name="form1" method="post" action="inlog.php">
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="183" bgcolor="#fedcba">
<tr>
<td width="39"> </td>
<td width="140"> </td>
</tr>
<tr>
<td width="39">Gebruikersnaam</td>
<td width="140"><input type="text" name="gebruikersnaam" size="20"></td>
</tr>
<tr>
<td width="39">Wachtwoord</td>
<td width="140"><input type="password" name="wachtwoord" size="20"></td>
</tr>
<tr>
<td width="39"> <input type="submit" name="Submit" value="login"></td> <td width="140">
</tr>
</table>
</center>
</div>
<p align="center">Nog niet geregistreerd ? <a href="registreerm.php">Registreer
nu </a></p>
</form>
</body>
</html>';
?>
Gewijzigd op 01/01/1970 01:00:00 door Abdy al-najashi
Met andere woorden. Vertel eens wat meer. Met wat je nu geeft kunnen we niks.
en dat kwam omdat hij niet goed connecte met de database
plaats je config.php hier eens??
Als je nou de foutmelding verteld, en wat er wel gebeurd wat je niet verwacht etc...
define("DB_USERNAME" , "test");
define("DB_PASSWORD" , "");
define("DB_HOST" , "localhost");
$db = mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD) or die (mysql_error());
mysql_select_db(DB_NAME, $db) or die (mysql_error());
The page isn't redirecting properly
dit inlog systeem was verdeeld in twee pagina's html pagina's die info verstuurd en php pagina die controleerd
nu ben ik bezig met opzetten in een pagina en ik denk dat het wel kan.
thanx voor het feedback
Ik heb een vermoeden dat je een header loopje hebt. Dat jij onder een bepaalde voorwaarde dezelfde pagina wilt open.
ik heb bijv mijn database ergens anders staan dan mijn
ftp server.
We kunnen je niet helpen als je de config.php niet plaatst.
Gewijzigd op 01/01/1970 01:00:00 door jesper dd
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
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
<?php
include("inc_connect_mysql.php");
session_start();
while (!empty($_POST)){
// eventueel nog meer validatie, nu even ervan uitgaan dat
// gegevens correct zijn aangeleverd via het formulier
$query = "SELECT * FROM inloggegevens
WHERE gebruikersnaam ='" . $_POST["gebruikersnaam"] ."'
AND wachtwoord='". $_POST["wachtwoord"]. "'";
$result = mysql_query($query) or die ($fout);
if ($rij = mysql_fetch_array($result)){
$username= $_POST["username"];
$wachtwoord = $_POST["wachtwoord"];
$_SESSION["username"];
$_SESSION["wachtwoord"];
$_SESSION["ingelogd"] = 1;
// Of korter genoteerd:
// doorsturen naar beveiligde pagina
header("Location: overzicht.php");
}
else{
echo' <html>
<head>
<title>Inloggen</title>
</head>
<body>
<h2>Inloggen:</h2>
<hr>
<form name="form1" method="post" action="login.php">
Inlognaam: <input name="username" type="text"><br>
wachtwoord: <input name="wachtwoord" type="password"><br>
<input type="submit" name="Submit" value="Inloggen">
</form>
</body>
</html>';
echo $username;
}
}?>
include("inc_connect_mysql.php");
session_start();
while (!empty($_POST)){
// eventueel nog meer validatie, nu even ervan uitgaan dat
// gegevens correct zijn aangeleverd via het formulier
$query = "SELECT * FROM inloggegevens
WHERE gebruikersnaam ='" . $_POST["gebruikersnaam"] ."'
AND wachtwoord='". $_POST["wachtwoord"]. "'";
$result = mysql_query($query) or die ($fout);
if ($rij = mysql_fetch_array($result)){
$username= $_POST["username"];
$wachtwoord = $_POST["wachtwoord"];
$_SESSION["username"];
$_SESSION["wachtwoord"];
$_SESSION["ingelogd"] = 1;
// Of korter genoteerd:
// doorsturen naar beveiligde pagina
header("Location: overzicht.php");
}
else{
echo' <html>
<head>
<title>Inloggen</title>
</head>
<body>
<h2>Inloggen:</h2>
<hr>
<form name="form1" method="post" action="login.php">
Inlognaam: <input name="username" type="text"><br>
wachtwoord: <input name="wachtwoord" type="password"><br>
<input type="submit" name="Submit" value="Inloggen">
</form>
</body>
</html>';
echo $username;
}
}?>
zet dit eens boven je pagina.
Wat is dit voor controle? Maak daar gewoon eens dit van:
Verder mag je nooit, maar dan ook echt nooit, POST variabelen direct in je query gebruiken. Deze moet je altijd minimaal beveiligen met mysql_real_escape_string().
Ook schort er nog wel wat aan je foutafhandling. Als bij jou je query mislukt laat je het script stuk lopen en de melding uit $fout weergeven. Maar voor zover ik hier kan zien bestaat $fout helemaal niet? Of staat die soms in het bestand dat je include? Maar waarom geef je niet gewoon de mysql foutmelding weer, daar heb je vele malen meer aan...
En waarom ga je de resultaat set fetchen als je verder niets meer met die informatie doet? Dit is zeker geen controle of de query resultaten opgeleverd heeft, daar zou je veel beter mysql_num_rows() voor kunnen gebruiken.