Avatar billede smeier Nybegynder
24. oktober 2004 - 16:30 Der er 16 kommentarer og
2 løsninger

Problem med loginscript.

Jeg har brugt nedenstående side til at lave et login script udfra:

http://www.free2code.net/plugins/articles/read.php?id=99

Mig problem er at når man logger ind, kan man kun klikke ind på en beskyttet side og se den, før at scriptet ikke fungerer og man skal logge ind igen. Man kan trykke sig ind på alle de beskyttede sider, men så snart man har besøgt den første, så logger den automatisk ud igen.

Nogen der ved hvad dette kan skyldes?
Avatar billede detox Nybegynder
24. oktober 2004 - 16:32 #1
Husker du session_start(); på alle sider?
Avatar billede smeier Nybegynder
24. oktober 2004 - 16:34 #2
Har en require 'db_connect.php'; som har en include('check_login.php'); som har en session_start() ;)
præcis som det er vist.
Avatar billede detox Nybegynder
24. oktober 2004 - 16:38 #3
Jeg kan se scriptet benytter sig af Pear DB, er det osse på plads?
Avatar billede smeier Nybegynder
24. oktober 2004 - 16:42 #4
Yes. Det burde det ihvertfald.
Har installeret hele PEAR pakken. Ved at pear virker i andre sammenhænge. og så vidt jeg har forstået er det pear der laver opkaldet til MySql, og det virker. Så alt i alt tror jeg at det er på plads.
Avatar billede detox Nybegynder
24. oktober 2004 - 16:53 #5
Ja, ellers ville scriptet jo osse stoppe ved: require_once 'DB.php';
Jeg vil hvert fald tro det går galt i: 'check_login.php', så måske du skal prøve at debugge der (indsæt nogle echo's og se om de bliver udført).
Avatar billede smeier Nybegynder
24. oktober 2004 - 19:56 #6
Har prøvet at teste scriptet alene. Hvis jeg har ekskluderet alt min indhold på siderne, og der virker scriptet upåklageligt.
Har erstattet alle mine test filer med dem der ikke virkede. Samme problem opstår alligevel. Derfor går jeg ud fra at det ikke er check_login.php, db_connections.php eller login.php. DEt må vel være min udførelse af scriptet på mine sider der går galt.

Er kommet frem til at hvis jeg kører mellem to sider ligesom denne:
http://d954977.u38.surftown.dk/admin/intern/test.phps
er der intet problem,
men hvis jeg derimod går ind på en side som denne:
http://d954977.u38.surftown.dk/admin/intern/changeemail.phps
så siger den næste side at jeg ikke er logget ind.
Hjælper det?
Avatar billede detox Nybegynder
24. oktober 2004 - 20:09 #7
Tja, det virker jo pudsigt at dit andet eksempel ikke virker. Du har som jeg ser det ikke brug for else delen, da den jo dør ved manglende login. Så prøv måske:

<?
require 'db_connect.php';
if ($logged_in == 0) {
   
    die('Du er ikke logget ind. Du skal være medlem af Spillesteder.dk for at kunne logge ind. <a href="login.php">Klik</a> for at logge ind.');
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
....
mere kode....
....
</body>
</html>
<?
$db_object->disconnect();
// when you are done.
?>
Avatar billede smeier Nybegynder
24. oktober 2004 - 20:13 #8
Hjælper desværre ikke så fandens meget.
Sidder lidt og overvejer om det kunne skyldes at den har <head> eller sådan noget. Har prøvet at ligge alle de inkluderede filer ind i dokumentet, og det hjalp heller ikke.
Avatar billede smeier Nybegynder
24. oktober 2004 - 20:16 #9
Måske fordi jeg åbner forbindelse til databasen på den traditionelle måde oven i pears måde? jeg sidder og prøver mig lidt frem. Synes ikke rigtigt det giver mening.
Avatar billede detox Nybegynder
24. oktober 2004 - 20:20 #10
I 'login.php' mangler der en | her:

    if(!$_POST['uname'] | !$_POST['passwd']) {
        die('You did not fill in a required field.');
    }

    if(!$_POST['uname'] || !$_POST['passwd']) {
        die('You did not fill in a required field.');
    }
Avatar billede smeier Nybegynder
24. oktober 2004 - 20:30 #11
Det hjalp desværre ikke. Inkluderede min menu.php en min fungerende test.php
Så virkede den pludselig ikke mere.

http://d954977.u38.surftown.dk/admin/intern/menu.phps

Ved du hvorfor?
Avatar billede smeier Nybegynder
24. oktober 2004 - 20:35 #12
Har fundet problemet. Jeg må ikke kalde op på den "gammeldavs" facon. Den har hele tiden en åben forbindelse til mig.
Avatar billede smeier Nybegynder
24. oktober 2004 - 20:36 #13
Underlig regel. Smid et svar så får du nogle points som tak for hjælpen.
Avatar billede detox Nybegynder
24. oktober 2004 - 20:36 #14
Du skal være forsigtig med at bruge '.inc' som filendelse. Det gør det muligt at se indholdet, medmindre filen ligger udenfor webroden.
Avatar billede detox Nybegynder
24. oktober 2004 - 20:38 #15
Ja, du lukker jo først forbindelsen nederst i scriptet.
Avatar billede smeier Nybegynder
24. oktober 2004 - 20:38 #16
Men det får jeg automatisk løst nu. Alle mine .inc filer kan jeg ligeså godt slette. Skal fjerne alle mine opkald på siderne.
Avatar billede smeier Nybegynder
24. oktober 2004 - 20:38 #17
:)
Avatar billede detox Nybegynder
24. oktober 2004 - 20:39 #18
Ja, det må du gøre.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester