acces membres

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 : acces membres

par iclo » 22 déc. 2007, 15:13

Pour le message d'erreur, il essaie de parcourir le resultat d'une requêtte qui n'a rien renvoyé, probablement par le code du select contenait une erreur. Le problème vient probablement de la ligne 43: il faudrait tester le select en l'affichant dans php et en faisant un copie coller dans phpMyAdmin, pour voir ce que ça donne.

Pour la suite, désolé mais je dois dire que je n'ai pas vraiement compris le reste de tes explications.

par cerbere74 » 21 déc. 2007, 16:32

Tout d'abord merci d'avoir répondu.

J'ai été voir dans ma base et le concepteur du code disait qu'il fallait créer une table membre,W_membre,blacklist

Bon alors lorsqu'on s'inscrit on est bien dans la w_membre,ensuite lorsqu'on click sur le lien on est bien basculé dans la table membre.

Voici les tables demandées par le concepteur du code

[
php]<?php

$db_host="mon serveur sql ";			// DB parameters
$db_user="mon login";
$db_pass="mon passe";
$database="je ne sais pas ce qu'il faut mettre";

mysql_connect($mon_serveur_sql,$mon_login_sql,$mon_pass_sql) or die("Unable to connect to database");
mysql_select_db($blacklist) or die( "Unable to select database");
$er=0;

//****** table blacklist
$query ="CREATE TABLE blackl (
id INT UNSIGNED NOT NULL auto_increment,

email varchar(100) NOT NULL,
IP varchar(15) NOT NULL,
heure INT UNSIGNED NOT NULL,

PRIMARY KEY (id))";

if(mysql_query($query)==false){$er++;echo mysql_error().'<br/>';}
else echo 'Table blackl created<br/>';


//****** table members (validated members)
$query ="CREATE TABLE members (
id INT UNSIGNED NOT NULL auto_increment,

nom varchar(20) NOT NULL,
pass varchar(32) NOT NULL,
email varchar(100) NOT NULL,
IP varchar(15) NOT NULL,
heure INT UNSIGNED NOT NULL,

PRIMARY KEY (id))";

if(mysql_query($query)==false){$er++;echo mysql_error().'<br/>';}
else echo 'Table members created<br/>';


//****** table w_members (non validated members)
$query ="CREATE TABLE w_members (
id INT UNSIGNED NOT NULL auto_increment,

nom varchar(20) NOT NULL,
pass varchar(32) NOT NULL,
email varchar(100) NOT NULL,
heure INT UNSIGNED NOT NULL,
session varchar(32) NOT NULL,
IP varchar(15) NOT NULL,

PRIMARY KEY (id))";

if(mysql_query($query)==false){$er++;echo mysql_error().'<br/>';}
else echo 'Table w_members created<br/>';


//****** closing SQL connection
mysql_close();
if($er==0)echo 'All tables successfully created.';
else echo 'Errors occured&nbsp;: '.$er.' table(s) haven't been created.'
?>
Je vais vous montrer à présent tout les messages que j'ai lors de l'inscription peut-être que cela vous aidera plus à avancer dans mon petit problème.

Après avoir rempli le formulaire, le message suivant s'affiche

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/cerbere74/www/validation.php on line 44
Merci.

voici la partie du code entourant la ligne 44
35:while(false!=($ligne = mysql_fetch_array ($resultat)));
36:
37:if($nom=="" || $pass=="" || $email==""){$er.='Un ou plusieurs champs manquent.<br/>';}				// Fill in all fields, thank you
38:if($pass!=$pass2){$er.='Le mot de passe et la confirmation ne se sont pas accordés..<br/>';}					// The 2 passwords must be the same
39:$resultat = mysql_query("SELECT * FROM members WHERE nom ='".$nom."'"); 
40:if(false!=($ligne = mysql_fetch_array ($resultat))){$er.='Ce nom d\'utilisateur  ('.$nom.') est déjà pris.<br/>';}	// If the login is already taken (confirmed)
41:$resultat = mysql_query("SELECT * FROM w_members WHERE nom ='".$nom."'"); 
42:if(false!=($ligne = mysql_fetch_array ($resultat))){$er.='Ce nom d\'utilisateur  ('.$nom.') est déjà pris.<br/>';}	// If the login is already taken (not yet confirmed)
43:$resultat = mysql_query("SELECT * FROM blackl WHERE email ='".$email."'"); 
44:if(false!=($ligne = mysql_fetch_array ($resultat))){$er.='Votre e-mail ('.$email.') a été mis sur la liste noire. Vous ne recevrez plus d\'e-mails de moi.<br/>';}	// If the e-mail is in the blacklist

