Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Onlinestatus auf einer Website [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Onlinestatus auf einer Website


 
Sternchen131
06-05-2009, 20:55 
 
Hallo, ich habe folgendes Problem:
ich habe eine Website, bei der nach einem Login ein Sessioncookie generiert wird, indem sich dann ein Userhash befindet.

Anhand des Userhashes werden dann Informationen über den aktuellen User ermittelt (aus einer Mysql-Datenbank).


<?php
require_once ("_files/sql/read_member_record.php");
require_once ("_files/sql/email_exists_check_db.php");
require_once ("_files/validation/validation_functions.php");
$sessionemail = $_POST['email'];

if ($_POST['submitted']) {
$email = $_POST['email'];
$password_submitted = $_POST['password1'];

$valid = verifyEmail ($email);
if (!$valid){

$error_msg = 1;
}

$valid = verifyPassword ($password_submitted);
if (!$valid){

$error_msg = 1;
}

if (!$error_msg) {
$id = checkEmail($email);
$returnedRecord = readMemberRecord($id);
$password = mysql_result($returnedRecord,0,'passwort');
if ($password==$password_submitted){
session_start();
$_SESSION['logged_in']=1;
$_SESSION[ 'sessionemail' ] = $sessionemail;
$sessionName =$_SESSION[ 'sessionemail' ];
setCookie("eingeloggt", 1, time() + 60 * 60, "/");
include ("_includes/mysql_start.php");
mysql_query("UPDATE 8d SET online = '1' WHERE id = '$my_id'", $connectID);
header ('Location: /Home');
exit();
}
}
}
include ("_includes/funktions.php");
include ("_includes/page_top_log.php");
if (!$_SESSION['logged_in']) {
print "<form action=\"/Login\" method=\"post\">";
print '<label for="email">Email</label><br />
<input name="email" type="text" id="email" class="MenuEmail"/><br />
<label for="password1">Password<span></span></label><br />
<input name= "password1" type="password" id="password1" class="MenuPassword" /><br />
<input type="submit" value="Einloggen" name="submitted" class="button"/>
</form>';
}
include ("_includes/page_bottom.php");
?>


Mein Problem wäre nun, dass ich gerne anzeigen würde, ob sich ein User online befindet...oben ist das mit einem Eintrag in der Mysql-datenbank getan.

Problem dabei..vergisst jemand sich auszuloggen und damit den Eintrag aus der Datenbank ändert, bleibt für immer online...

Wie könnte ich es lösen, dass man sich nicht zwangsweiste ausloggen muss, trotzdem aber nicht mehr online erscheint?

 
MelloPie
06-05-2009, 22:48 
 
den online status in der DB mit einem Timestamp versehen und immer wieder erneuern, wenn der älter als x Minuten wird ist der User wohl nicht mehr online sein

 
wahsaga
06-05-2009, 23:59 
 
http://aktuell.de.selfhtml.org/artikel/programmiertechnik/useronline/

 
Sternchen131
07-05-2009, 16:37 
 
ok. danke.das hat mir weitergeholfen :-)


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:24 Uhr.