Jeg har en række sider, jeg vil have, at brugeren kun kan få adgang til, hvis denne er logget ind. Som det er nu, kan brugeren nå fx siden beskriv.php både når denne er logget ind og ikke er logget ind.
Det skulle gerne være sådan, at hvis man skriver www.blablabla.dk/beskriv.php - og ikke er logget ind - ja, så skal brugeren smides hen til login formularen, som findes på forsiden.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Nu har jeg ikke kigger hele scriptet igennem, men efter det du allerede har med session.php, så prøv:
if(isset($_SESSION['username']) && !empty($_SESSION['username'])) { -- Her skal du have sidens indhold -- } else { //sender til forsiden header("Location: forside.php"); }
I stedet for at gøre som jaw laver i sit indlæg: 22/07-2006 14:56:28
if(!checkLogin()) { //sender til forsiden header("Location: forside.php"); exit(); }
og her kommer din side så. Forskellen er ens, men det er måske lidt lettere at holde styr på, da du ellers ikke har alt din kode inde i en IF() { ...... }
På siden: http://evolt.org/node/60384 Der er Session.php med stort S, sikker på du har en fil der hedder session.php? Og blankside skyldes tit en fejl, og så har dit site deaktiveret fejlbeskeder.
Der meldes følgende fejl: Warning: main(include/session.php): failed to open stream: No such file or directory in /customers/fri12.dk/fri12.dk/httpd.www/test.php on line 2
Warning: main(): Failed opening 'include/session.php' for inclusion (include_path='.:/usr/lib/php') in /customers/fri12.dk/fri12.dk/httpd.www/test.php on line 2
Fatal error: Call to a member function on a non-object in /customers/fri12.dk/fri12.dk/httpd.www/test.php on line 3
ved kørsel af: <? include("include/session.php"); if(!$session->checkLogin()) { //sender til forsiden header("Location: index.php"); exit(); } ?> <html> <head> <title>Headssdfskdfl</title> </head>
<body> <p>Her skal stå noget fint</p> </body> </html>
mærkeligt... på min server ligger den som: Login System v.2.0/include/session.php
Kan det være fejlen at session.php ligger i hovedbibliotektet "Login System v.2.0". Jeg har jo blot downloaded biblioteket fra http://evolt.org/node/60384 og smidt hele biblioteket op på min server.
Session.php includer jo selv en masse andre biblioteker - det kan man se af koden. De skal også ligge på det rigtige sted i forhold til sesseion.php for at det virker.
Men jeg vil anbefale at du simpelthen alder session.php, og alle de ander filer som blev installeret sammen med den, blive liggende der hvort de lå¨til at starte med.
I stedet skal du rette din
include("include/session.php");
- i test.php til at pege på dem. Dvs. at der skal stå noget andet end "include/" i starten.
Det prøver jeg lige også... ellers så tror jeg at fejlen ligger et helt andet sted. Jeg roder lige rundt - det tager nogle nogle timer (det gør det jo altid :-)... så vender jeg tilbage
Interessant - nu virker det. Det script du Nielle forslog på baggrund af Jakobdo´s script virker til perfektion!!!!!! :-)
Selvom jeg nu kan password beskytte mine sider, så får jeg dog stadig en fejl på forsiden - på forsiden findes nemlig den formular hvorigennem man logger sig ind. Fejlen lyder:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /customers/bilfri12.dk/bilfri12.dk/httpd.www/index.php:11) in /customers/bilfri12.dk/bilfri12.dk/httpd.www/include/session.php on line 46
Jeg kan dog uden problemer logge ind, og alt andet virker. Jeg får blot denne fejl. Hvorfor mon?????
Jakobdo>>>> Ja, det er rigtigt :-) Nu virker det det - næsten uden fejl :-)
Efter at jeg har logget ind, så bliver skriver den Velkommen Claus - og den skal den også. Men den skriver også "Claus/" - og det er tydeligvis en fejl.
Jeg kan imidlertid fjerne denne "fejl" ved at slette: include("include/view_active.php"); men det ved jeg ikke om jeg skal.
Det eneste jeg tror den gør, er blot at skrive navnet på den der er logget ind. Og det kan man vel godt undvære - jeg tænker, at der sker vel ikke noget i forhold til de oplysninger der hentes/uploades til databasen
Det er ikke nok at ændre indstillingerne (selv om du *også* skal gøre det af hensyn til sikkerheden), du *skal* have fundet ud hvor fejlen kommer fra og så skal du have rettet det.
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.