Online mit Nickname Problem

Jo kann dem nur zustimmen.

Naja Comnuity zu starten, ist fürn Anfänger einfach zuviel, du solltest dich erstmal durch ein Tutorials Erfahrung sammeln, es bringt einfach nichts, wenn du nen Code hast von irgendwo her, du solltest dich damit befassen und es auch verstehen.
 
Dankeeee euch :)

Also funktioniert.

Doch eine Frage hätte ich jetzt noch ne wo wir schonmal dabei sind

eine seite soll useronline anzeigen mit dem nickname und darauf verlinken.

normal brauche ich in der useronline.php doch nur abfragen

select username from userdb where username='$_SESSION'

würde das mit session funktionieren?
 
mit sessions bist du schon auf der richtigen Spur.

Es ist wesentlich komplizierter .

Dies kann man am besten mit einer neuen tabelle in der Mysql reallisieren wo man die session_id, user_id und die zeit einträgt.

Also jedes mal wenn man eingeloggt ist und die Seite neulädt, soll er neue Daten in der Mysql schreiben. Mit der Zeit ist die aktuelle gemeint. Durch die Funktion time() erhälst du die aktuelle Zeit in Sekunden.

PHP kann nicht ahnen wer wirklich online ist, das heisst du kannst per Zeitspanne, sagen wir 5 Min., sehen wer online war, kann natürlich auch kurz für ne Minute drauf geklickt haben.

Korrigiert mich bitte, wenn ich was schwachsinniges sage.

Die time() Funktion gibt dir, die Zeit in Sekunden raus und zwar ab 1970 oder so.

So hier nochmal ein grobes Beispiel:

$jetzt=time();
$vor5minuten=time()-300;

SELECT tab_session Where zeit >= '$vor5minuten';
 
Zuletzt bearbeitet:
habe das jetzt so gemacht.

<?php
$jetzt= time();

include"inc/config.php";
$eintrag= "INSERT INTO `online` (`user`,`zeit`) VALUES ('" . $user . "','" . $jetzt . ")";
mysql_query("$eintrag");
?>


aber irgendwie trägt der ncihts ein

habe das ganz oben auf die seite gemacht wo man hinkommt wenn man sich einloggt.
 
Probier das mal :

<?php
error_reporting(E_ALL);
$jetzt= time();
include"inc/config.php";
$eintrag= "INSERT INTO `online` (`user`,`zeit`) VALUES ('" . $user . "','" . $jetzt . ")";
mysql_query($eintrag);
echo mysql_error();
?>
 
$jetzt= time();

include"inc/config.php";
$eintrag= "INSERT INTO `online` (`user`,`zeit`) VALUES (' " . $user . " ',' " . $jetzt . " )";
mysql_query("$eintrag");
?>

Schau dir die Anführungszeichen nochmal genau an dann wirst du sehen damit ein ( ' ) fehlt!

MfG proloser

EDIT:
include"inc/config.php"; sollte so aussehen include("inc/config.php");
 
Zuletzt bearbeitet:
das mit dem include funktioniert auch so ...

include"inc/config.php";

jetzt trägt er in die datenbank ein aberzeigt mir ncihts mehr an vorhin ging es habe ncihts verändert und jetzt will er nciht mehr :(


<?
include"inc/config.php";

$jetzt=time();
$vor5minuten=time()-100;

$abfrage = "SELECT user FROM online WHERE zeit >='$vor5minuten'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo '<a href="viewprofile.php?name='.$row['user'].'">'.$row['user'].'</a>';
}
;?>
 
Ein Dreher drin gehabt :

$abfrage = "SELECT user FROM online WHERE zeit >='$vor5minuten'";

Ich würde es lieber so machen :
$abfrage = "SELECT user FROM online WHERE zeit >='".$vor5minuten."'";
 
<?
include("inc/config.php");

$jetzt=time();
$vor5minuten=time()-100;

$abfrage = "SELECT user FROM online WHERE zeit >='".$vor5minuten."'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo '<a href="viewprofile.php?name='.$row['user'].'">'.$row['user'].'</a>';
}
;?>

er will einfahc ncihts ausgeben obwohl mein eintrag inder db steht :(

verstehe nciht warum jetzt aufienmal hatdie ganze zeit geklappt
 
Zurück