Avatar billede windmaker Nybegynder
17. august 2004 - 13:13 Der er 16 kommentarer og
1 løsning

Hvordan kan jeg kæde login sammen med mine andre functioner

Hejsa håber nogen kan hjælpe mig med at belyse et problem for mig.

Jeg kan godt kode de fleste andre sprog og har en god forståelse af programmering generalt.

Mit problem er at hvordan jeg får lavet en loginfunction på min hjemmeside, og lavet sådan at mine andre scripts / functioner kun virker hvis jeg er logget ind.

Hvis i kender et godt login script ville det da osse være lækkert :)

Jeg bruger php / mysql, på en linux box.

Håber i kan hjælpe
Avatar billede fennec Nybegynder
17. august 2004 - 13:18 #1
Du sætter en sessino når man logger ind. På hver side (gerne en include) tjekker du så om den session er sat. Hvis den ikke er, redirectes til loginsiden.

Du kan selvfølgelig også bare sætte tjekket omkring de funktioner som ikke skal virke, også give brugeren besked om at logge ind.
Avatar billede windmaker Nybegynder
17. august 2004 - 13:18 #2
Jeg kan jo godt selv lave en simpel check(); function som checker en eller anden variabel, men der må da være en smartere måde at gøre det på ? er bare ikke lige kommet på den :)
Avatar billede detox Nybegynder
17. august 2004 - 13:20 #3
En nem løsning er fx at bruge sessions. Hvis du på din loginside tildeler:
$_SESSION['ID'] = session_id();
kan du tjekke på de andre sider med:
if ($_SESSION['ID'] != session_id()) {
  // ikke logget ind
}
Avatar billede fennec Nybegynder
17. august 2004 - 13:25 #4
Der findes næppe noget smartere end session. Du kan selv gøre brug af cookies, men der skal meget mere programmering til, og det kan slåes fra af brugeren.
Avatar billede windmaker Nybegynder
17. august 2004 - 13:25 #5
hmm ok ser enkelt ud :)

Jeg var ude i et eller andet med at skulle ændre en variabel i mysql ved login også lave en check på alle functioner.

Men en session vil nok løse det lidt smartere, er ikke så meget inde i php endnu, så hvis jeg nu lukker siden er jeg så stadig logget ind det er jo ikke fedt og kan det håndtere flere brugere og brugerniveauer af gangen ?
Avatar billede windmaker Nybegynder
17. august 2004 - 13:28 #6
Det skal jo gerne være sådan at jeg bare kan placere metoden login i mit design vha. [login] f.eks.

Meget rart ved genbrug eller hvis der skal ændres noget :)
Avatar billede windmaker Nybegynder
17. august 2004 - 13:29 #7
hvordan accepterer jeg 100 år siden jeg har været herinde :)
Avatar billede detox Nybegynder
17. august 2004 - 13:34 #8
En session varer normalt ind til brugeren lukker browseren.
Du kan sagtens håndtere flere brugere og niveauer med sessions, du kan fx sætte:
$_SESSION['niveau'] = 'admin'; // eller lign.
Avatar billede fennec Nybegynder
17. august 2004 - 13:39 #9
Hvis du lukker browseren ned er du stadig logget ind, men kun indtil session udløber (default 20 min), men det kan nemt sættes ned til 5 min eller hvad du nu synes. Tiden for udløb begynder lige så snart der er hentet en ny side. Den slutter ikke ved at lukke browseren, men hvis du åbner en ny, får du ofte tildelt en ny session, så selv om den anden stadig kører, vil den ikke blive brugt, men det kan ske at du får tildelt den gamle.

Du kan sætte alle de sessions du vil.
$_SESSION['id'] = session_id();
$_SESSION['navn'] = "Fennec";
$_SESSION['brugerlevel'] = "admin";
$_SESSION['brugerID'] = 12;

Når man logger ind kan du hente navn, brugerlevel og meget andet fra databasen. Så ligge de værdier i den enkelte brugers session.
Avatar billede fennec Nybegynder
17. august 2004 - 13:49 #10
windmaker >>

Du kan først accepterer et svar, når der er afgivet et. Indtil vidre har vi kun lavet kommentar. Nu skulle du gerne kunne se mig på en liste til venstre, og hvis detox også laver et svar, står vi der selvfølgelig begge, og du kan så vælge den der skal have point. Hvis du vælger os begge på listen bliver point delt lige imellem os, men du kan også fordele point manuelt.
Avatar billede windmaker Nybegynder
17. august 2004 - 13:52 #11
Kanon tak for hjælpen gutter
Avatar billede fennec Nybegynder
17. august 2004 - 13:54 #12
Nu fik jeg alle point. Var det planen????
Avatar billede detox Nybegynder
17. august 2004 - 13:55 #13
Under normale omstændigheder (default opsætning) virker en session kun så længe browseren er åben.
Avatar billede windmaker Nybegynder
17. august 2004 - 13:56 #14
Altså jeg må vurdere at dit svar var både først og i længden bedst så ja :)

Takker endnu engang for hjælpen
Avatar billede fennec Nybegynder
17. august 2004 - 13:58 #15
Avatar billede fennec Nybegynder
17. august 2004 - 13:59 #16
Jeg har ikke brug for så mange point :o)
Avatar billede cronaldo Nybegynder
17. august 2004 - 21:09 #17
<?php
include ("config.php") ;
$result = mysql_query ("SELECT * FROM user WHERE username = '$username' ");
while ($row = mysql_fetch_array ($result)) {
$check = $row["password"];
}
if ($password !== md5($check) OR !$result) {
session_destroy();
echo "<meta http-equiv=refresh content=0;URL=index.php>";
}
?>

config er SQl login!?
tror sådan noget lign. det skulle virke!! Har det gjort for mig!
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