Avatar billede stengaard Praktikant
29. marts 2008 - 10:36 Der er 6 kommentarer og
1 løsning

prøver at lave en udvidelse af mit script

hej prøver at lave en udvidelse af mit script så man kan se hvornår brugerne sidst har været online men jeg for kun en hvis skærm

scriptet ser sådanne ud

<?php
session_start();




if ($_POST['bruger'] == "" AND $_POST['pass'] == "") {
        $_SESSION['status'] = "nobrugerpass";
    print("    <script language='javascript'>
        location.href='login.php';
        </script>");
}

elseif ($_POST['bruger'] == "") {
       
        $_SESSION['status'] = "nobruger";
    print("    <script language='javascript'>
        location.href='login.php';
        </script>");
}

elseif ($_POST['pass'] == "") {
       
        $_SESSION['status'] = "nopass";
    print("    <script language='javascript'>
        location.href='login.php';
        </script>");
}

else

{
include("access.php");

$query = "SELECT user, pass FROM login WHERE user = '".$_POST['bruger']."' AND pass= '".$_POST['pass']."'";
$result = mysql_query($query)or die("MySQL fejl: " . mysql_error());
$log = mysql_fetch_array($result);

if ($_POST['bruger'] == $log['user'] && $_POST['pass'] == $log['pass']) {
   
        $_SESSION['status'] = "login";
        $_SESSION['navn'] = $_POST['bruger'];
       
mysql_query("update `login` set `lastlogin`=".now()." where `user`='".$_SESSION["navn"]."'");

   
    print("    <script language='javascript'>
        location.href='index.php';
        </script>");
       
}

else
{
        $_SESSION['status'] = "fejl";
    print("    <script language='javascript'>
        location.href='login.php';
        </script>");
       
}
}
?>

og min table

CREATE TABLE `login` (
  `ID` int(11) NOT NULL auto_increment,
  `user` varchar(50) NOT NULL default '',
  `pass` varchar(25) NOT NULL default '',
  `lastseen` text NOT NULL,
  `lastlogin` text NOT NULL,
  `online` text NOT NULL,
  `navn` varchar(51) NOT NULL default 'Ikke oplyst',
  `member` text NOT NULL,
  `adresse` text NOT NULL,
  `postnr` varchar(4) NOT NULL default '',
  `kommune` text NOT NULL,
  `mobil` varchar(8) NOT NULL default '',
  `foedselsdag` char(2) NOT NULL default '00',
  `aar` varchar(4) NOT NULL default '',
  `maaned` varchar(14) NOT NULL default '',
  `image` varchar(100) NOT NULL default '',
  `email` varchar(50) NOT NULL default '',
  `tid` datetime NOT NULL default '0000-00-00 00:00:00',
  `oprettetaf` text NOT NULL,
  PRIMARY KEY  (`ID`),
  UNIQUE KEY `idx_brugere` (`user`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=11 ;


har det noget med timestamp at gøre ??
Avatar billede stengaard Praktikant
29. marts 2008 - 11:07 #1
har prøvet dette her men samme resultat hvid skærm, vedd at bruge logout scriptet da jeg mente det var det smartest, men kan man tvinge brugerne til at de skal logge ud

<?php
include("access.php");
session_start();
mysql_query("UPDATE login SET online = 0 WHERE user = '" . $_SESSION["navn"] . "'");
mysql_query("UPDATE login SET lastlogin = ".timestamp()." WHERE user = '" .$_SESSION["navn"]. "'");

$_SESSION = array();
session_destroy();
header("Location:../index.php");
exit;
?>
Avatar billede showsource Seniormester
29. marts 2008 - 11:32 #2
Der er lidt overflødig kode, så'n lige ved første kik, men dine felter:
`lastseen` og `lastlogin` skal jo være af typen "datetime" år-måned-dag time-min-sek.

0000-00-00 00:00:00
Avatar billede stengaard Praktikant
29. marts 2008 - 11:42 #3
har rettet min table men min lastseen køre men en anden funktion som ser sådan her ud

<?php
include("access.php");

session_start();
mysql_query("update `login` set `lastseen`=".time()." where `user`='".$_SESSION["navn"]."'");
mysql_query("UPDATE login SET online = 1 WHERE user = '" . $_SESSION["navn"] . "'");

?>

<script type="text/javascript">
setTimeout('location.reload(true)',60000)
</script>
<meta http-equiv="Refresh" content="100" />
<meta name="robots" content="none" />


min table

CREATE TABLE `login` (
  `ID` int(11) NOT NULL auto_increment,
  `user` varchar(50) NOT NULL default '',
  `pass` varchar(25) NOT NULL default '',
  `lastseen` text NOT NULL,
  `lastlogin` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `online` text NOT NULL,
  `navn` varchar(51) NOT NULL default 'Ikke oplyst',
  `member` text NOT NULL,
  `adresse` text NOT NULL,
  `postnr` varchar(4) NOT NULL default '',
  `kommune` text NOT NULL,
  `mobil` varchar(8) NOT NULL default '',
  `foedselsdag` char(2) NOT NULL default '00',
  `aar` varchar(4) NOT NULL default '',
  `maaned` varchar(14) NOT NULL default '',
  `image` varchar(100) NOT NULL default 'gaest.jpg',
  `email` varchar(50) NOT NULL default '',
  `tid` datetime NOT NULL default '0000-00-00 00:00:00',
  `oprettetaf` text NOT NULL,
  PRIMARY KEY  (`ID`),
  UNIQUE KEY `idx_brugere` (`user`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=11 ;

og mit logout script som skulle skrive i table i row lastlogin

<?php
include("access.php");
session_start();
mysql_query("UPDATE login SET online = 0 WHERE user = '" . $_SESSION["navn"] . "'");
mysql_query("UPDATE login SET lastlogin = ".now()." WHERE user = '" .$_SESSION["navn"]. "'");
?>
<?php
session_start();
$_SESSION = array();
session_destroy();
header("Location:../index.php");
exit;
?>

men ved ikke helt hvorfor jeg skal have online med se spørgsmål
http://www.eksperten.dk/spm/825613
Avatar billede stengaard Praktikant
29. marts 2008 - 11:45 #4
men den skriver fint nok i table men jeg for en hvid skærm så et eller andet er det galdt med logout.php
Avatar billede showsource Seniormester
29. marts 2008 - 11:52 #5
Jeg er desværre nødt til at smutte på job, men

når du "leger" med tid, så bruge enten datetime, timestamp felter i mysql.
( evt. int, hvor du så bruger time() eller mysql's UNIXTIME_STAMP() )

Lastlogin skal vel kun opdateres ved login?

Og sætter du en "tidsgrænse" for hvornår man er online eller ej, behøver du ingen update af tabel ved logud.
Avatar billede stengaard Praktikant
29. marts 2008 - 12:24 #6
ja det skulle jeg mene, men er jo næsten bedre hvis man kan gøre det ved logud og så lave noget så brugerne skal bruge logud "hvis man kan det"

da man jo får en forkert oplysning om sidste login hvis den skriver dato og tid ved login så for man jo ikke sidste login dato / tid frem når man senere henter det til f.eks. sin index om brugerens oplysninger
Avatar billede stengaard Praktikant
16. april 2008 - 11:22 #7
lukket
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