[php] login med sessioner - Problem

Permalänk
Medlem

[php] login med sessioner - Problem

Tjo igen,

Jag har ytterligare ett problem jag skulle vilja ha lite hjälp med.

Jag sitter och pillar på en sida just nu åt min World of Warcraft guild, idén är att de ska kunna logga in och läsa ansökningar till guilden.

Nu under testperioden medans jag bygger den använder jag mig av en loginlösning jag läst här i forumet som lyder:

Överst på start.php som blir inkluderad i index.php

<?php session_start(); $login_passw = 'betatest'; function error(){ echo("Fel lösenord"); } if(isset($_POST['passw'])){ if($_POST['passw'] == $login_passw){ // Inloggning lyckades, skicka vidare $_SESSION['logged_in'] = "ja"; header('Location: index.php?mod=admin.php'); }else{ // Inloggning misslyckades, skicka tillbaka header('Location: index.php?mod=start.php'); } } ?>

Överst på admin.php

<?php session_start(); if(!isset($_SESSION['logged_in']) || $_SESSION['logged_in'] != "ja"){ header('Location: index.php?mod=start.php'); exit; } ?>

Detta fungerar, men den låter bara 1 person vara inloggad åt gången, detta skapar lite problem då jag inte kan sitta och jobba med sidan och låta ledarna kolla igenom den och komma med synpunkter eller förslag under tiden.

Jag måste logga ut och vänta tills de kollat och sedan vänta tills sessionen gått ut och sen logga in igen. Detta tar för lång tid, det blir inget gjort

Vad har jag missat för att kunna låta fler logga in samtidigt?

Tacksam för all hjälp

Visa signatur

Min signatur, inte din, MIN.
Bort med tassarna O.o

Permalänk
Medlem

lägg in så att det måste vara användarnamn också. Och han

$_SESSION[$user]['logged_in']

Permalänk
Medlem

ok, kan fungera, men kan du förklara lite mer ingående, är rädd för att jag inte förstår fullt ut hur du menar.

Visa signatur

Min signatur, inte din, MIN.
Bort med tassarna O.o

Permalänk
Medlem

ehm, men så borde det väl inte bli? Alla ska ju få en varsion session automatiskt, varför får de inte det tro? Låter märkligt.

Det kejsarn säger är att du borde lagra användarid också, alltså

$_SESSION[användarens id, t.ex 5]["inloggad"] = "ja";

Om det gör nån skillnad eller ej vet jag inte, men testa.

edit: Om du har användarid etc. Du kanske inte jämför med något i en databas utan du har förbestämda uppgifter? Men borde ändå inte spela nån roll med den informationen du har lämnat för oss... Antar jag.

Permalänk
Medlem

lösenordet är förbestämt, jag har inga användarnamn utan bara ett lösenord som det ser ut nu. Hade också för mig att varje person skulle få en session, men tydligen inte :/

Visa signatur

Min signatur, inte din, MIN.
Bort med tassarna O.o

Permalänk
Medlem

jag tänker om det kan vara något i stil med att webbservern optimerar det på något sätt pga att det är samma innehåll i sessionerna, men något sådant vore farligt och finns mig veterligen inte.

Ingen aning du, men det låter märkligt.

Permalänk
Medlem

Haru me dessa när man loggar ut?
session_unset();
session_destroy();

Visa signatur

That's nasty!

Permalänk
Medlem

Det ska gå fint att låta alla ha samma värde på sin session. Det blir i vanliga fall en session per användare om inte webbservern är helt felkonstruerad.

Om du driver webbservern själv och kan konfigurera den:

Kolla att webbservern är rätt konfigurerad för sessions. Det fungerar bäst om den är cookie-based. Och sparar sessionens innehåll på servern och inte på klientens webbläsare. Du kan se värdena om du kör en php-fil innehållande endast <? phpinfo(); ?> Värdena kan sen ändras i php.ini.

session.save_handler files
session.use_cookies On
session.use_only_cookies On

En notering också, om du inkluderar admin.php eller den andra filen med ett include() så är du i farozonen. Vad händer om någon skriver ìndex.php?mod=index.php i URL:en?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av TechGuru
Det ska gå fint att låta alla ha samma värde på sin session. Det blir i vanliga fall en session per användare om inte webbservern är helt felkonstruerad.

Om du driver webbservern själv och kan konfigurera den:

Kolla att webbservern är rätt konfigurerad för sessions. Det fungerar bäst om den är cookie-based. Och sparar sessionens innehåll på servern och inte på klientens webbläsare. Du kan se värdena om du kör en php-fil innehållande endast <? phpinfo(); ?> Värdena kan sen ändras i php.ini.

session.save_handler files
session.use_cookies On
session.use_only_cookies On

En notering också, om du inkluderar admin.php eller den andra filen med ett include() så är du i farozonen. Vad händer om någon skriver ìndex.php?mod=index.php i URL:en?

Nej jag driver inte servern själv dessvärre.

Om de kallar på index.php?mod=index.php så öppnar den index.php?mod=start.php

Visa signatur

Min signatur, inte din, MIN.
Bort med tassarna O.o