Trouvez l'erreur :)

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 : Trouvez l'erreur :)

Re: Trouvez l'erreur :)

par besoin_daide » 08 nov. 2011, 18:12

up :)

Re: Trouvez l'erreur :)

par besoin_daide » 03 nov. 2011, 20:23

je n'ai pas parfaitement compris, je sens que je vais galérer ....moi qui pensait avoir terminé, je comprend pas ou est le problème,
deja il n'y a aucun problème jusque à l'envoi du mail,vu que l'envoi se fait correctement et qu'il y a le bon contenu que les variable $id et la clé du lien d'activation existe,donc je ne vois pas ou est le problème

Re: Trouvez l'erreur :)

par moogli » 03 nov. 2011, 08:28

Aurel80 : parce que l'id ne risque pas d'être modifié par un quelconque problème d'encodage de page ou d'encodage dans l'url dès qu'un malin utilisé un caractère à la con.
À la limite ne passer l'id est possible vu que le "hash" est normalement unique, donc une clef candidate avec laquelle on peux retrouver la personne. Des gens utilisent l'adresse email car si elle est valise y a que l'arobase qui pour être emmerdant et encore je suis même pas certain ;)

Pour le reste globalement si un test échoue il faut tester les variables mise en jeux avant le test ;)
Et remonter dans le code pour voir la ou ça merde !

À tu bien compris ce que fait ton code ?

@+

Re: Trouvez l'erreur :)

par aurel80 » 03 nov. 2011, 06:30

pourquoi tu utilise id,au lieux de login pour activer le compte de l'utilisateur pour rien tu te complique la vie pour rien!

Re: Trouvez l'erreur :)

par besoin_daide » 02 nov. 2011, 20:05

en le mettant en debut de ode,voila ce que ca met:

string(36) "l3brtajc7zm6vpuysn2kx541owi8fe0h9qdg" string(0) "" Erreur ! Votre compte ne peut être activé...

Re: Trouvez l'erreur :)

par besoin_daide » 02 nov. 2011, 19:58

ok mais je met ou ce var duump?en debuut de code?

Re: Trouvez l'erreur :)

par moogli » 02 nov. 2011, 15:10

et si tu pouvais m'expliquer rapidement quand je dois me servir de mysql_real_scape_string,je n'ai pas bien compris,meri

c'est dans la doc, mais bon.

mysql_real_escape_string permet de 'protéger' une donnée que l'on va utiliser dans une requête sql ceci afin d'éviter les injections SQL (la faut demander à google :) ).

le message d'erreur c'est que if($cle == $clebdd) retourne false.

il faut que tu vérifie le contenu de ces deux variables avec var_dump();
var_dump($clef,$clebdd) pour vori ce que cela donne.

ta façon de faire est sujette a des soucis car il est possible de passer a travers tes contrôles et se retrouver avec des erreurs.

@+

Re: Trouvez l'erreur :)

par besoin_daide » 02 nov. 2011, 12:31

et si tu pouvais m'expliquer rapidement quand je dois me servir de mysql_real_scape_string,je n'ai pas bien compris,meri ;)

Re: Trouvez l'erreur :)

par besoin_daide » 02 nov. 2011, 01:31

super merci !je n'ai plus le problème pour ca,bon maintenant, j'ai un autre problème, le message, erreur votre compte ne peut etre activé s'affiche -_-

Re: Trouvez l'erreur :)

par Ryle » 01 nov. 2011, 21:00

Ayé, je suis inscrit et j'ai bien reçu le mail ! Et effectivement, le détail du "quelque chose du genre" était vachement important :)

Voici le lien reçu :

Code : Tout sélectionner

..../confirm.php?id=Resource%20id%20#3&confirm=d37v5o0ntfaplwbgkzmi89rcey2xjqsu6h41
Dans celui-ci tu peux voir que id ne contient pas un identifiant, mais une ressource sql (en fait tu as récupéré le résultat de l'exécution de la requête sans parcourir celui-ci pour en extraire le résultat)

En l'occurrence, ce "Resource id #3" colle dans ton url un "#" qui fait que php considère que l'url est terminée et que tout ce qui suit (donc le 3&confirm=d37...") est une ancre destiné à positionner l'ascenseur du navigateur sur la page générée (bref, un truc qui le concerne pas)

Si tu corriges la récupération de l'id créé, cela devrait résoudre ton problème :
$resultSet = mysql_query("SELECT LAST_INSERT_ID() FROM pdf_membre") or die(mysql_error());
$row = mysql_fetch_row($resultSet);
$id = $row[0];
ou plus simplement :
$id = mysql_insert_id();
Et puisqu'il s'agit d'un nombre, le "str_replace(' ','%20',$id)" ne sera plus utile.

Enfin, concernant ton lien, pour que celui-ci puisse être cliqué dans le mail, il te suffit simplement d'ajouter les balises <a href="..."></a> comme si tu faisais un lien dans une page html :)

Re: Trouvez l'erreur :)

par besoin_daide » 01 nov. 2011, 18:26

non cest quelque chose de copié/collé, je n'arrive pas a faire de lien direct.
Ben ecoute je te laisse voir ca,essaye de t'inscrire dessus:www.anime-jap.fr tu verras ce que ca donne ;)

Re: Trouvez l'erreur :)

par Ryle » 01 nov. 2011, 15:26

Bonne question... faudrait voir l'url qui a véritablement été générée...

Comment ouvres-tu cette url ensuite ? un copier/coller du texte du mail dans ton navigateur ou un clic sur le lien dans le mail ?
Et dans ce dernier cas, quelle est l'url qui apparait dans ton navigateur (et si possible pas à "quelque chose près" :))

Re: Trouvez l'erreur :)

par besoin_daide » 01 nov. 2011, 13:36

et dans ce cas,si il ne reconnait pas "l'attribut"qu' est-ce que je devrais faire?
pourquoi il ne le reconnait pas?alors que la clé est bien dans le lien ?
ca pourrait etre parce que $get ne fonctionne que lorsque un a fait un tableau avec method="get" dans la page precedente?

Re: Trouvez l'erreur :)

par Ryle » 01 nov. 2011, 09:48

Ben je réitère, si tu n'as pas le premier message, c'est que ta variable id est bien trouvée dans l'url. Si tu as le second c'est que confirm ne l'est pas.

Donc soit il n'est pas présent du tout dans l'url, soit ton url est mal constituée et il n'est pas considéré comme un attribut.. ou quelque chose de ce genre ... :?

Re: Trouvez l'erreur :)

par besoin_daide » 31 oct. 2011, 22:59

quelque chose de ce genre