Hallo, ik ben bezig met een chat systeem nou wil ik zeg maar zodra de user de pagina verlaat dat er in de status offline komt te staan nu werkt online wel maar hij gaat niet offline,


<?php
	$user_activity = '<span style="color:red">Offline</span>';
			$stored_activity = $value['last_activity'];
			if (!is_null($stored_activity)) {
				$user_last_activity = new DateTime($stored_activity);
				$current_time = new DateTime("now");

				$interval = $current_time->getTimestamp() - $user_last_activity->getTimestamp();
				$diff = abs(strtotime($value['last_activity']) - strtotime($current_time));

				if ($interval < 1) {
					$user_activity = '<span class="badge badge-success" style="font-size: 15px; font-weight: lighter;">Online</span>';
				} else {
					$user_activity = '<span class="badge badge-success" style="font-size: 15px; font-weight: lighter;">Online</span>';
				}
			} else if (is_null($stored_activity)) {
				$user_activity = '<span style="color:orange">N/A (Refresh)</span>';
			}

			?>
			<div class="grid-container entry <?php if ($value["viewed"] == 'false') { echo 'download'; } ?>">
				<div class="grid-item data" style="color: black !important;"><?php echo $user_activity; ?></div>
				<div class="grid-item status"><?php echo $value['lastname']; ?></div>
ik heb het nu als volgende en bij nieuwe bezoek gaat die inderdaad online


$user_activity = '<span style="color:red">Offline</span>';
            $stored_activity = $value['last_activity'];
            if (!is_null($stored_activity)) {
                $user_last_activity = new DateTime($stored_activity);
                $current_time = new DateTime("now");

                $interval = $current_time->getTimestamp() - $user_last_activity->getTimestamp();
                $diff = abs(strtotime($value['last_activity']) - strtotime($current_time));
                     if ($interval > 300) {
echo var_dump($interval) . "<br>";
echo var_dump($stored_activity) . "<br>";
                    $user_activity = '<span class="badge badge-success" style="background-color: red; font-size: 15px; font-weight: lighter;">offline</span>';
                } else {
echo var_dump($interval) . "<br>";
echo var_dump($stored_activity) . "<br>";
                    $user_activity = '<span class="badge badge-success" style="background-color: green; font-size: 15px; font-weight: lighter;">Online</span>';
                }
            } else if (is_null($stored_activity)) {
                $user_activity = '<span style="color:orange">N/A (Refresh)</span>';
            }

dus naar 5 minuten geen activiteit zou die op offline moeten gaan dus ?
Probeer het! Test het uit!
gaat inderdaad naar 5 minuten geen reactie op offline alleen moet ik handmatig refreshen dan
Ja, er is ook geen mechanisme in die code die het automatisch verandert zonder te refreshen. Anders moet je kijken naar AJAX-requests. Dan kan je op de achtergrond elke paar seconden een aanroep doen naar een PHP-script.
<script>
$(document).ready(function () {
setInterval(function () {
$("#grid-item data").load();
}, 1000);
});
</script>
<div class="grid-item data" style="color: black !important;"><?php echo $user_activity; ?></div>
Dat is een begin waarmee je er misschien voor 10% procent bent.

Maar wij heb je nu geholpen met theorie en de praktijk naar de hele weg naar het uitrekenen van de offline/online status. Ik ga niet aan het handje helpen om het verder uit te bouwen naar AJAX.

Ik zou zeggen: Begin bij hoofdstuk 1 van de tutorials PHP, JavaScript en je komt er wel na een poosje.
Met random copypasten leer je niks.

Ik brei er maar een eind aan. Want de vraag is opgelost!
Straks wordt het een topic die 'Help samen met hendrk jornie een site bouwen' heet, en dat is niet de bedoeling. ;-)

Succes. En als je losse deelvragen hebt, dan mag je gerust een topic starten.

Reageren