Gå til innhold

Trenger et bittelite login script


Anbefalte innlegg

*peke på topic*

 

Altså at det skal være 2 kontoer. Skriver man (f.eks.) :

Username: Admin
Password: meinpass

så skal man komme til sida: admin.php

 

Når man skriver:

Username: vanliguser
Password: hallo

så kommer man til member.php

 

Admin.php og member.php må jo også være beskytta da :)

Tror ikke svaret ligger hos http://www.hotscripts.com denne gangen..

 

Noen som veit om en bra løsning? Kan htaccess brukes til dette?

Endret av Garbion
Lenke til kommentar
Videoannonse
Annonse

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.

Lenke til kommentar
  • 2 uker senere...

session sendes med cookies, som feilmeldingen implisitt sier.

 

cookies er en del av HTTP headers (HTTP er navnet på protokollen du bruker når du surfer)

 

Man trenger ikke kunne HTTP for å drive med php, men man må vite at headers skal være øverst, før noen som helst annen output. Det er nok med en liten linjeskift for å ødelegge dette.

 

Så pass på at du ikke har skrevet ut noe innhold eller tomme linjer øverst i phpfila før du starter sessions.

Lenke til kommentar

Hm.. en lærer hver dag.

 

Jeg er klar over at headeren skal være øverst, men har ikke en tom linje før eller i php-scriptet...

 

Warning: Cannot send session cache limiter - headers already sent (output started at /customers/XXXX.com/XXXX.com/httpd.www/index.phtml:5) in /customers/XXXX.com/XXXX.com/httpd.www/index.phtml on line 18

Linje 18:

17  <? 
18  session_start();
19  if (!empty($_POST['username']) && !empty($_POST['password'])) {

 

Mulig jeg overser små viktige ting, her, men jeg har ikke erfaring nok til å være med på denne...

 

ps: Torbjørn: jobber du her? bare nysgjerrig. du er her mye.

Lenke til kommentar

 

på et eller annet tidspunkt så kommer det output.. fila inkluderes ikke i en annen da kanskje?

 

 

 

Skjønner ikke helt. Hva mener du med inkludert? En må ikke ha sessiontest på alle sidene vel? Jeg har loginscriptet i index.phtml , og en sessiontest på bilder.phtml.

 

Jeg finner fortsatt ikke feilen. Ettersom det står her at andre har fått det til å virke er det jo ikke scriptet det er noe galt med...

 

Denne forsvinner når jeg trykker på login, uten å skrive inn. Men det er fortsatt to igjen når etterpå som ikke vil bort.

 

Warning: Cannot add header information - headers already sent by (output started at /customers/xxx.com/xxx.com/httpd.www/index.phtml:5) in /customers/xxx.com/xxx.com/httpd.www/index.phtml on line 33

Lenke til kommentar

Det er ikke line 33 eller 18 som er problemet - ...httpd.www/index.phtml:5)

Du har startet en output på line 5 eller så kommer første php tag på linje 5 (du har html eller blanke felter før php taggen)

 

Pass på at det ikke er noen echo eller print på linje 5 - og at det ikke er noen tegn (inkl tomme tegn) før <?php

Lenke til kommentar

Men jeg prøvde å legge scriptet over <html> starttagen, og da brukten leseren evig lang tid på å laste siden...

 

nå skjer det ting her ja. tror jeg har resten. Takk for hjelpen!

Endret av Vonbo
Lenke til kommentar

Oppdragelse er vel og bra, men enda bedre når dere lærer meg ;)

 

Jeg får fortsatt denne, og jeg har ikke et eneste mellomrom før scriptet...

 

har sittet siden 11 i dag, og jeg finner ikke noe som er feil.

 

Parse error: parse error, unexpected T_BOOLEAN_AND in /customers/xxx.com/xxx.com/httpd.www/index.phtml on line 8

 

Si fra hvis dere trenger mer informasjon, jeg er evig takknemelig for all hjelp.

Lenke til kommentar

kan du paste linje 5 til linje 12 så vi får sett hva som skjer på linje 8?

 

merk at feilmeldingen faktisk BETYR noe.

 

Hvis du ikke får feilen "headers already sent etc.." så har du ikke noe problem med output før session_start(); rimeligvis.

 

her er det noe annet feil, en ren syntaks feil, i go med at den sier parse error.

 

Det bør ikke være noen stor sak å finne feilen der? et ellet annet rart på linje 8, en AND som kanskje er feil? har du en if setning der? feilplassert && kanskje?

Lenke til kommentar

Jeg har prøvd scriptet som står på toppen her... men får d ikke til å virke... uansett hva jeg skriver i login vinduet får jeg bare opp når jeg trykker på submit knappen... finner ikke siden auth!

 

filen fins å gode greier. når jeg plukker vekk session_start(); så funker scriptet... så jeg regner med at d er noe med serveren min å gjøre. er d noe spesielle instillinger som må gjøres for å få session til å fungere ?

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...