Enregistrement de 2 variables dans un cookie

Signaler
Messages postés
1
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
5 novembre 2010
-
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour

Je suis débutant en php et j'ai un probleme au niveau des cookies.
En effet je voudrais via mon formulaire enregistrer dans le cookie le login et le mot de passe mais je n'arrive pas à enregistrer mes 2 variables.
Voici mon code si vous pouvez m'aider.
Merci d'avance

Index.php
<html>
<head>
<title>Index du site</title>


<?
// on teste la déclaration de notre cookie
if (isset($_COOKIE['pseudo'])) {
echo 'Bonjour '.$_COOKIE['pseudo'].' '.$_COOKIE['mdp'].'!';
}
else {
echo 'Notre cookie n\'est pas déclaré.';

// si le cookie n'existe pas, on affiche un formulaire permettant au visiteur de saisir son nom
echo '<form action="traitement.php" method="post">';
echo 'Votre nom : 
';
echo 'Mot de passe : 
';
echo '';
}
?>


</html>


traitement.php
<?php
If (isset($_POST['nom']) + ($_POST['mdp'])) {
// on définit une durée de vie de notre cookie (en secondes), donc un an dans notre cas
$temps = 365*24*3600;

// on envoie un cookie de nom pseudo portant la valeur de la variable $nom, c'est-à-dire la valeur qu'a saisi la personne qui a rempli le formulaire
setcookie ("pseudo", $_POST['nom'], time() + $temps);
setcookie ("mdp", $_POST['mot'], time() + $temps);

// fonction nous permettant de faire des redirections
function redirection($url){
if (headers_sent()){
print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
}
else {
header("Location:$url");
}
}

// on effectue une redirection vers la page d'accueil
redirection ('index.php');
}
else {
echo 'La variable du formulaire n\'est pas déclarée.';
}
?>

1 réponse

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
Salut,

Tout d'abord, sache qu'il ne faut jamais stocker dans un cookie un mot de passe en clair. C'est mal. Déjà, le stocker sur le client c'est pas top, mais en clair... Au pire, il faut le chiffrer avec un algorithme de hash (md5 ou plutôt au minimum sha1), tu peux aussi le chiffrer symétriquement avec mcrypt, mais il faut être très pointilleux sur la question.

Bon sinon, tu n'utilises pas la bonne variable, donc ça peut pas marcher. Ta variable post est $_POST['mdp'] et toi tu veux absolument utiliser $_POST['mot'].

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)