Avatar billede Slettet bruger
12. april 2003 - 09:54 Der er 10 kommentarer og
1 løsning

bruger system og sessions

Hejsa eksperter.

Jeg har et mindre problem med at få implanteret sessions i mit brugersystem. Det skulle jo gerne virke sådan at når folk går videre til en anden side, skal de ikke logge ind igen. Men samtidig skal siderne være password beskyttet. Derfor tænkte jeg på at benytte sessions, men kan ikke få det til at sviske.

Her er hvad jeg har bikset sammen.

login.php:

<form action="login-ok.php" method="post">
Brugernavn: <input type="text" name="brugernavn">
Password: <input type="password" name="password">
<input type="submit" name="login" value="Login">
</form>

login-ok.php:

<?

mysql_connect("localhost","xxx","xxx");
mysql_select_db("login");

$check = mysql_query("select brugernavn, password from users where brugernavn ='$_POST[brugernavn]' and password ='$_POST[password]'") or die (mysql_error());


if(mysql_num_rows($check) == 0) {
echo "Du er ikke logget ind";
exit;
}


else {

print "Du er nu logget ind";




}
?>
Avatar billede schaefner Juniormester
12. april 2003 - 10:18 #1
<?
session_start();
mysql_connect("localhost","xxx","xxx");
mysql_select_db("login");
$check = mysql_query("select brugernavn, password from users where brugernavn ='$_POST[brugernavn]' and password ='$_POST[password]'") or die (mysql_error());
if(mysql_num_rows($check) == 0) {
    echo "Du er ikke logget ind";
    exit;
} else {
    $_SESSION['brugernavn'] = $_POST['brugernavn'];
    $_SESSION['password'] = $_POST['password'];
    print "Du er nu logget ind";
}
?>

Så kan du tjekke om man er logget ind sådan her:
if(isset($_SESSION['brugernavn'])) {
// Logget ind
} else {
// Ikke logget ind
}

Og udskriver dem sådan her
echo "Du er logget ind som ".$_SESSION['brugernavn'];
Avatar billede Slettet bruger
12. april 2003 - 10:33 #2
hmm... før bare fejlmeldinger. ligesom da jeg selv forsøgte mig med det.

Warning: session_start() [function.session-start]: open(/tmp\sess_bb7e3f518be7c94ecb5c4c9c6ef4134f, O_RDWR) failed: No such file or directory (2) in d:\root\test\login-ok.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at d:\root\test\login-ok.php:3) in d:\root\test\login-ok.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at d:\root\test\login-ok.php:3) in d:\root\test\login-ok.php on line 4
Du er nu logget ind
Warning: Unknown(): open(/tmp\sess_bb7e3f518be7c94ecb5c4c9c6ef4134f, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

Jeg har aldrig arbejdet med sessions før. Kendte blot til deres funktion. Skal det opsættes på serveren før det virker?.
Avatar billede tipsen Nybegynder
12. april 2003 - 11:05 #3
cypermann: I din php.ini fil, skal du definere det bibliotek (/tmp), hvor den skal gemme de midlertidige session-filer - det er årsagen til den første fejl!

Med stor sandsynlighed er dine øvrige fejl forårsaget af den første.
Avatar billede Slettet bruger
12. april 2003 - 11:22 #4
hmm... det hjalp jo en smugle på det :)

Men de sidste to fejl forsvandt dog ikke.

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at d:\root\test\login-ok.php:3) in d:\root\test\login-ok.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at d:\root\test\login-ok.php:3) in d:\root\test\login-ok.php on line 4
Avatar billede Slettet bruger
12. april 2003 - 11:37 #5
Hmm... ved at lave et linjeskift efter session_start(); kunne den pludselig finde ud af det :)

Jeg har blot et spørgsmål tilbage.
Hvis jeg kigger i temp mappen, hvor den gemmer sessionen i, bliver den ved med at ligge der, selv efter browseren er lukket ned, og det er vel ikke meningen ?
Hvordan får jeg den til at slette den automatisk ?
Avatar billede Slettet bruger
12. april 2003 - 13:05 #6
Umiddelbart kan jeg ikke se hvorfor den ikke sletter de sessions der ligger i temp mappen på serveren.
php.ini ser ud til at være konfiguret fint.

session.cookie_lifetime = 0
Avatar billede xyborx Nybegynder
14. april 2003 - 11:58 #7
Browseren fortæller ikke serveren at den bliver lukket ned. Derfor bliver filerne liggende. Det er helt normalt. Jeg mener man kan indstille i php.ini hvor lang tid filerne skal have lov at blive liggende.
Avatar billede Slettet bruger
18. april 2003 - 20:59 #8
Jeps .. fandt jeg også ud af :)
Jeg har fået hvad jeg skal bruge. Derfor ville det være passende hvis tipsen og schaefner ligger et svar således at vi kan få lukket spørgsmålet.

Jeg takker mange gange for hjælpen :)
Avatar billede schaefner Juniormester
18. april 2003 - 21:32 #9
svar :)

/Jesper Sørensen
Avatar billede Slettet bruger
21. april 2003 - 12:10 #10
Jeg lukker og slukker her :)
Schaefner får points. Håber tipsen kan overleve med ikke at modtage hans 15 points :)
Avatar billede tipsen Nybegynder
23. april 2003 - 01:50 #11
Det går vist lige ;-)
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