Page 1 sur 1

Un message en fonction de....

Posté : 18 déc. 2006, 22:18
par Brice83
Bonjour,

J'ai créer un espace membre avec activation du compte par mail !

Tout se passe correctement,le membre clic sur le lien,arrive sur une page qui contient l'update et son compte est activer !

Par contre,si il clic plusieurs fois sur ce lien,il arrive sur la meme page mais sans update (logique puisque son compte est déja activer) !

De meme,les non-membres qui tape l'adresse de cette page d'activation dans la barre d'adresse peuvent également y accéder !

Comment puis-je faire pour bloquer cette page aux non-membres (en écrivant par exemple "Vous n'avez pas accès à cette page" ) ? Et également écrire "Votre compte à déja été activer" au membre qui a déja validé son compte (dans le cas ou il y retournerait ! )

Je sait que l'on doit rajouter un bou de code dans ce code mais je ne sait pas lequel :
<?php 
$sql_serveur = "unserveur"; 
$sql_base = "unebase"; 
$sql_login = "unlogin"; 
$sql_password = "unpasse"; 
@mysql_connect($sql_serveur, $sql_login, $sql_password) or die("Sql Error"); 
@mysql_select_db($sql_base);
$sql="UPDATE membres SET ok=1 WHERE session= '$session'";
mysql_query($sql) or die(mysql_error());
mysql_close (); 
?>
C'est le code pour l'activation du compte !

Quelqu'un pourrait m'aider ?

Merci

Posté : 18 déc. 2006, 22:25
par iclo
Perso, j'ai du faire un truc du genre, j'avais ajouter un identifiant unique (un nombre aléatoire par exemple) stocker dans la base de donnée et ajouté dans le lien de validation envoyé par mail.
Lors de la validation tu testes pour voir si la valeur reçue en paramêtre est identique à celle stockée, et si oui, tu valides, sinon tu envois balader l'utilisateur.

Posté : 18 déc. 2006, 22:42
par Brice83
ouff,un peu trop complexe pour moi pour le moment :?

A la rigueur,si un non membre accede a cette page,ce n'est pas bien grave car l'update est uniquement effectuer avec la variable de session !

Par contre,j'aimerais bien un truc du genre pour le membre !

Exemple : Le membre clic sur le lien de validation et arrive sur la page valideok.php qui lui dit "Votre compte à bien été activer" !

Si il clique a nouveau sur le lien,il arrive encore sur la meme page et cela lui dit "Votre compte à déja été activer" !

Et si il n'y a aucune variable de session dans le lien ou l'url,on redirige !

Avec un if et else , cela doit être possible je pense ?

Seul problème au tableau,la variable de session change a chaque reconnexion du membre,il faudrait donc que j'utilise plutôt une variable qui ne change jamais et est propre a chaque membre comme un numéro $id !

Help please :wink:

Posté : 18 déc. 2006, 23:23
par iclo
Je n'ai pas bien compris: le membre doit déja avoir des variables de sessions pour pouvoir valider son inscription ? Mais que se passe-t-il si le membre valide son inscription, plus tard, après avoir fermer son naviguateur ? il n'aura plus de sessions en cours.

La solution que je t'ai proposé prédédement est assez simple, et demande juste d'insérer une valeur supplémentaire quand une enregistre les infos du membres, et j'ajouter une clause dans le where de l'update (comme on l'a fait pour le champ valide précédement)

Posté : 18 déc. 2006, 23:25
par winni
Redemande le mot de passe pour la validation :-)

Posté : 18 déc. 2006, 23:27
par iclo
Redemande le mot de passe pour la validation :-)
C'est aussi une solution