Ik ben bezig met het maken van een login form voor school en moet deze a.s. zondag inleveren.
Ik ben al erg ver op weg, alleen mis ik nog 1 ding.
En dat is de gebruikersnaam laten staan indien alleen het wachtwoord fout is.
Maar daar voor moet ik natuurlijk wel op dezelfde pagina blijven. Maar omdat ik een switch gebruik word dat een beetje lastig.
Ook MOET ik TemplatePower gebruiken, vandaar dat ik alleen mijn PHP code laat zien.
Ik zag een filmpje op YouTube, waarbij diegene verschillende bestanden gebruikte en hij linkte alles met require en include. Hij gebruikte bijvoorbeeld index.php en loginform.inc.php. Maar omdat ik template power en een switch moet gebruiken, ben ik bang dat dat mij niet zal helpen. Hij gebruikte iets als isset en header function en het lukt hem om op dezelfde pagina te blijven, omdat hij index en loginform.inc. gebruikte. Is er een manier dat ik dat ook kan gebruiken? Of juist op een totaal andere manier?
Ik hoop dat ik geholpen kan worden, want ik kom er echt niet uit.
Bedankt alvast!
<?php
session_start();
$link = mysql_connect('localhost', 'root', '');
$db_selected = mysql_select_db('mydb', $link);
error_reporting(0);
include("includes/class.TemplatePower.inc.php");
$tpl = new TemplatePower("Werkbron4.html");
$tpl->prepare();
switch($_GET['actie'])
{
case logout:
if($_POST['submit'])
// controleren of er op logout gedrukt is
{
$_SESSION['accountsid'] = "";
$_SESSION['groepenid'] = "";
// de sessie leeghalen
$tpl->newBlock("LOGOUT_SESSION");
$tpl->assign("LOGOUT_SESSION", "U bent uitgelogd.");
// tekst weergeven nadat er op logout gedrukt is
}
else
{
$tpl->newBlock("LOGOUT_FORM");
// zo niet, terug naar formulier
}
break;
case login_sql:
if($_POST['gebruikersnaam'] AND $_POST['wachtwoord'])
// controleren of er een gebruikersnaam en wachtwoord is ingevuld
{
$gebruikersnaam = mysql_real_escape_string($_POST['gebruikersnaam']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);
// zo ja, beveilig de gebruikersnaam en het wachtwoord tegen SQL injecties
$check = mysql_query("SELECT * FROM accounts
WHERE gebruikersnaam='".$gebruikersnaam."'
AND wachtwoord='".sha1($wachtwoord)."'");
// haal de gegevens uit de database met deze query
if(mysql_num_rows($check) == 1)
// controleren of de gegevens over een komen. later bijwerken
{
$info = mysql_fetch_array($check);
// ?? later bijwerken
$_SESSION['accountsid'] = $info['accountsid'];
$_SESSION['groepenid'] = $info['groepenid'];
// gegevens in de sessie zetten
$tpl->newBlock("LOGOUT_FORM");
// laat de logout form zien
$tpl->newBlock("TEXT_INLOG");
$tpl->assign("TEXT_INLOG", "U bent ingelogd.");
// deze tekst laten zien indien er succesvol ingelogd is
if($_SESSION['groepenid'] == 1)
// kijken of het groepenid van het account dat inlogt overeenkomt met het groepenid 1
{
$tpl->newBlock("LOGIN_KLANT");
$tpl->assign("LOGIN_KLANT", "Welkom klant!");
// zo ja, laat deze tekst zien en eventueel andere informatie die een klant mag zien/doen
}
elseif($_SESSION['groepenid'] == 2)
// kijken of het groepenid van het account dat inlogt overeenkomt met het groepenid 2
{
$tpl->newBlock("LOGIN_ADMIN");
$tpl->assign("LOGIN_ADMIN", "Welkom Admin!");
// zo ja, laat deze tekst zien en eventueel andere informatie die een admin mag zien/doen
}
else
{
$tpl->newBlock("ERROR_GEEN");
$tpl->assign("ERROR_GEEN", "U heeft geen toestemming om hier te komen.");
// deze tekst laten zien als een account inlogt met een ander groepenid dan 1 of 2
}
}
else
{
$check2 = mysql_query("SELECT * FROM accounts
WHERE gebruikersnaam='".$gebruikersnaam."'");
// controleren of de ingevulde gebruikersnaam overeenkomt met degene in de database
if(mysql_num_rows($check2) == 1)
{
$tpl->newBlock("ERROR_PASS");
$tpl->assign("ERROR_PASS", "U heeft een ongeldig wachtwoord ingevuld.");
// deze tekst laten zien als de ingevulde gebruikersnaam correct is, maar het wachtwoord niet
}
else
{
$tpl->newBlock("ERROR_GEB");
$tpl->assign("ERROR_GEB", "U heeft een ongeldige gebruikersnaam ingevuld.");
// deze tekst laten zien als de ingevulde gebruikersnaam ongeldig is
}
}
}
break;
default:
$tpl->newBlock("LOGIN_FORM");
}
$tpl->printToScreen();
?>