Gå til innhold

Trenger et bittelite login script


Anbefalte innlegg

Jeg har ikke gjort noe med hverken php.ini eller auth. Er det problemet mitt?

 

Har det noe å si om innloggingsskjemaet står lenger ned på siden? Sessionen skal vel uansett ha lagret verdier etter innlogging, så det må vel gå bra!?

Endret av Vonbo
Lenke til kommentar
Videoannonse
Annonse

Tar det litt skritt for skritt nå.

 

Først og fremst. Stemmer det at hele dette scriptet skal ligge over <html> tagen?

 

Altså på følgende måte:

 

<?php
session_start();
if (!empty($_POST['username']) && !empty($_POST['password'])) {
      if (($_POST['username'] == "xxx") && ($_POST['password'] == "xxx")) {
              $_SESSION["access"] = "Admin";
              header("Location: admin.php");
      }
      elseif (($_POST['username'] == "bruker") && ($_POST['password'] == "brukerpass")) {
              $_SESSION["access"] = "Member";
              header("Location: member.php");
      }
      else {
              header("Location: index.phtml");
      }
}
else {
      header("Location: index.html");
}
?>
<html>
<head>
...osv

Lenke til kommentar

Du trenger ikke å sjekke om variablene er tomme først, for å så sjekke verdiene. Ta bort if(!empty...

Hva er navnet på den siden?

Brukerene sendes til andre sider, sikker på at scriptet der er rett?

Alltid stopp et script etter du har sendt en bruker videre

exit;

 

Sjekk i php.ini hva session mappen er, tror den defalt er /tmp som på en windowsmaskin tilsvarer c:\tmp

Er det verdien kan du bare opprette den mappen.

Lenke til kommentar

<form action=""> hva skal stå her? Skal scriptet være på samme side som skjemaet?

 

Dette er flaut, men jeg får det ikke til. :(

 

her er hele php.ini sessiondelen. er det noe som er feil her?

 

[Session]

session.save_handler = files

save_handler
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor     = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
;session.entropy_length = 16
;session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="

Lenke til kommentar

Du har en linje under [session] som default ser ca. slik ut:

session.save_path = /tmp

 

Hvis den gjøre det kan du bare lage mappen c:\tmp eller du kan endre den og lage den mappen du har endret det til.

Du kan sette den til f.eks. c:/web/tmp (eller bruk \)

 

<form> burde ha minst elementene method og action

method er hvilken metode som skal benyttes, f.eks. post eller get

action er siden den skal sendes til. Tar du ikke med action vil de fleste browsere sende skjemaet til siden det er på.

Lenke til kommentar
Her er et enkelt svar.

 

Selve login scriptet:

<?php
session_start();
if (!empty($_POST['username']) && !empty($_POST['password'])) {
       if (($_POST['username'] == "Admin") && ($_POST['password'] == "meinpass")) {
               $_SESSION["access"] = "Admin";
               header("Location: admin.php");
       }
       elseif ($_POST['username'] == "vanliguser") && ($_POST['password'] == "hallo")) {
               $_SESSION["access"] = "Member";
               header("Location: member.php");
       }
       else {
               header("Location: login.html");
       }
}
else {
       header("Location: login.html");
}
?>

 

Login formen:

<form action="auth.php" method="post" name="auth">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" name="auth" />
</form>

 

Hiv dette HELT I STARTEN av Admin fila:

<?php
session_start();
if ($_SESSION["access"] !== "Admin") {
       header("Location: not_logged_in_place.html");
}
?>

 

Og dette HELT I STARTEN av Member fila:

<?php
session_start();
if ($_SESSION["access"] !== "Member") {
       header("Location: not_logged_in_place.html");
}
?>

 

Litt trøtt, men det skulle funke fint.

Du må selvfølgelig forandre de forskjellige filnavnene og passordene brukt her slik som du skal ha det.

På brukernavn... kan jeg få det til å fungere slik at du må skrive et av <nickname> fra denne lista? Skal fungere uansett hvilke navn ut av denne lista du bruker.

Lenke til kommentar

ok.. den delen er grei.. men hva gjør jeg for at php skripte sjekker at du har skrevet inn et av navna som er i lista?

 

Poenger er at du ikke skal ha tilgang til et forum med mindre du er medlem. Er du medlem står navne ditt i lista.

 

Skjønner?

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...