Gebruiker automatisch redirecten na uitloggen...
We hebben een systeem met collega's waarbij de administratoren een gebruiker kunnen uitloggen, dit werkt ook prima, enkel werkt het uitloggen pas nadat een collega dan weer op een link klikt..
Hoe kunnen we dit doormiddel van (polling?) of iets het zo maken dat wanneer een administrator klikt op uitloggen dat de gebruiker per direct doorgestuurd gaat worden richting login pagina?
Op dit moment halen we de online status van gebruiker op, wanneer deze op nee staat gaat gebruiker naar login pagina, dit is echter alleen wanneer gebruiker klikt naar iets anders, we zouden dit dus graag willen dat op moment wij klikken op uitloggen dat gebruiker ook echt een tel later bijvoorbeeld weg is?
Alvast bedankt!
Hoe sla je nu op of iemand ingelogd is? Sessies? Cookies?
Nee, het gaat echt via de database, daar hebben we een tabel of gebruiker online is, wanneer status nee is dan gaat hij bij het klikken naar een andere pagina uitgelogd worden.
Je moet ook bij de gebruiker zelf moeten registreren dat die ingelogd is. Want hoe identificeer je nu een gebruiker? Hopelijk niet op IP-adres.
Om de x seconden een Ajax-request uitvoeren. Als de gebruiker is uitgelogd door een administrator dan de Session clearen en doorsturen naar de loginpagina.
Wanneer wij dan een gebruiker uitloggen komt zijn/haar online status op nee te staan.
Vervolgens halen we dit momenteel met een query uit de database dat wanneer die gebruiker de online status nee heeft dat diegene uitgelogd moet worden, dit zal gebruiker pas merken nadat die klikt op een andere pagina.
Dit willen wij dus graag zo hebben dat dit live zal gebeuren, wij klikken op uitloggen bij gebruiker en gebruiker moet gelijk weg zijn zonder te hoeven klikken
Maar hoe blijft een gebruiker dan ingelogd? Je hebt minimaal een sessie of cookie nodig.
Wanneer online status ja is mag gebruiker blijven, wanneer deze nee is zal gebruiker uitgelogd worden... Dit is ook wat er wel werkt alleen wanneer gebruiker niet ergens anders heen klikt krijgt gebruiker de melding niet te zien (is dan wel al uitgelogd), dit zal pas komen na de klik.
Waar het nu dus omgaat... hoe kan ik dit inderdaad met een request doen per aantal seconden...
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$sql = "SELECT online_status from gebruikers where gebruikersnaam='".$_SESSION['username']."'";
$result= $db->query($sql);
$row = $result->fetch_object();
if($row->online_status == "nee"){
header("Location: login.php?pagina=uitgelogd");
}
$result= $db->query($sql);
$row = $result->fetch_object();
if($row->online_status == "nee"){
header("Location: login.php?pagina=uitgelogd");
}
Dit is wat er nu momenteel gaande is dus wat ik al aangaf, na een klik merken ze dit pas..
Dit wil ik dus graag 'live' zien, dat wij klikken op uitloggen, gebruiker vliegt dan gelijk na inlogpagina
Gewijzigd op 02/09/2022 16:12:37 door - Ariën -
En dat is juist wat ik vraag hoe :)
https://www.w3schools.com/js/js_ajax_http_send.asp
En met setInterval() voer je dit elke xx seconde uit.
Of je kan met sockets werken.
Gewijzigd op 02/09/2022 16:22:49 door - Ariën -
Maar wat ik begrijp is dat pas na elke klik?
Even als tip ...
Ik dacht dat jouw "ja" en "nee" puur als voorbeeld dienden. Bij programmeren gebruiken we normaliter de Engelse taal en voor ja/nee situaties gebruiken we een BOOLEAN true of false.
In een databas-omgeving gebruiken we dan als equivalent een TINYINT met waarde 0 (staat voor false) of 1 (staat voor true).
Toevoeging op 02/09/2022 16:28:09:
Ray Mond op 02/09/2022 16:27:06:
Maar wat ik begrijp is dat pas na elke klik?
Nee niet na een klik. Die code loopt continu en checkt elke x seconden de database.
In de database zelf gebruik ik inderdaad no en yes.. klopt :)
Ray Mond op 02/09/2022 16:28:47:
In de database zelf gebruik ik inderdaad no en yes.. klopt :)
Oef...
Totdat er een update plaatsvindt met No en Yes. Gebruik liever gewoon 0 en 1. Dat zijn de nee en ja in de IT-wereld.
Heb je misschien een werkende voorbeeld voor het pollen van in Ajax? :)
https://gist.github.com/hofmannsven/9964415
Wel jQuery en geen vanilla JavaScript. Maar het valt om te bouwen.
Wel jQuery en geen vanilla JavaScript. Maar het valt om te bouwen.
Gewijzigd op 02/09/2022 16:36:31 door - Ariën -
Ben ik nu heel 'dom' als ik vraag/zeg dat dit niet werkt met mijn deel of?
Waarom denk je dat?
Nou het werkt hier natuurlijk met json zo te zien, hoe ga ik daar dan mijn deel in verwerken? Of is het nu een kwestie van dit om zien te bouwen naar PHP toe?