Avatar billede argo Nybegynder
11. november 2006 - 23:25 Der er 16 kommentarer

login-side

Hej Eksperter.

Jeg har en Logind side og vil have, at 2 bruger kan loge ind med samme brugernavn samtidigt. dvs. hvis man har en bruger med brugernavnet bruger1 som har logget sig ind, hermed kan en anden ikke bruger bruger1´s oplysninger før vedkommende har logget sig ud. Er det en som kan komme med en forklararing/eksempel.
På forhånd mange tak.
Avatar billede mysli Nybegynder
11. november 2006 - 23:47 #1
Det kan laves på nogen lunde samme måde som "Vis online brugere", hvis du har prøvet det.

Hver gang der loades en side, kan du opdatere brugerens profil (ex. lastactive i mysql) med time().

Når man logger ind, kan du så tjekke, om der er gået mere end 5 min siden lastactive.
Avatar billede mysli Nybegynder
11. november 2006 - 23:52 #2
I toppen af hver side:

if (isset($_SESSIOm['user']['id'])){

    mysql_query("UPDATE user SET lastactive = '$tid' WHERE id = '".$_SESSION['user']['id']."'");
   
}
   
    Når man prøver at logge ind:
   
if (time() < $sql['lastactive']+300){
    die("Brugeren er allerede logget ind");
}

Det kan også gøres via IP, da dette kan skave problemer hvis en bruger logger ud og skal vente 5 min før man kan logge ind igen.
Avatar billede argo Nybegynder
12. november 2006 - 00:17 #3
Nej, jeg har faktisk ikke prøvet at lave vis online brugere og har en begrænset kendskab til PHP. variablen $tid skal oprettes som datetime i databasen eller hvordan. Jeg har kun brugervnavn og password i tabelen user.
Avatar billede mysli Nybegynder
12. november 2006 - 01:24 #4
Har du nogen grund til at skulle have sådan en funktion? Det er jo spild at lave en masse arbejde for ingen nytte.
Avatar billede argo Nybegynder
12. november 2006 - 01:52 #5
jo, grunden til dette er, at bruger-login siden er til en hjemmeside som man skal abonnere for at læse indholdet, og at det bliver afholdt kurser om emnet. Dette skal f.eks. sikre at ikke flere kursister bruger samme login.
Avatar billede gf Nybegynder
12. november 2006 - 09:08 #6
Du kan jo tjekke om brugernavnet allerede findes i databasen.

mvh gf
Avatar billede gf Nybegynder
12. november 2006 - 09:37 #7
$resultdata = mysql_query("select * from din db where noget = noget");
        $rowdata = mysql_numrows($resultdata);
        if ($rowdata == "1")
        {
        //brugeren findes
        }
        else
        {
        //brugeren findes ikke
        }
Avatar billede argo Nybegynder
12. november 2006 - 09:45 #8
>>gf Det jeg mener er, at det skal tjekes, at 2 bruger ikke skal logeind samtidigt  ved brug af én/samme login-oplysninger.
Avatar billede gf Nybegynder
12. november 2006 - 10:56 #9
ahhh ;)

Det vil kræve, at de husker, at logge ud når de forlader sitet. men ellers kan du bruge mysli's med lastactive.

mvh gf
Avatar billede argo Nybegynder
12. november 2006 - 11:02 #10
ja, nemligt, men ved ikke helt hvordan man gøre det..
Avatar billede mysli Nybegynder
12. november 2006 - 12:43 #11
Problemet der kan opstå hvis det er et kursus, er at man sikkert skal læse en del(?), hvilket vil sige nogen gange mere end 5 min inaktivitet. Efter de 5 min, kan en anden bruger logge på - men det er nok den letteste måde at gøre det på.

Hvis det skal sættes ind i dit system, er jeg nødt til at se noget kode.
Avatar billede argo Nybegynder
12. november 2006 - 14:21 #12
Jeg følgende til login siden:

<?php
header ("Location: forside.php");
?>
<?php
session_start();
?>
<? $strTitle="Login side";?>
<? include("header.inc"); ?>
<body>
<div class="indhold">
<?
$db=mysql_connect("localhost", "bruger7", "bruger77");
mysql_select_db("bruger");
$result = mysql_query("SELECT NULL FROM users2 WHERE brugernavn =
'".$_POST['brugernavn']."' AND password = '".$_POST['password']."'") or die
(mysql_error());
if ($antal_raekker=mysql_num_rows($result)>0){
$_SESSION['logget_ind']=1;
  $_SESSION['brugernavn'] = $brugernavn;
  $_SESSION['password'] = $password;

}
else
{
    echo "<h1>Forkert login-oplysninger</h1>   
    <p>Du skal være logget ind for at se siden sider. <a class=\"tlink\" href=\"login.php\">Log in</a></p>";
}
?>
</div>
<? include("menu7.inc"); ?>
</body>
</html>

Så er det nok her, at jeg skal også tjeke, at det er ikke 2 bruger som loge ind med samme oplysninger samtidigt..
Avatar billede mcardle Nybegynder
13. november 2006 - 18:00 #13
Du kan lave et felt mere i din logintabel som hedder status, hvor du under login updater feltet til værdien 1 og så bare:

mysql_query("SELECT NULL FROM users2 WHERE brugernavn ='".$_POST['brugernavn']."' AND password = '".$_POST['password']."' AND status !='1'") or die
(mysql_error());

Dette kræver dog, at folk logger ud og ikke bare lukker browseren, men det kan kombineres med Mysli's onlinetjek

//mcardle
Avatar billede argo Nybegynder
14. november 2006 - 22:40 #14
>> mcardle, Ja jeg har tilføjet en felt mere som status og feltet vil blive tjeket, men kan ikke finde ud af, hvordan kan jeg kombinere med Mysli´s onlinetjek, kan du eller en anden være venligt at komme med et forslag hvordan præcis jeg kan gør det.
Avatar billede mcardle Nybegynder
14. november 2006 - 22:57 #15
Jeg tror du skal få mysli til det, han har vidst lidt mere ekspertise inden for php end jeg har...

//mcardle ;)
Avatar billede argo Nybegynder
14. november 2006 - 23:02 #16
>> mcardle, tak for det, håber at Mysli eller måske en anden kan hjælpe...
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



IT-JOB