beste PHP vrienden,

ik loop stage en krijg iets niet voor elkaar... ik ben een php newbie en weet niet zo gek veel...

ik wil een login maken... een hele simpele.

mysql database met gebruikers erin. Voornaam, Achternaam en afdeling.

nu wil ik dat wanneer iemand van afdeling CS na het inloggen automatisch doorverwezen word naar indexCS.php

en wanneer iemand van P&O na het inloggen automatisch doorverwezen wordt naar indexP&O.php

zo heb ik ook nog de afdelingen IT en Finance.

Beveiliging is niet van belang aangezien het een intranet functie wordt binnen een bedrijf afgesloten van buiten...

kortom:
een login systeem dat gebruikers doorverwijst d.m.v. de afdeling.

Wie kan mij helpen...
wij allemaal wel. wat heb je al?

je zal ongeveer zoiets zoeken (bear the typos, lossepols werk)

<?
session_start();
include('connection.php');

if (isset($_POST['username']) && !empty($_POST['username']) && isset($_POST['password']) && !empty($_POST['password']))
{
$sql = 'SELECT
id, afdeling
WHERE
username = "'.$_POST['username'].'"
AND
password = "'.md5($_POST['password']).'"';
$res = mysql_query($sql,$link);
if ($res && mysql_num_rows($res) == 1)
{
$row = mysql_fetch_array($res);

$_SESSION['userid'] = $row['id'];

header('location:index'.$row['afdeling'].'.php');
} else {
header('location:loginerror.php');
}
}

?>
Nou begin eerst met een database model:


gebruikers
---------
id
naam
wachtwoord
afdeling

Kan je makkelijk zelf uitbreiden.




<?
if($_SERVER['REQUEST_METHOD'] == "POST")
{	
	$naam = trim($_POST['naam']);
	$wachtwoord = trim($_POST['wachtwoord']);
		
	$query = mysql_query("
	SELECT 
		afdeling 
	FROM 
		gebruikers
	WHERE 
		naam = '".addslashes($naam)."' 
	AND 
		wachtwoord = '".addslashes(md5($wachtwoord))."'") or die(mysql_error());

	$gebruiker = mysql_fetch_assoc($query);

	if((mysql_num_rows($query) == 1) && (!empty($wachtwoord)) && (!empty($naam)))
	{
		header("location:index".$gebruiker['afdeling'].".php');
	}
}
?>

<form method="post" action="<? $_SERVER['PHP_SELF'] ?>">
<input type="text" name="naam" />
<input type="password" name="wachtwoord" />
<input type="submit" name="login" value="Inloggen" />
</form>



Edit:

Wes was sneller
maak er trouwens gewoon index.php van en gooi daarachter de afdeling die je wil hebben.

Bijvoorbeeld:

<?php

header ("location: index.php?afd=".$afd);

?>

dit voorkomt dat je extreem veel bestanden krijgt en laat je php het werk doen!
Crispijn schreef op 02.05.2007 09:46
... dit voorkomt dat je extreem veel bestanden krijgt en laat je php het werk doen!
En natuurlijk het feit dat illegale tekens gebruikt in je bestandsnaam (zoals P&O). Natuurlijk moet je hier ook opletten bij de 'afdelingen'.

Elwin
Crispijn schreef op 02.05.2007 09:46
maak er trouwens gewoon index.php van en gooi daarachter de afdeling die je wil hebben.

Bijvoorbeeld:

<?php

header ("location: index.php?afd=".$afd);

?>

dit voorkomt dat je extreem veel bestanden krijgt en laat je php het werk doen!


Dan zou je het zo moeten doen:

<?php
header ("location: index.php?afd=".$afd."");
?>

;)

En inderdaad Elwin zou je er "PO" of "PenO" van moeten maken of iets dergelijks.
thijs schreef op 02.05.2007 09:27
Nou begin eerst met een database model:


gebruikers
---------
id
naam
wachtwoord
afdeling

Kan je makkelijk zelf uitbreiden.




<?
if($_SERVER['REQUEST_METHOD'] == "POST")
{	
	$naam = trim($_POST['naam']);
	$wachtwoord = trim($_POST['wachtwoord']);
		
	$query = mysql_query("
	SELECT 
		afdeling 
	FROM 
		gebruikers
	WHERE 
		naam = '".addslashes($naam)."' 
	AND 
		wachtwoord = '".addslashes(md5($wachtwoord))."'") or die(mysql_error());

	$gebruiker = mysql_fetch_assoc($query);

	if((mysql_num_rows($query) == 1) && (!empty($wachtwoord)) && (!empty($naam)))
	{
		header("location:index".$gebruiker['afdeling'].".php');
	}
}
?>

<form method="post" action="<? $_SERVER['PHP_SELF'] ?>">
<input type="text" name="naam" />
<input type="password" name="wachtwoord" />
<input type="submit" name="login" value="Inloggen" />
</form>



Edit:

Wes was sneller



Beste thijs volgens mij klopt er iets niet in de form.
die werkt iig niet...

groetjes

ps. ik kan er geen index.php van maken want die heb ik al en die heb ik ook echt nodig. want dat is een soort nieuws systeem. het nieuws komt als eerste wanneer je de site bezoekt.

en moet ik geen connect.php include'n ofzo... zie hier niet dat hij connectie maakt met de DB

Dit komt in mijn adresbalk te staan wanneer ik het nu probeer...

http://10.0.2.146/<?%20$_SERVER['PHP_SELF']%20?>

thijs schreef op 02.05.2007 10:10
Dan zou je het zo moeten doen:<?php
header ("location: index.php?afd=".$afd."");
?>
Hoezo? Na het openen sluit je direct de quote. Waarom zou je hem dan openen? Dat heeft helemaal geen zin.

Elwin

Reageren