Type ophalen uit database
Mijn script voor inloggen is zo goed als af.. Ga er alleen straks nog een sessie inzetten.. Ik loop alleen nog vast op 1 foutmelding.
Bij het registeren moet er gekozen worden tussen docent en beheerder (de beheerder doet zelf de registraties). Als je inlogt moet er in het database gekeken worden of de gegevens van een beheerder zijn of van een docent. Deze hebben allebei een aparte link. Alleen werkt dit niet helemaal goed, hij pakt niet het juiste type.
Type docent heeft value 0 en beheerder value 1..
Hoop dat jullie zien wat ik fout doe. Ben nog nieuw op dit gebied dus zal vast wel iets doms gedaan hebben.
Hier mijn script:
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
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
<?php
/* Bestand: index.php
* Beschrijving: De pagina die u als eerste ziet. Hier kunt u inloggen.
*/
//Verbinding met Database maken doormiddel van conn.php
include 'conn.php';
//---------------------------------------------------------------------------------------------------------------------
/* Hier wordt de sessie die beneden wordt aangeroepen gestart.*/
session_start();
if($_SERVER['REQUEST_METHOD'] == "POST")
{
/*Alles naar makkelijke variabelen omzetten.*/
$user = $_POST[username];
$pass = $_POST[password];
/*Database contacten wordt verder op uitgelegt.*/
$sql = "SELECT * FROM users WHERE username='" . $_POST[username] . "' AND password='" . $_POST[password] . "'";
$result = mysql_query($sql, $conn );
$user_sql = "SELECT type FROM users WHERE username='" . $_POST[username] . "' AND password='" . $_POST[password] . "'";
$user_result = mysql_query($user_sql , $conn );
$message = "";
/*Hier wordt er gekeken of alle velden ingevuld zijn.
Als dit niet het geval is krijgt de gebruiker een foutmelding.*/
if (empty($user) || empty($pass))
{
$message .= "U moet alle velden invullen.";
}
/*Gegevens komen voor in het database. Gebruiker wordt hier ingelogd.*/
elseif (($row = mysql_fetch_array($result)) != 0)
{
if (($row = mysql_fetch_array($user_result)) != 0)
{
$message .= "U bent ingelogd als beheerder.";
header ('refresh: 1; url=..//beheerder/index.php');
}
else
{
$message .= "U bent ingelogd docent.";
header ('refresh: 1; url=..//docent/index.php');
}
}
/*Als de gegevens niet in het database voorkomen wordt er hier een fout gemeld.*/
else
{
$message .= "Login gegevens zijn incorrect.";
}
}
?>
/* Bestand: index.php
* Beschrijving: De pagina die u als eerste ziet. Hier kunt u inloggen.
*/
//Verbinding met Database maken doormiddel van conn.php
include 'conn.php';
//---------------------------------------------------------------------------------------------------------------------
/* Hier wordt de sessie die beneden wordt aangeroepen gestart.*/
session_start();
if($_SERVER['REQUEST_METHOD'] == "POST")
{
/*Alles naar makkelijke variabelen omzetten.*/
$user = $_POST[username];
$pass = $_POST[password];
/*Database contacten wordt verder op uitgelegt.*/
$sql = "SELECT * FROM users WHERE username='" . $_POST[username] . "' AND password='" . $_POST[password] . "'";
$result = mysql_query($sql, $conn );
$user_sql = "SELECT type FROM users WHERE username='" . $_POST[username] . "' AND password='" . $_POST[password] . "'";
$user_result = mysql_query($user_sql , $conn );
$message = "";
/*Hier wordt er gekeken of alle velden ingevuld zijn.
Als dit niet het geval is krijgt de gebruiker een foutmelding.*/
if (empty($user) || empty($pass))
{
$message .= "U moet alle velden invullen.";
}
/*Gegevens komen voor in het database. Gebruiker wordt hier ingelogd.*/
elseif (($row = mysql_fetch_array($result)) != 0)
{
if (($row = mysql_fetch_array($user_result)) != 0)
{
$message .= "U bent ingelogd als beheerder.";
header ('refresh: 1; url=..//beheerder/index.php');
}
else
{
$message .= "U bent ingelogd docent.";
header ('refresh: 1; url=..//docent/index.php');
}
}
/*Als de gegevens niet in het database voorkomen wordt er hier een fout gemeld.*/
else
{
$message .= "Login gegevens zijn incorrect.";
}
}
?>
<html>
<head>
<title>Index</title>
<!--Stylesheet wordt geladen.-->
<link rel="stylesheet" type="text/css" href="../opmaak.css">
</head>
<body>
<form method="post" action="">
<table width="800">
<tr>
<td colspan="2" class="message">
</td>
</tr>
<tr>
<th colspan="2">INLOGGEN</th>
</tr>
<tr>
<td align="right"><p>Gebruikersnaam</p>
</td>
<td><input type="text" name="username" size="20" />
</tr>
<tr>
<td align="right">Wachtwoord</td>
<td><input type="password" name="password" size="20" />
</td>
</tr>
<tr>
<th colspan="3"><input type="submit" class="submit" name="action" value="Inloggen"> <a href="registeren.php">[Registeren]</a></th>
</tr>
</table>
</form>
</body>
</html>
Ik denk dat hij het type niet uit het database haalt zoals het hoort. Kan de fout hier zitten? Volgens mij staat de zin goed..
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
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
<?php
/*
* Bestand: index.php
* Beschrijving: De pagina die u als eerste ziet. Hier kunt u inloggen.
*/
//Verbinding met Database maken doormiddel van conn.php
require ('conn.php');
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty ($_POST['username']) && !empty ($_POST['password'])) {
/*Alles naar makkelijke variabelen omzetten.*/
$username = htmlspecialchars ($_POST['username']);
$password = htmlspecialchars ($_POST['password']);
/*Database contacten wordt verder op uitgelegd.*/
$sql = "
SELECT username, password, type
FROM users
WHERE username = '" . $username . "'
AND password = '" . $password . "'";
$result = mysql_query ($sql, $conn) or trigger_error (mysql_error ());
if (mysql_num_rows ($result) == 1) {
$message = '';
/*Gegevens komen voor in het database. Gebruiker wordt hier ingelogd.*/
else {
$row = mysql_fetch_array($result);
if ($row['type'] == 1) {
$msg .= 'U bent ingelogd als beheerder';
header('refresh: 1; url=..//beheerder/index.php');
exit ();
}
elseif ($row['type'] == 0) {
$msg .= 'U bent ingelogd als docent';
header('refresh: 1; url=..//docent/index.php');
exit ();
}
}
}
else {
$message .= "Login gegevens zijn incorrect.";
}
}
?>
/*
* Bestand: index.php
* Beschrijving: De pagina die u als eerste ziet. Hier kunt u inloggen.
*/
//Verbinding met Database maken doormiddel van conn.php
require ('conn.php');
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty ($_POST['username']) && !empty ($_POST['password'])) {
/*Alles naar makkelijke variabelen omzetten.*/
$username = htmlspecialchars ($_POST['username']);
$password = htmlspecialchars ($_POST['password']);
/*Database contacten wordt verder op uitgelegd.*/
$sql = "
SELECT username, password, type
FROM users
WHERE username = '" . $username . "'
AND password = '" . $password . "'";
$result = mysql_query ($sql, $conn) or trigger_error (mysql_error ());
if (mysql_num_rows ($result) == 1) {
$message = '';
/*Gegevens komen voor in het database. Gebruiker wordt hier ingelogd.*/
else {
$row = mysql_fetch_array($result);
if ($row['type'] == 1) {
$msg .= 'U bent ingelogd als beheerder';
header('refresh: 1; url=..//beheerder/index.php');
exit ();
}
elseif ($row['type'] == 0) {
$msg .= 'U bent ingelogd als docent';
header('refresh: 1; url=..//docent/index.php');
exit ();
}
}
}
else {
$message .= "Login gegevens zijn incorrect.";
}
}
?>
edit: code nog wat mooier gemaakt
Gewijzigd op 12/03/2006 11:29:00 door Jan Koehoorn
thx! Ik ziet er een stuk beter uit.. Krijg alleen nu telkens het bericht als ik wil inloggen "Login gegevens zijn incorrect. Hij komt dus telkens bij de laatste else uit. Heb gezocht wat het zou kunnen zijn, maar ik zie de fout zo 123 niet..
Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\workshops\inloggen\index.php on line 26
Ik heb de fout net gevonden! Bedankt voor jullie hulp!