Ensuite je recois le mail suivant

To: cerbere <[email protected]>
From: Site <[email protected]>



<html>
<head>
<title>confirmation de compte</title>
</head>
<body>
Bonjour cerbere,<br/><br/>

Vous recevez cet e-mail parce que vous ou quelqu'un d'autre avez utilisé votre adresse pour vous inscrire sur mon site.<br/>
Pour terminer l'inscription veuillez cliquer sur <a href="cerbere74.power-heberg.com?code=8dd242cfcc7fde16929c41917b88caae">ce lien</a>.<br/><br/>

If you didn't sign up on our site, just ignore this message and please accept our apologies.<br/>
You can also choose to blacklist your e-mail so you won't hear from us anymore by following <a href="cerbere74.power-heberg.com?code=8dd242cfcc7fde16929c41917b88caae&BL=1">ce lien</a>.<br/>
Your e-mail was submitted from IP 88.888.888.88 on Fri, 21 Dec 2007 15:59:34 +0100 (server time).<br/><br/>[/php]

Je sais pas si la ligne que j'ai affichée en rouge est très catholique.En tout les cas je ne la comprend pas.Il y a des des lignes que je ne comprend pas non plus dans le mail recu.
Je sais juste que le premier lien est pour valider la demande et le second pour etre mis dans la blacklist

La je suis dans la table W_members

Ensuite je cliques sur le lien dans le mail

et je me retrouves sur la page d'inscription ou au lieu d'avoir le formulaire j'ai la phrase "Merci d'avoir confirmer votre inscription cerbere. Vous êtes maintenant un membre du site."

Puis plus rien

A ce moment la je suis basculé de la table W_members vers la table Members

Je cale a cet endroit la en fait

Merci de votre aide

par iclo » 21 déc. 2007, 11:35

Bonjour,

J'imagine que ton script utilise une base de donnée ?

Si oui, une première étape, serait d'aller y jeter un coup d'oeil(via phpMyAdmin par exemple), pour vérifier qu'un membre est bien enregistré dedans.
Ensuite après avoir utiliser le lien de validation par mail, vérifier dans la base de donnée, qu'il n'est pas spécifier dans un champ que le membre est en attente de validation (genre une colonne "actif" dans la table, qui contiendrait False, non, ou un truc du genre :D)
A partir de là, ça devrait donner une idée de qu'est ce qui foire, et donc d'où chercher dans le code.

a+

acces membres

par cerbere74 » 20 déc. 2007, 18:29

Bonjour,

Je suis tous nouveau sur le forum et surtout très débutant dans le php.

J'aimerais faire un accès membre sur mon site exactement comme la première partie de ce site.

Soit:
login - pass - confirm pass - mail

J'ai trouvé un code déjà tout fait sur un site et j'y ai mis mes données.

L'inscription ce passe bien,je reçois bien un mail avec un lien mais lorsque je clique dessus je suis rediriger vers la page d'inscription ou un message s'affiche me disant que je suis à présent un membre du site et puis plus rien.

Je ne suis pas redirigé vers mon site.

Je suppose que je dois montrer le chemin(index1.htm) mais je ne sais pas ou.

De plus une fois inscrit lorsqu'on reclique pour entrer dans le site il montre de nouveau la page d'inscription.
Je pensais que c'étais juste pour ce logger...mais non il me dit que ce pseudo existe déja.

Y a t'il quelqu'un qui s'aurais m'aider ?

Merci d'avance

PS:je ne sais pas quelle partie je dois afficher donc j'attends que l'on m'indique la partie qu'on veux voir afin de ne pas tout afficher et polluer Merci