17. august 2004 - 13:13Der 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 :)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.
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 :)
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 }
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.
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 ?
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.
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.
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.
<?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!
Synes godt om
Ny brugerNybegynder
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.