ntec Skrevet 17. november 2005 Del Skrevet 17. november 2005 Kan jeg endre denne koden nedenfor slik at bare én bruker får tilgang til den? F.eks. til brukernavnet "lars". Dette legges øverst i filen: <?php session_start(); if(empty($_SESSION['user'])) { echo 'Du må være innlogget for å se denne siden!'; exit; } ?> Lenke til kommentar
MadMe Skrevet 17. november 2005 Del Skrevet 17. november 2005 Er brukernavnet lagret i $_SESSION['user']? Da er det enkelt: <?php session_start(); if(empty($_SESSION['user'])) { echo 'Du må være innlogget for å se denne siden!'; } else if($_SESSION['user'] != "lars"){ echo "Du har ikke tilgang til denne side"; } else { echo "Her er siden"; } ?> Lenke til kommentar
???????? Skrevet 17. november 2005 Del Skrevet 17. november 2005 Tja, hvis det kun er en bruker som skal ha tilgang så er det unødvendig å sjekke med empty() på variablen først, da holder det med: <?php session_start(); if($_SESSION['user'] == "lars") { echo 'Du må være innlogget for å se denne siden!'; exit; } ?> MadMe: det er standard å sjekke == og dermed snu på scriptet ditt for å sjekke at en bruker er brukeren. Det er mer tungvindt å sette det opp motsatt. Dette er bare et tips og ikke spesielt viktig dersom det kun er du som skal lese kode, men dersom du noen gang sammarbeider med noen i et team så er det kjekt å sette opp ting på den enkleste måten å lese. For poenger er jo dersom brukere == "lars". Lenke til kommentar
kakkle Skrevet 17. november 2005 Del Skrevet 17. november 2005 (endret) ????: Lars skal vel ikke få den meldingen, da ? Han er jo den som skal kunne se siden, så du vil vel kanskje heller bruke != ? EDIT: evt så er det kanskje bedre å bruke == og legge det innholdet som skal sees inn i if blokken EDIT2: Hmmm... Er visst en funksjon på forumet, som gjør at man ikke kan ha for mange tegn etter hverandre, ???? Endret 17. november 2005 av kakkle Lenke til kommentar
???????? Skrevet 17. november 2005 Del Skrevet 17. november 2005 Du har helt rett kakkle, det ble litt surr etter jeg så på det MadMe skrev - man blir lett påvirket. Ennå en grunn til at man skal følge standarder... hehe 10 poeng til det kakkle! Lenke til kommentar
ntec Skrevet 21. november 2005 Forfatter Del Skrevet 21. november 2005 Denne koden bruker jeg hvis bare en bruker skal ha tilgang til siden. <?php session_start(); if(empty($_SESSION['user'])) { echo 'Du må være innlogget for å se denne siden!'; } else if($_SESSION['user'] != "lars"){ echo "Du har ikke tilgang til denne side"; } else { echo "Her er siden"; } ?> Hvordan skal den være hvis tre brukere skal ha tilgang til filen? brukerne: lars, arne og knut Lenke til kommentar
LoS Skrevet 21. november 2005 Del Skrevet 21. november 2005 (endret) Det kan du gjøre på følgende måte: <?php $allowed = array( 'lars', 'arne', 'knut' ); if(in_array($_SESSION['user'], $allowed)) { echo 'Du har tilgang'; } ?> Ihvertfall for ryddighetens skyld. Endret 21. november 2005 av LoS Lenke til kommentar
stian90_2 Skrevet 23. november 2005 Del Skrevet 23. november 2005 Hei, Det siste scriptet så ut til at det kunne være flere innlogget. Er det mulig og legge til en else for hva som skjer med brukere som ikke er logget inn ? Skulle gjerne hatt et brukersystem for flere brukere. Eller at dem som er innlogget får egen side dem kan redigere. Skulle hatt sånn brukerprofil greie. Men mangler loggin system. Noen som vet om noe slikt script ? Helst uten MySQL Lenke til kommentar
simenss Skrevet 23. november 2005 Del Skrevet 23. november 2005 Hei,Det siste scriptet så ut til at det kunne være flere innlogget. Er det mulig og legge til en else for hva som skjer med brukere som ikke er logget inn ? Skulle gjerne hatt et brukersystem for flere brukere. Eller at dem som er innlogget får egen side dem kan redigere. Skulle hatt sånn brukerprofil greie. Men mangler loggin system. Noen som vet om noe slikt script ? Helst uten MySQL 5195428[/snapback] <?php $allowed = array( 'lars', 'arne', 'knut' ); if(in_array($_SESSION['user'], $allowed)) { echo 'Du har tilgang'; } else { // Hvis brukeren ikke er logget inn echo 'Du har ikke tilgang'; } ?> stianiquniez, hvis du skal lage en side med brukerprofiler etc. bør du satse på noe litt sikrere en scriptet over Søk etter login på hotscripts.com. Om du blar noen sider frem finner du mange gratis script. Lenke til kommentar
stian90_2 Skrevet 23. november 2005 Del Skrevet 23. november 2005 vil dem ikke få opp samme side med det scriptet. Når dem logger inn kan man ikke sende dem til en side som skjekker session og viser siden ? Lenke til kommentar
ntec Skrevet 23. november 2005 Forfatter Del Skrevet 23. november 2005 (endret) - Skulle gjerne hatt et brukersystem for flere brukere. - Eller at dem som er innlogget får egen side dem kan redigere. - Skulle hatt sånn brukerprofil greie. - Men mangler loggin system. - Noen som vet om noe slikt script ? - Helst uten MySQL 5195428[/snapback] Har et brukersystem som dekker alle punktene, men den er laget for include, index.php?side=ENELLERANNENSIDE.php. Dette legges øverst i index.php. (over HTML og alt annet) <?php // Denne oppretter en session, kalt 'user'. session_start(); //denne er nødvendig for å bruke sessions og skal komme først i fila. if(empty($_SESSION['user'])) //dersom $SESSION['user'] er tom er ingen innlogget { //brukerverifisering if(!empty($_POST['username']) && !empty($_POST['password'])) { //dersom username og password har blitt postet, prøv innlogging $users = file('users.txt'); //les alle brukere fra fila users.txt foreach($users as $temp) //loop igjennom filens innhold { $b = explode('|', $temp); if($b[0] == $_POST['username'] && $b[1] == md5($_POST['password'])) { //hvis brukernavn og passord er rett... $psord = md5($_POST['password']); $_SESSION['user'] = $b[0]; //...sett $_SESSION['user'] til brukernavnet $_SESSION['po4234'] = $psord; $_SESSION['fornavn'] = $b[6]; Header("Location: index.php"); //hopp til login.php } } } } else { } ?> Dette brukes til å logge seg inn <form action="index.php" method="post"> <table <?php echo $fontstyle ?>><tr><td colspan="2"> <b>Logg inn, mztysfjord.net</b></td></tr><tr><td> Brukernavn: </td><td> <input type="text" name="username" /></td></tr> <tr><td> Passord: </td><td> <input type="password" name="password" /></td></tr><tr><td></td><td align="right"> <input type="submit" value="Logg inn" /> </td></tr></table> </form> Dette legges i makeuser.php <form action="makeuser.php" method="post"> <input type="text" name="username" /> <br /> <input type="password" name="password" /> <br /> <input type="submit" value="Send" /> <br /> </form> <?php if(!empty($_POST['username']) && !empty($_POST['password'])) { echo 'Lim inn følgende linje nederst i users.txt:<br />' .$_POST['username'].'|'.md5($_POST['password']).'|'; } ?> Dette legges i sidene som kun innloggete brukere skal ha tilgang til. <?php session_start(); if(empty($_SESSION['user'])) { echo 'Du må være innlogget for å se denne siden!'; exit; } ?> Her er sidens faktiske innhold. Dersom du ikke hadde vært innlogget hadde du aldri i verden sett dette!;) <BR><BR> Her kan du legge til hva som helst. Dette legges inn øverst i en fil hvor bare EN bruker skal ha tilgang <?php session_start(); if(empty($_SESSION['user'])) { echo 'Du må være innlogget for å se denne siden!'; } else if($_SESSION['user'] != "SETT_INN_ET_BRUKERNAVN_HER"){ echo "Du har ikke tilgang til denne siden."; } else { echo "Her er siden"; } ?> - Opprett en fil som heter users.txt hvor brukernavn og passord legges til (fås fra makeuser.php). Husk å CHMOD filen til 777! - Jeg anbefaler å bruke Notepad 2 når du redigerer PHP-filer: Lastes ned her Har jeg glemt noe? Endret 23. november 2005 av ntec Lenke til kommentar
ntec Skrevet 23. november 2005 Forfatter Del Skrevet 23. november 2005 (endret) Eller at dem som er innlogget får egen side dem kan redigere. 5195428[/snapback] Lastes ned her: http://mztysfjord.net/filer/egenside.zip - Krever innloggingsskriptet ovenfor. - Krever ikke MySQL. Endret 23. november 2005 av ntec Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå