Type ophalen uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen

Jeroen

12/03/2006 10:48:00
Quote Anchor link
Eej jongens,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.";        
    }
}

?>



<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">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$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>
 
PHP hulp

PHP hulp

16/11/2024 20:39:37
 
Jason de Ridder

Jason de Ridder

12/03/2006 11:06:00
Quote Anchor link
ik zou het met een while loopje doen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
while($rij = mysql_fetch_object($query)) {
    if($rij->type == 1) {
       //dingen aanpassen
       echo 'u bent ingelogt als beheerder';
    }

    elseif ($rij->type == 0) {
       // dingen aanpassen
       echo 'u ben ingelogt als docent';
    }

    else {
     echo 'Uw type kon worden gelezen, u kunt niet inloggen.';
     exit;
    }
}

?>
Gewijzigd op 12/03/2006 11:07:00 door Jason de Ridder
 
Jeroen

Jeroen

12/03/2006 11:19:00
Quote Anchor link
thx, heb het aangepast. Alleen log ik nu standaard in als docent. Ook als de gebruiker het type beheerder heeft.

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$user_sql
= "SELECT type FROM users WHERE username='" . $_POST[username] . "' AND password='" . $_POST[password] . "'";
?>
 
Jan Koehoorn

Jan Koehoorn

12/03/2006 11:24:00
Quote Anchor link
Ik heb je hele code even veranderd, want er zaten erg veel fouten in.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.";
        }
    }

?>


edit: code nog wat mooier gemaakt
Gewijzigd op 12/03/2006 11:29:00 door Jan Koehoorn
 
Jeroen

Jeroen

12/03/2006 11:54:00
Quote Anchor link
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..
 
Jeroen

Jeroen

12/03/2006 13:46:00
Quote Anchor link
Zag dat je daarna nog een update gedaan hebt. Met die update krijg ik deze melding:

Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\workshops\inloggen\index.php on line 26
 
Jeroen

Jeroen

12/03/2006 16:04:00
Quote Anchor link
Ik heb de fout net gevonden! Bedankt voor jullie hulp!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.