I want to kick(disconnect) specific user(client) in mysql using Laravel.
What I tried:
I make a function in Login Controller to store connection id, ip and dateTime.
public function authenticated(Request $request, $user)
{
$conn = DB::select("show full processlist");
foreach($conn as $con){
$user->connID = $con->Id;
$user->connDate = Carbon::now();
$user->last_login_ip = $con->Host;
$user->update();
}
}
and i create a button and make some Ajax to trigger the button and pass the user id and connection id in controller.
In my controller here is my code.
Public function closeConnection(Request $request, $id){
$userCon = $request->conID;
$user = DB::table('users')
->where('id', $id)
->update([
'connID' => null,
'last_login_ip' => null,
'connDate' => null,
]);
//return $conn;
$conn = DB::select("SELECT concat('KILL ',$userCon,';')");
}
the problem is, connection_id will be change dynamically if the user visit other page or doing something in web, and when i click the close button there's an error prompted "Thread not found or sometimes there's no error but the user is still connected.
What should i want to do?
I want to disconnect(kick) specific user(client) when i clicked the button.
Hope someone have an idea.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire