Gå til innhold

brukersytem: én side begrenset til én bruker


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

????:

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 av kakkle
Lenke til kommentar

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

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 :p

Lenke til kommentar
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 :p

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 loginhotscripts.com. Om du blar noen sider frem finner du mange gratis script.

Lenke til kommentar
- 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 :p

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? :ermm:

Endret av ntec
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...