PMedlem sedan jan. 20012 204 inlägg Funderar på att göra ett litet annorlunda inloggningssystem. Det går ut på att man har tre kolumner i databasen anv, lös, och loginstatus.
När man sedan loggar in så ändras 0 till 1 i loginstatus
När man sedan går till en annan sida så kontrolleras det i db att logstatus = 1
Är det någon som har gjort ett sånt här system innan? (det borde det ju vara)
Finns det några nackdelar?
------------------
/// P
Det skulle väl fungera, men du måste ha ett fält till med "senast aktiv" - så om inget händer på t.ex. 10 minuter så ändras loginstatus till 0 igen. Annars kommer användaren att vara ständigt inloggad när han/hon har loggat in en gång.
------------------
Gislaved.net
"Tänk på vad du säger så att du inte säger vad du tänker."
PMedlem sedan jan. 20012 204 inlägg Gömde att skiva det men om amn loggar ut så ändras 1 till 0
------------------
/// P
Om man struntar i att logga ut och går ifrån sidan då?
------------------
Gislaved.net
"Tänk på vad du säger så att du inte säger vad du tänker."
PMedlem sedan jan. 20012 204 inlägg Ja en bra fråga, hur skulle man kunna löse den....
------------------
/// P
jompaMedlem sedan dec. 2000112 inlägg på www.fjompa.com har jag löst det lilla problem med javascriptet onUnload
också öppnas ett litet fönster som ändrar variabeln och sedan stängs,
prova det,
------------------
varje morgon går jag till skolan, och på eftermiddagen går jag hem
stevenetMedlem sedan juni 20001 251 inlägg Så här, kanske?
OBS. Ej testat.
I loginstatus-fältet kommer tiden (timestamp) då användaren sist var aktiv lagras.
<?
/* Antal minuter en användare är aktiv */
$antal_aktiva_minuter="10";
$db = mysql_connect ("localhost", "användare", "lösen");
mysql_select_db("databasnamn",$db) or die( "Kunde inte ansluta till databasen");
$tid=time();
$antal_aktiva_sekunder=$antal_aktiva_minuter*60;
$anvc= $HTTP_COOKIE_VARS["AnvCookie"];
$losc= $HTTP_COOKIE_VARS["LosCookie"];
$hittat = mysql_num_rows(mysql_query("select * from medlemmar where los = '$losc' AND anv = '$anvc'"));
if ($hittat=="1") {
$rad = mysql_fetch_array(mysql_query("select * from medlemmar where los = '$losc' AND anv = '$anv'"));
$nuvandare=$tid-$antal_aktiva_sekunder;
mysql_query("UPDATE medlemmar SET loginstatus='$tid' where los = '$losc' AND anv = '$anvc'");
setcookie ("AnvCookie", $anvc,time()+$antal_aktiva_sekunder);
setcookie ("LosCookie", $losc,time()+$antal_aktiva_sekunder);
}
else {
echo "Du måste logga in.";
exit;
}
?>
Inloggad
<?
mysql_close($db);
?>
------------------
SteveNet - stevenet@webmarkit.net
Cogito ergo doleo.
[Redigerat av stevenet den 24 jan 2001]
nanneMedlem sedan dec. 19991 749 inlägg
på www.fjompa.com har jag löst det lilla problem med javascriptet onUnload
också öppnas ett litet fönster som ändrar variabeln och sedan stängs,
prova det,
Om man har stängt av javascript då?
Jag har gjort såhär
När någon loggar in så läggs följande in i en egen tabell
medlems_id
timestamp när man loggar in.
online flagga
(jag har även lite rolig statistik info här som webläsare, OS, IP m.m.)
Så fort någon laddar sidan och är inloggad (du eller jag) så uppdaterar den timestampen. Dessutom så kollar den efter alla online flaggor där timestamp är längre än den tid man satt att man får "idle" (inte göra nånting) och sätter av dom. I mitt fall är det 15min.
------------------
"Information wants to be free -- because it is now so easy to copy and distribute casually -- and information wants to be expensive -- because in an Information Age, nothing is so valuable as the right information at the right time."
- John Perry Barlow
nanne.net
[Redigerat av nanne den 24 jan 2001]
stevenetMedlem sedan juni 20001 251 inlägg Det är, på ett ungefär, vad jag gjort ovan. ;)
------------------
SteveNet - stevenet@webmarkit.net
Cogito ergo doleo.
AlMedlem sedan jan. 200122 inlägg Har inte anv. sessions i PHP men väl i servlets och då är det juh busenkelt att ha koll på vilka som är inloggade. De loggas ju av automatiskt också.
Ser att det frågats en hel del om sessions här så det kanske är för att det inte är helt lätt i PHP som ni vill undvika det?
/Al
nielsMedlem sedan juli 2000212 inlägg Det är så phplib fungerar.
(http://phplib.netuse.de)
------------------
www.phpfunctions.com
PMedlem sedan jan. 20012 204 inlägg Har gjort ett litet logginscript. I all afll försök till ett.
<?
include("settings.php");
mysql_connect($DBhost,$DBuser,$DBpass) or die
("Det gick inte att kontakta databasen.");
mysql_select_db("min_databas");
$query = "SELECT * FROM anvandare WHERE anv_namn = '$anv_namn'";
$result = mysql_query($query);
$userdetails = mysql_fetch_array($result);
$loguser = $userdetails['anv_id'];
if ($userdetails['losenord'] == $losenord)
{
$query = "UPDATE anvandare SET log = '1' WHERE anv_id = $loguser";
mysql_query($query);
?>
<META HTTP-EQUIV=Refresh CONTENT=0;URL="inloggad.php"> ?>
<?php
}
else
{
?>
<META HTTP-EQUIV=Refresh CONTENT=0;URL="loginerror.php"><?
?>
men det funkar inte vad kan vara fel?????????
på logginsidan ( anvädarnamn + lösenord ) är variablerna anv_namn & losenord.
------------------
/// P
KimMedlem sedan jan. 20007 697 inlägg Varför har du ?> efter META-taggen?
------------------
Det gör inte ont när man ramlar - bara när man slår sig
PMedlem sedan jan. 20012 204 inlägg Är nybörjare inom php och vet inte riktigt hur jag ska skriva. Öppnen för förslag...
------------------
/// P
KimMedlem sedan jan. 20007 697 inlägg Ta bort ?> efter META-taggen. Den ska nog inte vara där. :)
------------------
Det gör inte ont när man ramlar - bara när man slår sig
MarcusMedlem sedan juli 2000449 inlägg Varför använda Meta Refresh? Jag använder header("Location:www.dindator.nu"); fungerar...
------------------
DinDator.nu
PMedlem sedan jan. 20012 204 inlägg Har du nått imot att dela med dig av ditt script mitt funkar inte???
------------------
/// P