Ik ben een redelijk eenvoudige website dynamisch aan het maken, hier dus een simpel custom content management systeem bij. So far so good. Echter dat systeem wil ik nu even op een juiste manier van een login/password voorzien.
Het globale idee is dat ik het volgende aan bestanden heb:
- index.php
- login.inc
- welcome.inc
- *.inc (voor verschillende zaken m.b.t. content management)
Login.inc bevat het volgende:
Verder zit er het volgende form in login.inc:
In index.php staat de volgende code:
Nou het probleem is dus als volgt. Naar mijn mening, maar die zal ongetwijfeld niet kloppen, dient er als ik met de juiste loginnaam en wachtwoord gesubmit heb welcome.inc ingeladen te worden. Echter op dat moment wordt er geen enkele include meer ingeladen. Ook bij een foute login wordt er geen enkele include ingeladen, dus login.inc ook niet opnieuw.
Mocht iemand me kunnen helpen, dan graag. Het zal, zoals altijd, wel weer een simpel foutje zijn waar ik gewoon overheen aan het kijken ben.
Het globale idee is dat ik het volgende aan bestanden heb:
- index.php
- login.inc
- welcome.inc
- *.inc (voor verschillende zaken m.b.t. content management)
Login.inc bevat het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| if ($ingevuld == "yep") { $query = "SELECT UserID FROM cnt_Users WHERE Name = '$Name' AND Password = '$Password';"; $result = mysql_query($query); $row = mysql_fetch_row($result); $UserID = $row['0']; if ($UserID <> "") { $HTTP_SESSION_VARS['ingelogd'] = "yes"; ?> <script>window.navigate("index.php");</script> <? } } |
Verder zit er het volgende form in login.inc:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <form name="Login" method="post" action="index.php"> <input type="hidden" name="ingevuld" value="yep"> <td width="545" cellspacing="0" cellpadding="0" border="0"> <table width="545" cellspacing="0" cellpadding="0" border="0"> <tr> <td width="100" align="left" valign="middle" height="25">Usernaam:</td> <td width="250" align="left" valign="middle" height="25"><input type="text" class="textbox" name="Name"></td> </tr> <tr> <td width="100" align="left" valign="middle" height="25">Wachtwoord:</td> <td width="250" align="left" valign="middle" height="25"><input type="password" class="textbox" name="Password"></td> </tr> <tr> <td width="100" align="left" valign="middle" height="25"></td> <td width="250" align="left" valign="middle" height="25"><input type="submit" name="submit" value="inloggen"></td> </tr> </table> </td> </form> |
In index.php staat de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| if (isset($HTTP_SESSION_VARS['ingelogd'])) { switch ($page) { case ListCategories: require ("inc/listcategories.inc"); break; default: require ("inc/welcome.inc"); break; } } else { include("inc/login.inc"); } |
Nou het probleem is dus als volgt. Naar mijn mening, maar die zal ongetwijfeld niet kloppen, dient er als ik met de juiste loginnaam en wachtwoord gesubmit heb welcome.inc ingeladen te worden. Echter op dat moment wordt er geen enkele include meer ingeladen. Ook bij een foute login wordt er geen enkele include ingeladen, dus login.inc ook niet opnieuw.
Mocht iemand me kunnen helpen, dan graag. Het zal, zoals altijd, wel weer een simpel foutje zijn waar ik gewoon overheen aan het kijken ben.