Cyptage variable

Résolu/Fermé
jalalnet Messages postés 294 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 30 juillet 2023 - 26 oct. 2010 à 15:45
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 26 oct. 2010 à 22:13
Bonjour,
ya une manière pour crypte les donné transit par un URL

<a href="news_rediger.php?billet=<?php echo $donnees['id']; ?>">


j'ai essayé ça

<a href="news_rediger.php?billet=<?php echo crypt($donnees['id']); ?>"> 


mais faut décypté le variable dans la page destinataire pour l'utlilisé,je sais pas comment

4 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
26 oct. 2010 à 20:44
Salut.

urlencode() fonctionne très bien, mais il sert à "échapper" les caractères non-autorisés dans les URL afin d'avoir des URL valides. Donc ton texte ne subira aucune transformation.

crypt() utilise un algorithme de hashage, c'est-à-dire à sens unique.
En d'autres mots, ça ne peut pas être décrypté.

Pour pouvoir crypter et décrypter, il va falloir générer une paire de clés de cryptage (souvent en RSA ou DSA). Pour les utiliser avec PHP, tu pourras utiliser ceci.

Mais ça serait bien que tu nous explique pourquoi tu souhaites crypter les données dans l'URL. Peut-être que tu n'as pas besoin de quelque-chose d'aussi complexe.
1
jalalnet Messages postés 294 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 30 juillet 2023 10
26 oct. 2010 à 21:56
euh juste j'aimerais comprendre le système de validation un compte par email
le lien de validation comporte le passe crypté c pour cela
0
jalalnet Messages postés 294 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 30 juillet 2023 10
26 oct. 2010 à 22:05
autre chose parfois je transmettre un ensemble de variable dans l URL
est je trouve c'est pas pratique que tous les données soit visible dans l'url
0
0
jalalnet Messages postés 294 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 30 juillet 2023 10
26 oct. 2010 à 19:29
ça marche pas
<a href="cible.php?billet=<?php echo urlencode(donnees['id']); ?>">
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
26 oct. 2010 à 22:13
En es-tu sûr que c'est le mot de passe crypté qui est passé ?
C'est peut-être une chaine générée.

Pour la validation, tu peux créer une nouvelle table (activation_keys) contenant ces champs :
- key (TINYTEXT) : Contiendra une chaine générée
- user_id (INT) : Contiendra l'ID du membre à valider

Sur la table des membres, ajoute une colonne "is_valid" (BOOLEAN ou TINYINT limité à 1). Ce champ vaudra 0 ou 1 (true / false)

Lorsqu'un membre s'inscrit, récupère son nouvel identifiant (mysql_insert_id)
Ensuite, génère une chaine : uniqid(md5($_SERVER['REQUEST_TIME']).'_')
Après, ajoute les données dans la table activation_keys :
$sql = 'INSERT INTO activation_keys(key, user_id) VALUES("'.$key.'","'.$userid.'")';


Pour terminer, il faudra envoyer un email contenant ce lien :
http://example.com/validation.php?key={$key}


Sur la page validation.php, il faudra vérifier si la clé est présente dans la table.
Si non, alors tu affiches une erreur.
Si oui, alors tu récupères l'ID de l'utilisation :
$sql = 'SELECT user_id FROM activation_keys WHERE key = "'.$_GET['key'].'"';
(pense à protéger les variables, je fais simple)

Ensuite, mets à jour le champ is_actif de la table des membres :
UPDATE membres SET is_actif = 1 WHERE id = {$user_id}


N'oublie pas de supprimer l'entrée dans validation_keys :
DELETE FROM validation_keys WHERE key = {$_GET['key']}


Pour lutter contre les robots, tu peux ajouter la demande du mot de passe et un captcha.
0