Avatar billede nicholas- Nybegynder
12. november 2004 - 09:26 Der er 12 kommentarer og
1 løsning

Login/logud

Hej
Jeg har en del spørgsmål, derfor så mange point..

Det første er:
Jeg har skrevet den her kode -

    $connect = mysql_connect($host, $user, $pass);
    mysql_select_db($db);

    $brugernavn = $_POST[brugernavn];
    $pass = $_POST[password];
   
    $query = mysql_query("
        SELECT brugernavn, password
        FROM (barcabruger)
        WHERE brugernavn = '$brugernavn' && password = '$pass'
    ") or die(mysql_error());

    if($row = mysql_num_rows($query) == 1) { 
              $_SESSION['brugerlogin']= "$brugernavn";
            $_SESSION['bruger'] = session_id();
 
      print $_SESSION['brugerlogin'];
    print "<meta http-equiv=\"refresh\" content=\"5; url=brugerside.php\">";
   
    }
    else     {
    print "brugernavn eller password er forkert";

    }
 
 
} 
?> 

Hvordan får man lavet en logud kode? Noget med session destroy?

Det andet spørgsmål er at jeg har det her -

Du er nu logget ind som
<br>
<? print "<b>"; print $_SESSION['brugerlogin']; print "</b>"; ?>
<br>
<br>
Funktioner:
<br>
<?
$nyhed = "<a href=\"../nyhed/addnyhed.htm\">Opret Nyhed</a>";
$admin = "admin";


if ( $_SESSION['brugerlogin'] != $admin) {
print "Ingen funktioner endnu";
}

else {
print "$nyhed";
}

?>

Hvordan kan jeg tilføje flere brugere der har adminrettigheder? Har prøvet mange forskellige ting..

På forhånd tak
Avatar billede Slettet bruger
12. november 2004 - 09:43 #1
For at logge ud skriver du:
session_destroy();
Så slettes alle variabler i sessionen..

Angående adminrettigheder:
du kan tilføje en ekstra kolonne i din tabel.
Så hvis der fx står 1 i kolonnen er alm bruger, 2 så er det admin. så henter du den ned i din session og checker om $_SESSION[retigheder] == 2 så er det admin..
Skal jeg lave et kodeeksempel til dig?
Avatar billede Slettet bruger
12. november 2004 - 09:50 #2
tilføj en kolonnen i din barcabruger-tabel som hedder fx access.. (int size 1)
hvis en bruger er admin indsætter du "2" i den kolonnen.
Du laver dit login på næsten samme måde, du tilføjer blot en session variabel med info om det er en admin. (hvis det er kommer der i $_SESSION['access'] til at stå 2.

    $brugernavn = $_POST[brugernavn];
    $pass = $_POST[password];
   
    $query = mysql_query("
        SELECT access, brugernavn, password
        FROM (barcabruger)
        WHERE brugernavn = '$brugernavn' && password = '$pass'
    ") or die(mysql_error());

    if($row = mysql_num_rows($query) == 1) { 
              $_SESSION['brugerlogin']= "$brugernavn";
            $_SESSION['bruger'] = session_id();
            $_SESSION['access'] = $row['access'];
      print $_SESSION['brugerlogin'];
    print "<meta http-equiv=\"refresh\" content=\"5; url=brugerside.php\">";
   
    }
    else    {
    print "brugernavn eller password er forkert";

    }

nu kan du bruge det eksempel som du giver på denne måde i stedet:

<br>
<?
print "<b>";
print $_SESSION['brugerlogin'];
print "</b>"; ?>
<br>
<br>
Funktioner:
<br>
<?
$nyhed = "<a href=\"../nyhed/addnyhed.htm\">Opret Nyhed</a>";
if ( $_SESSION['acces'] != 2) {
print "Ingen funktioner endnu";
} else {
print "$nyhed";
}
Avatar billede Slettet bruger
12. november 2004 - 09:59 #3
dette giver dig også mulighed for at lave flere typer brugere.. fx coadmins og superbrugere...
Avatar billede Slettet bruger
12. november 2004 - 10:04 #4
i den fjerde nederste linie er der en fejl. jeg som til at stave access med 1 s.
linien skulle have været:

if ( $_SESSION['access'] != 2) {
Avatar billede sukos Juniormester
12. november 2004 - 12:56 #5
For at logge HELT ud, (slette alle sessions), når du sætter dem med
$_SESSION["navn"] = "noget";

$_SESSION = array();
session_destroy();
Avatar billede Slettet bruger
12. november 2004 - 12:59 #6
sukos -> er det også sån fra PHP 4 og opefter??
Avatar billede sukos Juniormester
12. november 2004 - 13:05 #7
jow, så længe versionen "forstår" $_SESSION
http://dk.php.net/manual/da/function.session-destroy.php
Avatar billede nicholas- Nybegynder
12. november 2004 - 17:11 #8
Hejsa.. tak for hjælpen indtil videre..

kan dog ikke helt få dit script tilt at virke gartzen..det med access fungerer ikke lige.. fungerer det hos dig?
Avatar billede Slettet bruger
13. november 2004 - 09:59 #9
hvad er det for noget af det som ikke virker?
Har du tilføjet kolonnen i tabellen? Og du er sikker på at der står 2 ved den bruger som du logger ind med?
Prøv at udskrive $_SESSION['acces'] efter de er logged ind..
Avatar billede Slettet bruger
13. november 2004 - 10:14 #10
og du husker at starte din session på begge sider med
session_start();
som den første kommeando?
Avatar billede nicholas- Nybegynder
13. november 2004 - 19:20 #11
har fået det til at virke, men blev nødt til at sige

    $admin = $barcabruger['access']; først.. og så bagefter

        $_SESSION['access'] = $admin;

Ved ikke hvorfor, men det virker;)
Og har også fået logud til at virke.. i kan se det her hvis i vil http://www.outlundish.dk/barca bruger: test pass:test
Avatar billede nicholas- Nybegynder
25. november 2004 - 14:08 #12
nå men forresten.. skal du ikke have dine point? det er ved at være rimelig lang tid siden.. og mange tak for hjælpen .. det kører perfekt;)
Avatar billede Slettet bruger
25. november 2004 - 18:05 #13
Der var så lidt da :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester