session login level

Tags:    php

er der en der gider at add level i mit script fatter nemilg ikke selv noget af det
levels admin eller bruger



login-test.php

<?php
session_start();
$conn = mysql_connect("localhost", "brugernavn", "password");
mysql_select_db("database"); //Indtast selv de rigtige oplysninger

if(!isset($_POST['Submit'])) { //Tester om brugeren kom fra login.html
echo "Du skal komme fra login.php";
}else{
$postbruger = $_POST['Brugernavn'];
$postpass = $_POST['Password']; //For læservenligheden overføres post
variablerne til normale variabler

$resultat = mysql_query("SELECT Id FROM `brugere` WHERE Brugernavn =
'$postbruger' AND Password = '$postpass'");//Spørger efter ID

$number = mysql_num_rows($resultat);//Tæller antaller af resultater
if($number == 1) { //Hvis der kun er et resultat, bliver brugeren logget
in
$_SESSION['loget_in'] = 1;
$_SESSION['Brugernavn'] = $postbruger;
$_SESSION['Password'] = $postpass; //Sætter session variablerne
echo "Du er nu logget in";

}else echo"De indtastede oplysninger er ikke korrekte";
}
?>
</body>
</html>




-----------------------------------------


<?php
session_start();
if(!$_SESSION['loget_in'] == 1) {//Hvis brugeren ikke er logget in
header("Location: http://www.domain.dk/login.html");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}

//Al din kode
?>




http://www.lommeuld.dk


[Redigeret d. 09/07-03 21:49:44 af martin lund]



9 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Som sagt, skulle du lige lægge en niveau attribut ind i din tabel. Prikkerne er dine attributter...

Fold kodeboks ind/udKode 


Ellers foregår resten næsten som før, men jeg har lige lagt en session['niveau'] variabel ind:

login-test.php:

Fold kodeboks ind/udKode 


Herunder er så det der skal laves niveau på:

Fold kodeboks ind/udKode 


Princippet er det samme som før... Du skal bare indsætte den de rigtige steder...
Jeg håber det hjalp lidt?
-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



Du kan enten lave en variabel i tabellen som hedder niveau, hvor de forskellige brugere har et vist brugerniveau. F.eks. 1 for admin, 2 for almindelig bruger osv...
Derefter skal du bare huske at hive den variabel med ud, som hedder niveau. Denne variabel gemmer du i en $_SESSION['brugerniveau'] variabel.

Når du derefter skal lave en menu eller ligende, hvor de forskellige brugerniveauer får vist noget specielt, kan du bruge en switch sætning. Hvis du bruger denne, kan du lade den "falde" til næste niveau, hvis det er en anden slags bruger.
Kig på dette eksempel:
Fold kodeboks ind/udKode 


Normalt ville der være en break; i den første case også, men ved at gøre det på denne måde, kan administratoren (niveau 1) også bruge menu funktionen "se profil". Den almindelige bruger (niveau 2) kan ikke bruge menupunktet "slet bruger", da switch sætningen "falder ned af", når den leder sine cases igennem.

Jeg håber du forstår selve tankegangen i det, ellers må du lige sige til...

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



takker for en meget god beskrivelse men ved stadig ikke hvor det skal siddes ind vil du gøre mig den sidste tjeneste at lave det så det virker. :)





databasen


Fold kodeboks ind/udKode 


Ellers foregår resten næsten som før, men jeg har lige lagt en session['niveau'] variabel ind:

login-test.php:

Fold kodeboks ind/udKode 


Herunder er så det der skal laves niveau på:

Fold kodeboks ind/udKode 


----------------------------------
er det sådan at du mener jeg skal gøre

http://www.lommeuld.dk




Næsten...
Du skal kun have en attribut i din database, som hedder niveau. Denne attribut skal du se på, som din brugernavn attribut. Den kan indeholde flere værdier.
default betyder bare, at den normale værdi bliver 2 (almindelig bruger) hvis ikke andet er angivet. Du kan så vælge at sætte den til 1 (administrator) hvis der er en bruger der skal være det.

Derfor bliver din SQL-sætning for oprettelse af tabellen følgende:

Fold kodeboks ind/udKode 


Ellers var resten fint (og som jeg viste...)

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



jeg kan ike få en skid til at virke du har ikke en script til at ligge jeg kan låne.

www.lommeuld.dk hvis du ikke har andet at lave






[Redigeret d. 27/07-03 12:09:23 af Søren]

[Redigeret d. 16/08-03 14:45:50 af Søren]



det virker jo søren takker



jeg kan ike få en skid til at virke du har ikke en script til at ligge jeg kan låne.

www.lommeuld.dk hvis du ikke har andet at lave

Svaret
login.php
<form name="form2" method="post" action="login-test.php">
<font size="1" face="Verdana, Arial, Helvetica, sans-serif"><span class="font"><b><br>
 </b>Bruger<b><br>
 
<input name="brugernavn" type="text" id="brugernavn" style="font-size:10px; " size="20" >
<br>
 </b>Password <b><br>
 
<input name="password" type="password" id="password" style="font-size:10px; " size="20" >
<br>
<br>
<input name="Submit" type="submit" id="Submit" value="Login">
</b> </span></font>
</form>

login-test.php
<?
session_start();


mysql_connect("", "", "");
mysql_select_db("");
if(!isset($_POST['Submit'])) {
echo "Du skal komme fra login.php";
}else{
$resultat = mysql_query("SELECT id FROM bruger WHERE Brugernavn =
'$brugernavn' AND Password = '$password'");

$number = mysql_num_rows($resultat);
if($number == 1) {
$get_id = mysql_fetch_array($resultat);
$q = mysql_query ("SELECT * FROM bruger WHERE id='".$get_id['id']."'");

while ($r = mysql_fetch_array($q)) {
session_register("id");
session_register("rang");
session_register("login");
session_register("brugernavn");
session_register("password");

$_SESSION['id'] = $r[id];
$_SESSION['login'] = 1;
$_SESSION['Brugernavn'] = $r[brugernavn];
$_SESSION['Password'] = $r[password];
$_SESSION['rang'] = $r[rang];
}
}
if ($_SESSION['rang'] == 'admin') {
header("Location: admin.php");
}
if ($_SESSION['rang'] == 'bruger') {
header("Location: bruger.php");
} else { echo"De indtastede oplysninger er ikke korrekte";
}
}


?>

admin.php og bruger.php
<?
if($_SESSION['login'] == '1') {
echo 'inde';
} else {
header("Location: login.php");
exit;
?>

Logud.php
session_start();
session_destroy();
echo "Du er nu logget ud";




t