activation d'un compte utilisateur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : activation d'un compte utilisateur

par starkeus » 18 sept. 2006, 14:38

et cette clé aléatoire est stocké dans la db aussi je suppose?
Exactement ;)

par BeRoots » 18 sept. 2006, 14:08

merci, c'etait bien ça ;)

j'essaye de mettre tout cela en place et je revient mettre résolu si tout est ok :)

par sadeq » 18 sept. 2006, 13:44

Il faut initialiser toujours les variables, surtout si elles sont utilisées pour la première fois dans un calcul ou concaténation.
  function randomkeys($length) 
  { 
   $pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
   $key = ""; // <-- ici : initialisation
   for($i=0;$i<$length;$i++) 
   { 
     $key .= $pattern{rand(0, strlen($pattern)-1)};  //<-- taille automatique de pattern
   } 
   return $key; 
  } 

  echo "<b>Clé sur 8 bits:  </b>".randomkeys(8),"<br>"; 
  echo "<b>Clé sur 16 bits: </b>".randomkeys(16),"<br>"; 
  echo "<b>Clé sur 32 bits: </b>".randomkeys(32),"<br>"; 
  echo "<b>Clé sur 64 bits: </b>".randomkeys(64),"<br>"; 

par BeRoots » 18 sept. 2006, 13:28

j'ai essayer de modifier la fonction de clé aléatoire precedente mais j'ai une notice que je n'arrive pas à faire disparaitre :?
Notice:Undefinied variable: key in c:/....... on line 5
j'ai fait ceci:
<?php
$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
for ($i=0;$i<16;$i++)
{
$key .= $pattern{rand(0,35)};
}
echo $key;
?>
pouvez vous m'aider svp :)

par BeRoots » 18 sept. 2006, 12:46

et cette clé aléatoire est stocké dans la db aussi je suppose?

si quelqu'un peut m'expliquer comment la créé?

merci d'avance ;)

[EDIT] j'ai trouver ceci dans la doc et cela devrai faire mon bonheur :)
<?php

  function randomkeys($length)
  {
   $pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
   for($i=0;$i<$length;$i++)
   {
     $key .= $pattern{rand(0,35)};
   }
   return $key;
  }

  echo randomkeys(8),"<br>";
  echo randomkeys(16),"<br>";
  echo randomkeys(32),"<br>";
  echo randomkeys(64),"<br>";

?>

par starkeus » 18 sept. 2006, 09:38

merci Cyrano, je croit que j'ai bien compris le truc :D

pour en revenir à mon cas, je pense que lors de le generation du mail, je vais inserer le pseudo dans l'url du lien pour l'activation. Ensuite, sur ma page d'activation, je vais acceder à ma db membre et modifier le champ activation de ma table pour le mettre à true.
En général on ajoute dans les paramètres une clé qui est générée aléatoirement à l'inscription... sinon on pourrait activer un compte sans même attendre le mail... :)

par BeRoots » 18 sept. 2006, 08:15

merci Cyrano, je croit que j'ai bien compris le truc :D

pour en revenir à mon cas, je pense que lors de le generation du mail, je vais inserer le pseudo dans l'url du lien pour l'activation. Ensuite, sur ma page d'activation, je vais acceder à ma db membre et modifier le champ activation de ma table pour le mettre à true. Comme ça, il ne me restera plus qu'à associer à chaque sessions le pseudo (pour l'identification sur chaque page), ainsi que la variable true du champ d'activation de ma table afin de controler l'acces aux pages reserver aux membres...

je ferai aussi une redirection vers une page d'erreur comme tu me l'a expliqué, au cas ou il y ai un soucis, bien que je voit pas d'où il pourrai venir :-k

en tout cas, encore merci pour ton aide et j'espère que cela servira à d'autres ;)

par Cyrano » 18 sept. 2006, 07:45

Une url paramétrée, comporte au bout des paramètres et leur valeur, par exemple : http://mon.site.com/index.php?param1=va ... m2=valeur2 et ainsi de suite. Dans la page en question, tu récupères chaque paramètre dans la super globale $_GET. Ici, tu récupèreras "valeur1" dans $_GET['param1'] et "valeur2" dans $_GET['param2']

Ce n'est donc pas vraiment difficile, tu vérifie au départ l'existence des paramètres et ensuite tu procèdes aux vérifications avec les valeurs. Exemple sommaire :
<?php
/* Page d'activation */
$param1 = isset($_GET['param1']) ? $_GET['param1'] : "";
$param2 = isset($_GET['param2']) ? $_GET['param2'] : "";

/* Vérification de l'existence des valeurs */
if(!empty($param1) && !empty($param2))
{
    // traitement des valeurs récupérées
}
else
{
    // une ou plusieurs valeur sont absentes, on redirige vers une page d'erreur
    header("Location: erreur.php");
}
?>

par BeRoots » 17 sept. 2006, 23:34

si je comprend bien, il n'y a pas de rapport avec les sessions... :-k

par contre l'interet des sessions sera plus au niveau de l'identification de l'utilisateur ainsi qu'au droit d'acces vers des pages qui lui seront réservées?

sinon, pour en revenir à l'histoire d'url parametrée, je suppose qu'elle sera génerée par le script avec "mixage" du login et du pass par exemple.

mon problème est que pour l'instant, mes urls des pages du site sont "classique" (http://www.adresse/ma_page.php), donc si quelqu'un connait un bon lien ou un tuto pour avoir des urls parametrées. ;)

merci d'avance :)

par Cyrano » 17 sept. 2006, 20:17

Le principe général n'est pas vraiment complexe : lorsque l'internaute s'inscrit, le script va d'une part enregistrer les informations et d'autre part générer un courriel comportant une adresse paramétrée. Cette adresse pointera vers une page d'activation, récupèrera les paramètres de l'url et effectuera les comparaisons nécessaires avec ce qui est dans la base de données puis, si la comparaison est satisfaisante, activera le compte en modifiant un des champs de type booléen.

Si l'internaute a donné une adresse bidon, il ne recevra jamais ce courriel et par conséquent ne pourra pas activer son compte.

activation d'un compte utilisateur

par BeRoots » 17 sept. 2006, 19:52

salut à tous :)

je travail actuellement sur un site qui utilisera les sessions. Celui-ci dispose d'un formulaire d'inscription qui finalise l'inscription par l'envoi d'un mail avec le login et le pass du membre.

j'aimerai aussi activer le compte de utilisateur comme le font la plupart des forums via un lien sur le mail à envoyer :-k

pouver vous m'expliquer la methodologie à suivre pour ce lien activant un compte ;)

je ne voit pas vraiment comment cela fonctionne :?