Probleem inlogsysteem

Status
Niet open voor verdere reacties.

drieder

Gebruiker
Lid geworden
11 jan 2007
Berichten
34
Hallo iedereen , :)

Ik ben bezig met een inlog systeem, Ik heb het voor mekaar om in te loggen.

In phpmyadmin heb ik een tabel gebruikers met daarbij een ulevel

met ulevel geeft ik de gebruiker een leven :

vrienden level 3
docenten level 2
admin level 1

Nu wil ik dat als de gebruiker inlogt op mijn website , de gebruikers naar de index gaat die voor hem bestemt is :

vrienden : gaat naar index vrienden
docent : gaat naar index docent

ik ben nu al een hele tijd aan het stoeien geweest maar ik kom er niet uit.

Wie kan mij hiebij helpen ????
 
Ik neem aan dat je een sessie of cookie aanmaakt, het hangt er dus vanaf wat je daarin opslaat.

Het zou dan handiger zijn om aan de hand van die waarde uit de sessie/cookie iemand een pagina voorschotelen.

Je zou het ook bij het inloggen kunnen defineren, iets van:
PHP:
if($row['ulevel'] == "1") {
  header("Location: http://www.mijnsite.nl/indexadmin.php");
} elseif($row['ulevel'] == "2") {
  header("Location: http://www.mijnsite.nl/indexdocent.php");
} else {
  header("Location: http://www.mijnsite.nl/indexvrienden.php");
}
 
Re

Ik neem aan dat je een sessie of cookie aanmaakt, het hangt er dus vanaf wat je daarin opslaat.

Het zou dan handiger zijn om aan de hand van die waarde uit de sessie/cookie iemand een pagina voorschotelen.

Je zou het ook bij het inloggen kunnen defineren, iets van:
PHP:
if($row['ulevel'] == "1") {
  header("Location: http://www.mijnsite.nl/indexadmin.php");
} elseif($row['ulevel'] == "2") {
  header("Location: http://www.mijnsite.nl/indexdocent.php");
} else {
  header("Location: http://www.mijnsite.nl/indexvrienden.php");
}
_______________________________________________________________________

hallo Devil,

Jah ik werk met sessions

Wat jij nu beschrijft heb ik al geprobeerd maar ik kom er niet uit. Ik zal mij systeem even als bijlagen plaatsen, zodat je de code kan zien.

Als ik nu inlog met een admin gebruiker Drieder dan kom ik wel op de index admin pagina , maar als ik met Testdocent inlog dan logt hij niet in.
 

Bijlagen

Zo te zien komt het omdat je een spatie gebruikt in de naam.

In login.php staat dit:
PHP:
if(mysql_num_rows($result) == 1) {
  $regel = mysql_fetch_array($result);
  // de $_SESSION blijft bestaan zolang de client op je website blijft.
  // De server houdt dat bij.
  $_SESSION['username'] = $regel['username'];       // dit zijn sessievariabelen voor
  $_SESSION['voornaam'] = $regel['voornaam'];       // gebruik in verschillende paginas
  $_SESSION['achternaam'] = $regel['achternaam'];
  $_SESSION['level'] = $regel['ulevel'];
  header("location: index admin.php"); // login gelukt. ga door naar ...
} elseif($regel['ulevel'] == "2") {
  header("Location: index docent.php"); 
} elseif($row['ulevel'] == "3") {
  header("Location: index vrienden.php");
}
Er wordt nu altijd doorgestuurd naar "index admin.php", aangezien je geen voorwaarde stelt. Aangezien een header meteen uitgevoerd wordt en de rest van de code daaronder niet meer wordt verwerkt vinden nu die andere controles niet plaats.

Ik stel dus voor dat je die spaties weghaalt in de bestandsnaam, met een underscore ( _ ) moet het goed komen.

Probeer dan dit stuk eens in plaats van bovenstaand:
PHP:
if(mysql_num_rows($result) == 1) {
  $regel = mysql_fetch_array($result);
  // de $_SESSION blijft bestaan zolang de client op je website blijft.
  // De server houdt dat bij.
  $_SESSION['username'] = $regel['username'];       // dit zijn sessievariabelen voor
  $_SESSION['voornaam'] = $regel['voornaam'];       // gebruik in verschillende paginas
  $_SESSION['achternaam'] = $regel['achternaam'];
  $_SESSION['level'] = $regel['ulevel'];
  if($regel['ulevel'] == "1") {
    header("location: index_admin.php");
  } elseif($regel['ulevel'] == "2") {
    header("Location: index_docent.php"); 
  } else {
    header("Location: index_vrienden.php");
  }
}
 
:)

Zo te zien komt het omdat je een spatie gebruikt in de naam.

In login.php staat dit:
PHP:
if(mysql_num_rows($result) == 1) {
  $regel = mysql_fetch_array($result);
  // de $_SESSION blijft bestaan zolang de client op je website blijft.
  // De server houdt dat bij.
  $_SESSION['username'] = $regel['username'];       // dit zijn sessievariabelen voor
  $_SESSION['voornaam'] = $regel['voornaam'];       // gebruik in verschillende paginas
  $_SESSION['achternaam'] = $regel['achternaam'];
  $_SESSION['level'] = $regel['ulevel'];
  header("location: index admin.php"); // login gelukt. ga door naar ...
} elseif($regel['ulevel'] == "2") {
  header("Location: index docent.php"); 
} elseif($row['ulevel'] == "3") {
  header("Location: index vrienden.php");
}
Er wordt nu altijd doorgestuurd naar "index admin.php", aangezien je geen voorwaarde stelt. Aangezien een header meteen uitgevoerd wordt en de rest van de code daaronder niet meer wordt verwerkt vinden nu die andere controles niet plaats.

Ik stel dus voor dat je die spaties weghaalt in de bestandsnaam, met een underscore ( _ ) moet het goed komen.

Probeer dan dit stuk eens in plaats van bovenstaand:
PHP:
if(mysql_num_rows($result) == 1) {
  $regel = mysql_fetch_array($result);
  // de $_SESSION blijft bestaan zolang de client op je website blijft.
  // De server houdt dat bij.
  $_SESSION['username'] = $regel['username'];       // dit zijn sessievariabelen voor
  $_SESSION['voornaam'] = $regel['voornaam'];       // gebruik in verschillende paginas
  $_SESSION['achternaam'] = $regel['achternaam'];
  $_SESSION['level'] = $regel['ulevel'];
  if($regel['ulevel'] == "1") {
    header("location: index_admin.php");
  } elseif($regel['ulevel'] == "2") {
    header("Location: index_docent.php"); 
  } else {
    header("Location: index_vrienden.php");
  }
}

________________________________________________________________

Jah het werkt nu wel:)

alleen loop ik nu op een volgend probleem als ik als docent ben ingelogt en ik klik bv op home gaan hij weer naar de standaart index en is de sessie dus afgebroken

moet ik nu voor elke index dus index_docent , index_vriend .. alle pagina;s apart opnieuw gaan maken?
 
Ik neem aan dat elke index een unieke pagina is. Dus dan zet je daar toch bij home de juiste index neer?

Zorg wel dat je bij elke pagina controleert welk level de gebruiker heeft. Volgens mij had je dat al gedaan dus dan is het wel goed.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan