Login met verschillende rechten

Status
Niet open voor verdere reacties.

nl18663

Gebruiker
Lid geworden
19 dec 2007
Berichten
156
Hallo,
ik probeer een script te maken met verschillende rechten niveau's
alleen lukt het op een of andere manier niet om informatie mee te geven aan de session
zie script:

body.php:
PHP:
<?php include_once ("texten.php");?>
<html>
<head>
<title><?php $ktitle;?></title>


</head>

<body>
<form action="login.php" method="POST">
<table height="100%" align="center" valign="center">
 <tr height="40%" align="center" valign="bottom">
  <td> Gebruikersnaam :</td>
  <td><input type="text" name="loginnaam" maxlength="10" value=""></td>
 </tr>
 <tr valign="top" height="10%">
  <td>Wachtwoord :</td>
  <td><input type="password" name="wachtwoord" maxlength="10" value=""></td>
 </tr>
 <tr height="50%" valign="top">
  <td colspan="2" align="center"><input type="submit" name="submit" value="Login"></td>
 </tr>
</table>
</form>

</body>

</html>



login.php
PHP:
<?php include_once ("dbconnection.php");
ob_start();
$tbl_name="gebruikers";

$myusername=$_POST['loginnaam'];
$mypassword=$_POST['wachtwoord'];

//SQL user zoeken
$sql="SELECT naam,mail_adr,aangemaakt,toegang_nivo
FROM $tbl_name WHERE gebr_naam='$myusername' and wachtw='$mypassword'";

$result=mysql_query($sql);
$count=mysql_num_rows($result);

$toegang_nivo=$result['toegang_nivo'];
$naam=$result['naam'];
$mail_adr=$result['mail_adr'];
$aangemaakt=$result['aangemaakt'];


if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"

echo "test";
echo "$naam";


session_register("myusername");
session_register("mypassword");
session_register("toegang_nivo");
session_register("naam");
session_register("mail_adr");
session_register("aangemaakt");
//header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
ob_end_flush();



?>



Login_success.php:
PHP:
session_start();
if(!session_is_registered(myusername)){
header("location:frames.php");
}
?>

<html>
<body>
Login Successful
<?php
echo "test";
echo $_SESSION['toegang_nivo'];
echo $_SESSION['myusername'];
echo $_SESSION['naam'];
?>
</body>
</html>
 
Wat dacht je er van om de boel uit de database te halen? Alleen een query uit laten voeren geeft je niets terug hoor...

Daarnaast vraag ik mij af waarom je ob_start() en ob_end_flush() gebruikt. Als je deze pagina als action hebt ingesteld bij een formulier en je maakt hierin geen output (De echo's zijn waarschijnlijk voor test-doeleinden en komen niet in het eind-script) dan kun je de header() zonder problemen uitvoeren.

Ook moet je als je sessies in wilt stellen session_start() gebruiken...

Probeer dit eens:
PHP:
<?php
session_start();
include_once ("dbconnection.php");
$tbl_name="gebruikers"; 

$myusername=$_POST['loginnaam']; 
$mypassword=$_POST['wachtwoord']; 

//SQL user zoeken 
$sql="SELECT naam,mail_adr,aangemaakt,toegang_nivo 
       FROM $tbl_name
       WHERE gebr_naam='$myusername' and wachtw='$mypassword'"; 
$query = mysql_query($sql) or die(mysql_error());
$result=mysql_fetch_array($query); 
$count=mysql_num_rows($query); 

$toegang_nivo=$result['toegang_nivo']; 
$naam=$result['naam']; 
$mail_adr=$result['mail_adr']; 
$aangemaakt=$result['aangemaakt']; 


if($count==1){ 
// Register $myusername, $mypassword and redirect to file "login_success.php" 

echo "test "; 
echo "$naam"; 

$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword;
$_SESSION['toegang_nivo'] = $toegang_nivo;
$_SESSION['naam'] = $naam;
$_SESSION['mail_adr'] = $mail_adr;
$_SESSION['aangemaakt'] = $aangemaakt;
//header("location:login_success.php"); 
} 
else { 
echo "Wrong Username or Password"; 
}
?>
De functie session_register() is trouwens afgeschreven. Gebruik hiervoor nu $_SESSION-variabelen. (bron)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan