We hebben het login script van deze site gehaald, en het werkt perfect! Maar nu wil ik hem iets uitbreiden doormiddel van een soort selectie. We gebruiken het voor een vacature website, en dat is weer voor een project. Nu werkt het inloggen prima, maar nu willen we een selectie hebben van werknemers en werkgevers, dus eigenlijk als iemand zich registeerd als werkgever en dan aan gaat melden als werkgever dan die dan op een werkgevers pagina terecht komt en voor werknemer geldt hetzelfde. Dit is het script wat we voor het inloggen gebruiken.


<?
session_start();
ob_start();
?>
<html>
<head>
<title>Inloggen</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h2 align="center">Inloggen</h2>
<?
include("config.php");
if($_SESSION['naam'] == "" AND $_SESSION['status'] == "") {
if($_COOKIE['naam'] == "" AND $_COOKIE['wachtwoord'] == "" AND $_COOKIE['email'] == "") {
if(isset($_GET['login'])) {
if($_POST['naam'] != "" AND $_POST['wachtwoord'] != "") {
$sql = "SELECT * FROM gebruikers WHERE naam='".$_POST['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$dbpass = htmlspecialchars($rij->wachtwoord);
$status = htmlspecialchars($rij->status);
$email = htmlspecialchars($rij->email);
$actief = htmlspecialchars($rij->actief);
$pass = md5($_POST['wachtwoord']);
if($dbpass == $pass) {
if($actief == 1) {
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['status'] = $status;
if($_POST['blijven'] == "1") {
setcookie("naam", $_POST['naam'], time() + 365 * 86400);
setcookie("wachtwoord", $pass, time() + 365 * 86400);
}
header("Location: $inlogp");
}else{
echo "<font color='red'><b>Je account is nog niet geactiveerd!</b><font>";
}
}else{
echo "<font color='red'><b>Je wachtwoord en/of naam is incorrect!</b></font>";
}
}else{
echo "<font color='red'><b>Je bent een veld vergeten in te vullen!</b></font>";
}

}else{ }
?>


<form method="post" action="<? echo $_SERVER['PHPSELF']; ?>?login">
<table>
<tr>
<td>Naam:</td><td><input type="text" name="naam"></td>
</tr>
<tr>
<td>Wachtwoord:</td><td><input type="password" name="wachtwoord"></td>
</tr>
<tr>
<td>Functie:</td><td>
<SELECT NAME="functie" SIZE=1> <OPTION SELECTED VALUE="">Uw Keuze
<OPTION>Werknemer
<OPTION>Werkgever
</select>
</td>
</tr>
<tr>
<td></td><td><input type="checkbox" name="blijven" value="1"> Ingelogd blijven</td>
</tr>
<tr>
<td></td><td><input type="submit" value="Inloggen"></td>
</tr>
</table>
<a href="wachtwoord_vergeten.php"><small>Wachtwoord vergeten?</small></a>
</form>
<?

}else{
$sql = "SELECT * FROM gebruikers WHERE naam='".$_COOKIE['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$dbnaam = htmlspecialchars($rij->naam);
$dbstatus = htmlspecialchars($rij->status);
$dbpass = htmlspecialchars($rij->wachtwoord);

$pass = $_COOKIE['wachtwoord'];
$naam = $_COOKIE['naam'];
if($dbpass == $pass AND $dbnaam == $naam) {
$_SESSION['naam'] = $dbnaam;
header("Location: $inlogp");
}else{
echo "<font color='red'><b>Eén van je cookies klopt niet met wat in de db staat!</b></font>";
}
}
}else{
?>
Een ogenblik geduld, u wordt nu doorgestuurd naar de hoofdpagina.
<meta http-equiv="refresh" content="3;URL=werkgevers.php">
<?
}
?>
</body>
</html>


Onze kennis qua PHP is gering :)
Moet je hier niet een soort van levels voor maken van: werkgever / werknemer?
In de database zit al een rij functie waarin werknemer of werkgever geschreven word. Maar nu de vraag hoe controleer je dat bij inloggen en hoe kan je hem dan door verwijzen naar desbetreffende pagina.
je veranderd deze:

<meta http-equiv="refresh" content="3;URL=werkgevers.php">

in dit:

<?
if($_SESSION['status'] == "werkgever")
{
echo "<meta http-equiv=\"refresh\" content=\"3;URL=werkgevers.php\">";
}
else
{
echo "<meta http-equiv=\"refresh\" content=\"3;URL=werknemers.php\">";
}
?>
Bedoel je niet dit?

<?
if($_SESSION['functie'] == "werkgever")
{
echo "<meta http-equiv=\"refresh\" content=\"3;URL=werkgevers.php\">";
}
else
{
echo "<meta http-equiv=\"refresh\" content=\"3;URL=werknemers.php\">";
}
?>
Lekker belangrijk ...
Weet niet of het uitmaakt hoor? Maar die werkgever en werknemer valt onder functie, en Marien kijkt naar status, weet niet of dat verschil is?
Waar haal je die functie vandaan?
ajvk schreef op 10.12.2004 21:32
Bedoel je niet dit?

<?
if($_SESSION['functie'] == "werkgever")
{
echo "<meta http-equiv=\"refresh\" content=\"3;URL=werkgevers.php\">";
}
else
{
echo "<meta http-equiv=\"refresh\" content=\"3;URL=werknemers.php\">";
}
?>



---Kan iemand naar upload probleem kijken aub
In de MySQL database staat een gebruikers tabel met een rij functie, met aanmelden kan je aangegeven of je werknemer bent of werkgever. Ik weet niet of je dat bedoelt, in ieder geval word werknemer of werkgever weggeschreven in de functie rij in de tabel
aa ;) oke had je post niet gezien sorry .... ;)
Werkt het nu?
Sessies moet je zelf setten, naam boeit niet echt, gaat om het idee ;)

Reageren