Connexion persisante

Eléphant du PHP | 372 Messages

30 déc. 2014, 19:26

Salut,
Je vous contacte aujourd'hui afin d'être aiguillé pour faire un cookie pour une connexion persistante.
un formulaire avec une case a cocher se souvenir de moi

mon code actuel, enfin l'essentiel



// Vérification de la validité des informations

   
$erreurs = array();   //tableau contenant des messages d'erreurs

if(!empty($_POST)) {//soumission du formulaire
  

//vérification du pseudo
if( empty( $_POST['company'] ) ){
  $erreurs['company'] = 'Renseigner un pseudo';
}

//vérification du mot de passe
if( empty( $_POST['password'] ) ){
  $erreurs['password'] = "le mot de passe est requis";
}

//Cookie pour le ... se souvenir de moi


	//le tableau d'erreurs est vide alors on insère les données
	if(count($erreurs) == 0) {

		// Hachage du mot de passe
		$password = sha1($_POST['password']);

//insertion des données
//pré-condition : le tableau $tabErreurs doit être vide c-a-d ne contient pas de message d'erreur
if( count( $tabErreurs ) == 0){
  $company = $_POST['company'];
  $password_hache = sha1($_POST['password']);
  $message = authentificationPro( $company, $password_hache ); //appel de la fonction d'authentification
	} 
}

}
<input type="checkbox" name="remember">Se souvenir de moi  

Mammouth du PHP | 1339 Messages

30 déc. 2014, 19:52

Creer un cookie c'est pas très dur ...
Ce qui est dur c'est de vérifie si le cookie existe et de lancer automatiquement la fonction authentificationPro() si le mec a un cookie et qu'il n'est pas encore identifié.

Donc je te conseille dans la fonction authentificationPro() de mettre un truc genre
if(!empty($_POST['remember'])) setcookie('identification', serialize(array($company, $password_hache)), mktime(0, 0, 0, date('m'), date('d'), date('Y')+1), '/');
Voilà la première étape pour creer un cookie valable 1 an.

Après tu lances le truc donc si il y a le cookie mais pa de session
if(empty($_SESSION['membre']) && !empty($_COOKIE['identification'])) /* ICI CE QUE TU VEUX */
Bon sinon tu me fais un message privé et on se fait un TeamViewer