Problème connexion avec cookies
- Accueil
- Forum
- Programmation
- PHP
- Problème connexion avec cookies
Blast0Kd Le 30 août 2016 à 10:45 (Édité le 25 janvier 2019 à 17:52)
J'ai utilisé un système de reconnexion par cookie (différent de celui de primfx) et quelque fois, je crois que c'est quand j'upload des fichiers sur mon site, le cookie contenant toute les informations se retrouve avec un contenu delete.
Voici le code lors de la connexion :
$remember_token = str_random(250);
$db->prepare('UPDATE users SET remember_token = ? WHERE id = ?')->execute([$remember_token, $user->id]);
setcookie('remember', $user->id . '==' . $remember_token . sha1($user->id . 'ratonlaveurs'), time() + 60 * 60 * 24 * 360, '/');
La fonction de reconnexion :
function reconnect_from_cookie(){
if(session_status() == PHP_SESSION_NONE){
session_start();
}
if(isset($_COOKIE['remember'])) ){
require_once 'db.php';
if(!isset($db)){
global $db;
}
$remember_token = $_COOKIE['remember'];
$parts = explode('==', $remember_token);
$user_id = $parts[0];
$req = $db->prepare('SELECT * FROM users WHERE id = ?');
$req->execute([$user_id]);
$user = $req->fetch();
if($user){
$expected = $user_id . '==' . $user->remember_token . sha1($user_id . 'ratonlaveurs');
if($expected == $remember_token){
$_SESSION['auth'] = $user;
setcookie('remember', $remember_token, time() + 60 * 60 * 24 * 360, '/');
} else{
setcookie('remember', NULL, -1, '/');
}
}else{
setcookie('remember', NULL, -1, '/');
}
}
}
En aucun cas je n'ai fait ces deux code car j'avais a flemme 😀.
Je pense que ce problème n'est pas récurrent car j'ai fait des recherche et je n'ai pas trouvé, merci d'avance 😉
TheOldNoob Le 30 août 2016 à 23:42 (Édité le 1 janvier 1970 à 01:00)
En réalité, ça fait 3 fois que je reviens sur ton problème et que je reli ton code, mais j'arrive pas as comprendre quel est ton problème et ou tu veux en venir avec ton code :(
TheFlameflo Le 31 août 2016 à 03:41 (Édité le 1 janvier 1970 à 01:00)
J'ai remarqué quelque chose de bizarre (enfin, je crois).
Si tu n'as pas set le fetch mode sur FETCH_OBJ. $user->id, $user->remember_token, etc. Ne fonctionneront pas.
Bonne chance ! 😀
Blast0Kd Le 3 septembre 2016 à 12:11 (Édité le 1 janvier 1970 à 01:00)
Exemple : vous vous connecter à un cybercafé et vous oublié de vous déconnecter, donc n'importe qui peut avoir accès à vos informations personnels etc... Et bien il suffit simplement de se connecter sur un autre poste pour supprime cette session.
Ingénieux non ? 😉
Meci de votre aide à vous deux