SQL gegevens uitlezen & SESSION

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Javascript Typescript Developer ICT / MySQL

Over de werkgever: Wij bieden allround expertise voor de bouw- en vastgoedbranche. Ben jij een enthousiaste Javascipt Developer? Heb je kennis van React en Angular? Vaste baan: Javascript Typescript Developer ICT React Angular 3.000 - 4.500 Javascript Typescript Developer Wij zijn een adviesbureau voor grote vastgoedeigenaren. Expertise op maat wordt aangeboden aan zorginstanties, beleggers, ontwikkelaars, corporaties, gemeenten, cultuurinstanties, hulpdiensten, onderwijsinstellingen en bedrijven. Wij hebben brede, strategische kennis op het gebied van financiën. Wij zijn een veelzijdige organisatie. Je werkt voor onze eigen IT organisatie. We werken met moderne technologie en staan open voor innovatie. Wat houdt de functie precies in?:

Bekijk vacature »

Kevin Zegikniet

Kevin Zegikniet

16/11/2012 21:28:33
Quote Anchor link
Hallo,

Ik wil met een sql query gegevens uit mijn database uitlezen, en deze in een session variabele stoppen.
Twee problemen:

- Iemand logt in, is correct. Voordat hij wordt doorgestuurd naar zijn profiel, wil ik uit de query het 'id' halen wat bij de username hoort. Dit is net zoals username en password enz een kolom in de database.
Query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$sql = mysql_query (
        "SELECT id
        FROM user
        WHERE username = '" . mysql_real_escape_string($_POST['username']) . "'
        AND password = '" . mysql_real_escape_string($_POST['password']) . "'
        " );


- Iemand is daarna ingelogd, en is op zijn profiel gekomen. De eerste keer dat hij inlogt, moet hij een lijst met kenmerken invullen. Deze staan op een aparte pagina. Ik wil met behulp van zijn id (zie eerste probleem) in de database kijken of een bepaald veld leeg is of niet, en als dat veld leeg is stuur ik hem door naar die pagina.
Script/query:

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
<?php
session_start();
$con = mysql_connect("localhost","root","") or die('Could not connect: ' . mysql_error());
mysql_select_db("datingsite", $con) or die('Could not find database: ' . mysql_error());
// Kijk of lijst 1 ingevuld is, zo niet stuur door naar lijst 1
$sql=" SELECT Provincie
FROM user
WHERE id = '"
. ($_SESSION['id']) . "' "
IF ($sql(provincie) IS NULL)
    {
header('Location: insert-kenmerk1.php'); }
// Kijk of lijst 2 ingevuld is, zo niet stuur door naar lijst 2
$sql=" SELECT Provincie
FROM partner
WHERE id = '"
. ($_SESSION['id']) . "' "
IF ($sql(provincie) IS NULL)
    {
header('Location: insert-kenmerk2.php'); }
?>


Dit klopt vast en zeker niet, vooral de eerste niet.
Vertel graag even wat er fout is, en hoe het wel moet.

Alvast bedankt!
Gewijzigd op 16/11/2012 21:34:26 door Kevin Zegikniet
 
PHP hulp

PHP hulp

30/07/2021 16:36:51
 
Eddy E

Eddy E

16/11/2012 21:32:02
Quote Anchor link
Zet eens iets als dit bovenaan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
error_reporting(E_ALL);
?>


Er zitten gewoon foutmeldingen in het script. Haal die er eerst eens ZELF uit.
Dan zal ik eens kijken.

Toevoeging op 16/11/2012 21:36:49:

Ben weer in een veel te goede bui volgens mij:

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
<?php
    session_start();
    $con = mysql_connect("localhost", "root", "") or die('Could not connect: ' . mysql_error());
    mysql_select_db("datingsite", $con) or die('Could not find database: ' . mysql_error());

    // Kijk of lijst 1 ingevuld is, zo niet stuur door naar lijst 1
    $sql = " SELECT Provincie
                FROM user
                WHERE id = "
. intval($_SESSION['id']) . "
                ORDER BY id"
;

    $res = mysql_query($sql);
    if($res == false)
    {

        echo 'Er is een fout op regel ' . __LINE__;
    }

    else
    {
        $information = mysql_fetch_row($res);
        if($information[0] == '')
        {

            header('Location: insert-kenmerk1.php');
        }
    }


    // Kijk of lijst 2 ingevuld is, zo niet stuur door naar lijst 2
    // Kijk of lijst 1 ingevuld is, zo niet stuur door naar lijst 1

    $sql = " SELECT Provincie
                FROM partner
                WHERE id = "
. intval($_SESSION['id']) . "
                ORDER BY id"
;

    $res = mysql_query($sql);
    if($res == false)
    {

        echo 'Er is een fout op regel ' . __LINE__;
    }

    else
    {
        $information = mysql_fetch_row($res);
        if($information[0] == '')
        {

            header('Location: insert-kenmerk2.php');
        }
    }

?>


En wat zie ik... sla je op 2 plekken dezelfde gegevens op?
Heb je voor de gebruiker een tabel en voor de 'partner' een andere tabel met exact dezelfde opzet?
En wat moet ik verstaan onder partner? Echtgenoot? Vriendje? Of speelmaatje in een computerspel?

Mocht het zo zijn dat je gegevens 2 keer opslaat: niet doen!
 
Kevin Zegikniet

Kevin Zegikniet

16/11/2012 21:55:15
Quote Anchor link
Ehh even ter verduidelijking:
Ik moet voor Informatica een site maken, een database opzetten en een verbinding daartussen.
Je moet kunnen registreren (gegevens wegschrijven), kunnen inloggen (gegevens uitlezen), en weer kenmerken invullen (weer wegschrijven, maar nu op een precieze plek waar het id al vaststaat (wat trouwens ook auto-increment is) ).
Wij schrijven dus gegevens weg over wat de gebruiker zelf is (huidskleur, opleiding, provincie waar 'ie woont, etc) en over wat de gebruiker in een (potentiele) partner zoekt (heeft in principe zelfde kenmerken, met als verschil dat een aantal gegevens anders worden opgeslagen )

Gegevens twee keer opslaan is dus hetgene wat ik wil voorkomen. Ik kijk in het script zelf eerst al of alles goed ingevuld is, en pas als dat zo is, schrijf ik de gegevens weg.

Ik krijg nu een error "unexpecting '}' ", op de plek waar die juist moet staan. En Notepad + + geeft ook aan dat de } een voorafgaande { heeft, en alles wat daarbinnen gebeurt ook. Dit is dus bij de error_reporting(E_ALL); lijn.

Ik heb nu bij profiel bovenstaande eens geprobeerd.
Bij de regel waar staat
echo 'Er is een fout op regel ' . __LINE__;
(rgl 15)
Vind het script een fout, die verwijst naar, raad eens?
Juist. regel 15.

ik upload het hele script wel even, ik kom er ook niet meer uit.
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
<?php
session_unset();
session_start();

mysql_connect("localhost", "root", "") or die("Kan niet verbinden met de database: " . mysql_error());
mysql_select_db("datingsite") or die("Kan de database niet vinden: ". mysql_error());

$sql = mysql_query (
        "SELECT id
        FROM user
        WHERE username = '"
. mysql_real_escape_string($_POST['username']) . "'
        AND password = '"
. mysql_real_escape_string($_POST['password']) . "'
        "
);

IF($sql === false)
    {
echo 'Error: ' . mysql_error(); }
else {
    // Kijk of lijst 1 ingevuld is, zo niet stuur door naar lijst 1
    $sql="  SELECT Provincie
            FROM user
            WHERE id = "
. intval($_SESSION['id']) . "
            ORDER BY id"
;
    if ((mysql_query($sql)) == false)
        {
echo"Er is een fout op regel " . __LINE__; }
    else {  $info = mysql_fetch_row(mysql_query($sql));
        if ($info[0] == '')
            {
header('Location: insert-kenmerk1.php'); }
        else {// Kijk of lijst 2 ingevuld is, zo niet stuur door naar lijst 2
            $sql="  SELECT Provincie
                FROM partner
                WHERE id = "
. intval($_SESSION['id']) . "
                ORDER BY id"
;
            if ((mysql_query($sql)) == false)
                {
echo"Er is een fout op regel " . __LINE__ ; }
            else {  $info = mysql_fetch_row(mysql_query($sql));
                if ($info[0] == '')
                    {
header('Location: insert-kenmerk2.php'); }
                else { //Ga naar profiel
                    if(mysql_num_rows($sql) == 1)
                        {
$_SESSION['username']=$_POST[username];
                        $_POST[controle]="FALSE";
                        $_SESSION['id']=$sql;
                        header('Location: profiel.php'); }
                    else
                        { $_SESSION['error_inlog']="Verkeerde combinatie ingevuld!";
                        header('Location: index.html'); }
                    }
                }
            }
        }
    }



?>


Hiermee krijg ik dus de error:
"Er is een fout op regel 24"
Dit is de eerste __LINE__
Gewijzigd op 16/11/2012 22:33:54 door Kevin Zegikniet
 
John D

John D

16/11/2012 22:53:15
Quote Anchor link
Zoals Eddy zegt, users-partners in 1 tabel en dan maak je een koppelattribuut id_partner in hetzelfde record of wanneer er een n-op-m relatie is (meerdere users hebben meerdere partners) maak je een koppeltabel.
Gewijzigd op 16/11/2012 22:53:44 door John D
 
Kevin Zegikniet

Kevin Zegikniet

16/11/2012 22:58:17
Quote Anchor link
@John D
Dafuq?
Ik had het eerst zo ontworpen:
- tabel voor wat de user is
- tabel voor wat de user zoekt

Als ik dan de tabel user vergelijk met de tabel partner van een ander, kijk ik of het een 70% match is (ik zeg maar wat, daar ben ik nog niet aan toe).
Als het een 70% match is, kijk ik of de tabel user van de ander ook overeenkomt met de tabel partner van de eerste persoon. is dit ook een 70% match, dan zijn ze aan elkaar gematchd.
Misschien moet ik daar idd nog een tabel voor maken, de match-tabel.
Ik denk dan aan de volgende kolomen:
ID-1 | voornaam-1 | achternaam-1 | matchpercentage | ID-2 | voornaam-2 | achternaam-2

Maar zoals ik al zei, daar ben ik nog lang niet aan toe.
 
John D

John D

16/11/2012 23:08:10
Quote Anchor link
Maak 1 tabel met users en daarin doe je een extra veld partner_id en een veld matchpercentage en misschien nog wat andere velden die je nodig denkt te hebben. Zo heb je dus om te beginnen alles in 1 tabel. Iedereen komt in die ene tabel en bij matchen vergelijk je met iedereen in de tabel behalve met zichzelf. Bij een match vul je bij beiden in partner_id het id van de ander en het matchpercentage. Kunnen er meerdere personen met meerdere personen gematched worden (n-op-m relatie) dan maak je inderdaad een koppeltabel met id_1, id_2 en match_percentage en vervallen dus de extra velden in users.
Gewijzigd op 16/11/2012 23:11:55 door John D
 
Kevin Zegikniet

Kevin Zegikniet

16/11/2012 23:09:08
Quote Anchor link
Haha oeps...
ik heb de database nog eens bekeken, en daar zat nog een oude tabel in, waar de kolom Provincie nog niet instond. FF illegaal erbij gezet (niet nieuwe script geload maar via phpmyadmin erbij gezet) en nu werkt ie.
Sorry jongens!

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
<?php
session_start();
$_POST['username']="admin";
$md5_pass=(md5("root"));
$con = mysql_connect("localhost","root","") or die('Could not connect: ' . mysql_error());
mysql_select_db("datingsite", $con) or die('Could not find database: ' . mysql_error());
$sql_inlog = mysql_query (
        "SELECT id
        FROM user
        WHERE username = '"
. mysql_real_escape_string($_POST['username']) . "'
        AND password = '"
. ($md5_pass) . "'
        "
);
echo $_SESSION['id'];
$_SESSION['id']=mysql_fetch_row($sql_inlog);
?>

Geeft de uitkomst:
"Array"
Wat nu?
Ik wil graag de uitkomst "30" (heeft id 30 in de database)
Gewijzigd op 16/11/2012 23:46:48 door Kevin Zegikniet
 
Marco PHPJunky

Marco PHPJunky

17/11/2012 01:17:31
Quote Anchor link
Even een paar puntjes:

- Niet onnodig variabele aanmaken als dat niet nodig is!
- Vergeet a.u.b. zo snel mogelijk de functie or die die had al lang uit PHP verbannen moeten worden!
(kijk een naar de goede en vele malen nettere manier try/catch Linkje)
- Het gebruik van MySQL is echt uit het Stene tijdperk en zwaar afgeraden (zelfs door PHP zelf Rode Vlak om te beginnen) kijk eens naar mysqli of pdo!
- check de invoer van de gebruikers en kijk of de gebruiker wel bestaat in je database.
- waarom heb je line 3 nodig ?
- Gebruik GEEN md5 ook die is zwaar achterhaald, gebruik een hash!(bv. sha512() )
- kijk eens naar SQL limit en input controlles.

als je wilt kijken wat er in de array zit dan kan je dat zo doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
echo '<pre>';
echo var_dump($_hier_de_array_variabele);
echo '</pre>';


en misschien heb je hier ook wat aan:
SQL Handleiding
PHP Handleiding
Fouten tegengaan

Greets.
Gewijzigd op 17/11/2012 01:19:40 door Marco PHPJunky
 
Kevin Zegikniet

Kevin Zegikniet

17/11/2012 01:23:11
Quote Anchor link
- heb ik al gedaan, anders waren er nog veel meer variabelen gedaan.
- ik vind em wel handig
- het gebruik van MySQL is verplicht door onze leraar
- Doe ik toch ook? Volgens mij haal ik alle rijen uit de database waar de combinatie van het ingevulde username en wachtwoord instaat, en als dit geen 1 is (dus als er meer mensen zijn of als er geen mensen zijn) wordt 'ie niet binnengelaten
- Ik kan ook de gegevens doorsturen vanaf de vorige pagina, maar dit komt op hetzelfde neer en dit is korter (dit gebruik ik dus NIET op de site, maar dit is een verkorte versie voor hierop)
- Okido, zal eens even rondkijken. Dat werkt hetzelfde als md5 voor het script? (md5 is "md5($variabele)")

Thnx voor de functie!
 
Marco PHPJunky

Marco PHPJunky

17/11/2012 01:49:24
Quote Anchor link
or die is alleen 'toegestaan' / 'getolereerd' in een ontwikkel omgevingen en eigenlijk daar nog geen eens!
Hij is niet netjes in het weergeven van een foutmelding hij stopt direct die uitvoer van de overige scripts in plaats van een nette foutmelding weer te geven waar een gebruiker wat aan heeft.

Verplicht door je leraar ?! Dan zou ik hem toch eens heel snel ervan overtuigen dat hij jullie dingen aan leert die totaal niet meer gebruikt mogen worden en uit het jaar 1700 komen ( of zo snel mogelijk een betere leraar zoeken die wel weet wat normaal en wat de afgelopen 10 jaar veranderd is)!!

een simpele hash ziet er bijvoorbeeld zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
 $pepper
= 'een_geheim_woord';
 hash('sha512', $wachtwoord . $pepper);
?>


md5 word afgeraden omdat het al heeeeeeeel erg oud is en er 1000 en 1 :P md5 rainbow tables bestaan waar bijna elke denkbaar wachtwoord in staat in md5 en daardoor vrij eenvoudig gekraakt kan worden!


Ik weet niet of je dat doet want ik zie geen recent overzicht van de huidige code maar het ziet er in je laatste stukje niet echt goed/netjes uit en ook dat je het niet checked!
 
Kevin Zegikniet

Kevin Zegikniet

17/11/2012 02:01:02
Quote Anchor link
Wat is dan wel toegestaan/getollereerd (en liefst in zelfde 'opmaak') ?

Ik zit nog op de middelbare school he? En we hebben maar 1 informaticaleraar, maar bij hem is het vak heilig. Kom je aan zijn vak, dan kom je aan hem. Verder is het heen hele leuke man.

Ik zal eens kijken.

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
56
57
<?php
session_unset();
session_start();

mysql_connect("localhost", "root", "") or die("Kan niet verbinden met de database: " . mysql_error());
mysql_select_db("datingsite") or die("Kan de database niet vinden: ". mysql_error());
$sha512_pass=(hash('sha512', $sha512_pass, $_POST['password']));

$sql_inlog = mysql_query (
        "SELECT id
        FROM user
        WHERE username = '"
. mysql_real_escape_string($_POST['username']) . "'
        AND password = '"
. mysql_real_escape_string($sha512_pass) . "'
        "
);
    $_SESSION['id']="<pre><var_dump($sql_inlog)></pre>";
IF($sql_inlog === false)
    {
echo 'Error: ' . mysql_error(); }
else {
    // Kijk of lijst 1 ingevuld is, zo niet stuur door naar lijst 1
    $sql_l1 = mysql_query (
            "SELECT provincie
            FROM user
            WHERE id = "
. intval($_SESSION['id']) . "
            ORDER BY id"
) ;
    if ($sql_l1 === false)
        {
echo 'Error: ' . mysql_error(); }
    else {  $info = mysql_fetch_row($sql_l1);
        if ($info[0] == '')
            {
header('Location: lijst1.php'); }
        else {// Kijk of lijst 2 ingevuld is, zo niet stuur door naar lijst 2
            $sql_l2=mysql_query(
                "SELECT Provincie
                FROM partner
                WHERE id = "
. intval($_SESSION['id']) . "
                ORDER BY id"
);
            if ($sql_l2===false)
                {
echo"Er is een fout op regel " . __LINE__ ; }
            else {  $info = mysql_fetch_row($sql_l2);
                if ($info[0] == '')
                    {
header('Location: lijst2.php'); }
                else { //Ga naar profiel
                    if(mysql_num_rows($sql_inlog) == 1)
                        {
$_SESSION['username']=$_POST[username];
                        $_POST[controle]="FALSE";
                        $_SESSION['id']=$sql_inlog;
                        header('Location: profiel.php'); }
                    else
                        { $_SESSION['error_inlog']="Verkeerde combinatie ingevuld!";
                        header('Location: index.html'); }
                    }
                }
            }
        }
    }



?>


Ik snap er nu helemaal niks meer van, trouwens.
EDIT: gefixt.
Gewijzigd op 17/11/2012 02:07:08 door Kevin Zegikniet
 

17/11/2012 02:23:15
Quote Anchor link
in plaats van or die, kijk eens naar try / catch, hiermee kan je een veel betere foutafhandeling maken, daarnaast zou ik inplaats van mysql, pdo of mysqli gebruiken.
Voor het hashen van wachtwoorden kijk eens naar crypt en de daarbij behorende functies.
 
Marco PHPJunky

Marco PHPJunky

17/11/2012 12:38:25
Quote Anchor link
@Kevin,

Ik heb hem heel even een beetje voor je aangepast...
Met PDO en nog wat andere dingen...

Je zou ook nog het verbinden met de database in een apart bestand kunnen zetten en deze 'includen'
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
// verzin een leuke naam...
include('db_verbinding.php');
// of
require('db_verbinding.php');
?>

(de include/require moet dan na de session_start() en voor de eerste if komen te staan)

Have Fun...

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
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<?php
session_start();
// weg halen of uit zetten als het live gaat!
ini_set('display_errors', 1);
error_reporting(E_ALL);

 // Gegevens voor verbinden met de database.....
$db = array(
    'host' => 'localhost',
    'dbname' => 'datingsite',
    'user' => 'root',
    'pass' => ''
);

try // probeer verbinding te maken met de database.....
{
    $db = new PDO('mysql:host='.$db['host'].';dbname='.$db['dbname'], $db['user'], $db['pass']);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->query("SET SESSION sql_mode = 'ANSI,ONLY_FULL_GROUP_BY'");
}

catch(PDOException $e) // als er iets fout gaat....
{
    $sMsg = '<p>
            <hr>
            Regelnummer: '
.$e->getLine().'<br />
            Bestand: '
.$e->getFile().'<br />
            Trace: '
. $e->getTraceAsString() .'<br />
            Foutmelding: '
.nl2br($e->getMessage()).'
            <hr>
            </p>'
;
    
    trigger_error($sMsg);
}


if( $_SERVER['REQUEST_METHOD'] == 'POST' ): // is er een post gedaan....
    // kijken of er een wachtwoord is ingevuld en of deze langer of gelijk is aan minimaal 5 tekens

    if ( empty($_POST['password']) || !is_string($_POST['password']) || is_null($_POST['password']) || !strlen($_POST['password']) >= 5 ):
        // Leeg Wachtwoord...
        $_SESSION['error_inlog'] = "Er is nog geen wachtwoord ingevuld!";
        header('Location: index.html'); // doorsturen....
        exit();
    endif;

    // kijken of er een gebruikersnaam is ingevuld en of deze langer of gelijk is aan minimaal 5 tekens
    if ( empty($_POST['username']) || !is_string($_POST['username']) || is_null($_POST['username']) || !strlen($_POST['username']) >= 5 ):
        // Lege Gebruikersnaam
        $_SESSION['error_inlog'] = "Er is nog geen Gebruikersnaam ingevuld!";
        header('Location: index.html'); // doorsturen....
        exit();
    endif;

    // kijken of beide dingen zijn ingevuld en ook minimaal 5 tekens lang zijn...
    if ( !empty($_POST['password']) && !is_null($_POST['password']) && is_string($_POST['username']) && strlen($_POST['password']) > = 5 && !empty($_POST['username']) && !is_null($_POST['username']) && strlen($_POST['username']) > = 5 ):
        // Verrander de pepper met je eigen geheime tekst...
        $pepper = 'GehE!m_W@chtw00rD';
        // wachtwoord maken....
        $sha512_pass = hash('sha512', $_POST['password'] . $pepper);

        try // probeer query uit te voeren...
        {        
            $stmt = $db->prepare('select id from user where username = :gebruikersnaam and password = :wachtwoord limit 1');
            $stmt->bindParam(':gebruikersnaam', $_POST['username'], PDO::PARAM_STR);  // gebruikersnaam binden aan query....
            $stmt->bindParam(':wachtwoord', $sha512_pass, PDO::PARAM_STR);  // wachtwoord binden aan query....
            
            $stmt->execute(); // uitvoeren....
        }
        catch(PDOException $e) // als er iets fout gaat....
        {
            $sMsg = '<p>
                    <hr>
                    Regelnummer: '
.$e->getLine().'<br />
                    Bestand: '
.$e->getFile().'<br />
                    Trace: '
. $e->getTraceAsString() .'<br />
                    Foutmelding: '
.nl2br($e->getMessage()).'
                    <hr>
                    </p>'
;
            
            trigger_error($sMsg);
        }


            if ( $stmt->rowCount() ): // als er resultaten zijn...

                $res = $stmt->fetchAll(); // resultaat ophalen en in $res zetten....
                if (!is_null($res['id']) && is_numeric($res['id']) && !empty($res['id']) && (int)$res['id'] ): // als het ID van de gebruiker goed is....
                    try // probeer query uit te voeren....
                    {        
                        // Check For Lijst 1....
                        $stmt_lijst1 = $db->prepare('select provincie from user where id = :user_id limit 1');
                        $stmt_lijst1->bindParam(':user_id', (int)$_SESSION['id'], PDO::PARAM_INT);

                        $stmt_lijst1->execute(); // uitvoeren...
                    }
                    catch(PDOException $e) // als er iets fout gaat...
                    {
                        $sMsg = '<p>
                                <hr>
                                Regelnummer: '
.$e->getLine().'<br />
                                Bestand: '
.$e->getFile().'<br />
                                Trace: '
. $e->getTraceAsString() .'<br />
                                Foutmelding: '
.nl2br($e->getMessage()).'
                                <hr>
                                </p>'
;
                        
                        trigger_error($sMsg);
                    }


                        if ( stmt_lijst1->rowCount() ): // iets gevonden voor lijst 1....
                            try // probeer query uit te voeren...
                            {        
                                // Check For Lijst 2....
                                $stmt_lijst2 = $db->prepare('select provincie from partner where id = :user_id limit 1');
                                $stmt_lijst2->bindParam(':user_id', (int)$_SESSION['id'], PDO::PARAM_INT); // user ID binden aan query..

                                $stmt_lijst2->execute(); // uitvoeren...
                            }
                            catch(PDOException $e)  // als er wat fout gaat,,,
                            {
                                $sMsg = '<p>
                                        <hr>
                                        Regelnummer: '
.$e->getLine().'<br />
                                        Bestand: '
.$e->getFile().'<br />
                                        Foutmelding: '
.$e->getMessage().'
                                        <hr>
                                        </p>'
;
                                
                                trigger_error($sMsg);
                            }


                                if ( stmt_lijst2->rowCount() ): // iets gevonden voor lijst 2....

                                    // Sessions aanmaken...

                                     $_SESSION['id'] = (int)$res['id'];
                                     $_SESSION['username'] = $_POST['username'];
                                     $_SESSION['controle'] = FALSE;

                                     // Doorsturen...
                                     header('Location: profiel.php');
                                     exit();

                                else: // Niks gevonden in lijst 1.....
                                    
                                    $_SESSION['error_inlog'] = "Er is niks gevonden in Lijst 2";
                                    header('Location: lijst2.php');   // Doorsturen...              
                                    exit();
                                endif;

                        else:  // Niks gevonden in lijst 1.....
                          
                            $_SESSION['error_inlog'] = "Er is niks gevonden in Lijst 1";
                            header('Location: lijst1.php'); // Doorsturen...            
                            exit();
                        endif;

                else: // Het ID van de gebruiker is niet geldig....
                    
                    $_SESSION['error_inlog'] = "Er is geen geldig ID gevonden van de gebruiker!";
                    header('Location: index.html'); // Doorsturen...
                    exit();
                endif;

            else: // Niet gevonden in de database...
                
                $_SESSION['error_inlog'] = "De combinatie van deze gebruikersnaam en wachtwoord bestaad niet!";
                header('Location: index.html'); // Doorsturen...
                exit();
            endif;


            // Een HEEEEEEEL klein beetje opruimen (heeeeeel klein beetje maar)....
            unset($stmt_lijst2, stmt_lijst1, $res, $stmt);
    endif;
endif;

?>


ps. ik heb hem niet getest (het is heel simpel stukje) maar had er zin in :P ...
pss. is er nog een doel voor het opvragen van de data in de partner en gebruikers tabellen als je er toch niks mee doet ?
psss. dat is alsnog geen excuus om jullie maar dingen fout aan te leren (dan kan hij jullie net zo goed leren hoe een floppy of zip of B Drive werkt en eruit of de PIN aansluiting ziet als hij MySQL aanhoud!)

Greets.
Gewijzigd op 17/11/2012 15:24:29 door Marco PHPJunky
 
Kevin Zegikniet

Kevin Zegikniet

17/11/2012 15:38:26
Quote Anchor link
@Marco
Ik heb het ook nog niet getest, maar ik moet nu met andere dingen bezig (ooit van het PWS gehoord? Zonee dat betekent Profiel WerkStuk). Ik ga volgende week wel even testen.

Het doel is uiteindelijk om een match te maken. Ik weet niet of we daar aan toe komen, maar dat is het doel.

hij leert ons uberhaupt niks. Hij zegt "jullie gaan een site maken, en jullie kijken maar op (site waar we de info vandaanhalen, is het boek maar dan online) hoe het moet." En als er wat is, dan moeten we het zelf uitzoeken, het enige wat hij wel doet is controleren hoever we zijn.

Toevoeging op 17/11/2012 21:55:43:

Laat maar jongens, ik gebruik wel de username die is ingevuld bj het inloggen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
echo '<pre>';
echo var_dump($_hier_de_array_variabele);
echo '</pre>';

geeft nog steeds
"Array"
 



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.