Formulaire d'inscription : problème de champs personnalisés

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans cette section.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

Formulaire d'inscription : problème de champs personnalisés

Messagepar Miksimus » 27 Juil 2009 à 17:37

Bonjour à tous,

Après des recherches infructueuse sur ce site, je vais finalement poster.

J'ai un problème pour créer un formulaire d'inscription à mon site, sans passer par le forum.

Le formulaire en lui même fonctionne bien mais le problème est que j'ai deux champs "Nom" et "Prénom" (qui sont des champs personnalisé, donc contenu dans profile_fields_data) et ces deux champs coince à la création d'un utilisateur.

voici le user_row que je récupère :
Code: Tout sélectionner
$user_row = array(
         'username'            => $data['username'],
         'user_password'         => phpbb_hash($data['password']),
         'user_email'         => $data['email'],
         'group_id'            => (int) $group_id,
         'user_timezone'         => (float) $config['board_timezone'],
         'user_dst'            => $config['board_dst'],
         'user_lang'            => basename($user->lang_name),
         'user_type'            => USER_INACTIVE,
         'user_actkey'         => '',
         'user_ip'            => $user->ip,
         'user_regdate'         => time(),
         'user_inactive_reason'   => 0,
         'user_inactive_time'   => 0,
	 'pf_nom'            => $data['nom'],
	 'pf_prenom'            => $data['prenom'],
      );


Ensuite j'exécute un user_add :
Code: Tout sélectionner
      $user_id = user_add($user_row, 2);


Et lorsque je clique sur envoyer dans mon formulaire j'obtiens ce message d'erreur:
Code: Tout sélectionner
Erreur générale
SQL ERROR [ mysql4 ]

Unknown column 'pf_nom' in 'field list' [1054]

Une erreur SQL est arrivée en chargeant cette page. Contactez l’administrateur du forum si ce problème persiste.


Quelqu'un pourrait m'aider s'il vous plait !

:)
Miksimus
Posteur néophyte
Posteur néophyte
 
Messages: 6
Enregistré le: 10 Juil 2007 à 12:02

Re: Formulaire d'inscription : problème de champs personnalisés

Messagepar Steph » 27 Juil 2009 à 17:40

Salut, ton erreur fait appel à la table pf_nom ?

Existe-elle dans la base de données ?
Avatar de l’utilisateur
Steph
Administrateur
Administrateur
 
Messages: 19103
Enregistré le: 29 Déc 2008 à 16:48
Localisation: Alsace / Bas-Rhin / France

Re: Formulaire d'inscription : problème de champs personnalisés

Messagepar Morgyanne » 27 Juil 2009 à 20:01

Votre sujet a été déplacé par un membre de l'équipe.
en provenance de : Support phpBB3 ‹ Utilisation

Salut,

Miksimus a écrit:J'ai un problème pour créer un formulaire d'inscription à mon site, sans passer par le forum.

Ne concerne donc pas directement phpBB3, je déplace.

@+
Morgyanne :)
« What a filthy job !
Could be worse.
How ?
Could be rainin'. »

From Young Frankenstein
Avatar de l’utilisateur
Morgyanne
Marvelous girl
Marvelous girl
 
Messages: 32245
Enregistré le: 21 Mar 2005 à 13:28
Localisation: Juste derrière toi...

Re: Formulaire d'inscription : problème de champs personnalisés

Messagepar Miksimus » 28 Juil 2009 à 08:59

désolé de ne pas avoir posté au bon endroit... :oops:

Steph, Mon erreur fait appel à la colonne pf_nom

cette colonne existe dans la table forum_profile_fields_data de ma base de donnée contenant :
user_id
pf_nom
pf_prenom
...
Miksimus
Posteur néophyte
Posteur néophyte
 
Messages: 6
Enregistré le: 10 Juil 2007 à 12:02

Re: Formulaire d'inscription : problème de champs personnalisés

Messagepar sylver35 » 28 Juil 2009 à 16:31

La raison est bien simple, tu a créé les champs pf_nom et pf_prenom dans la table profile_fields_data qui elle ne contient que user_id à l'origine...

Problème: dans ta requête, tu demande de trouver ces champs dans la table users, normal que mysql ne les trouve pas!

Solution: remet la table profile_fields_data dans sont état d'origine et insère tes deux champs personnalisés dans la table users.
sylver35
Dieu des floodeurs
Dieu des floodeurs
 
Messages: 5943
Enregistré le: 26 Fév 2008 à 15:58
Localisation: Bretagne

Re: Formulaire d'inscription : problème de champs personnalisés

Messagepar Miksimus » 29 Juil 2009 à 15:05

OK,

effectivement sylver, tu as raison, c'est dans la table users que j'essayai de trouver les champs pf_nom et pf_prenom. Donc erreur de ma part.

J'ai du coup trouvé la solution, non pas en supprimant les champs pf_nom et pf_prenom de la table profile_fields_data et en les ajoutant à la table users (car dans l'administration du forum, les champs personnalisés sont directement inséré dans profile_fields_data, les laisser me permet donc de pouvoir bien les gérer via cette interface),

Mais en utilisant la fonction submit_cp_field contenue dans functions_profile_fields.php comme suit :

inclusion du fichier php contenant submit_cp_field :
Code: Tout sélectionner
require($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);


utilisation de la fonction :
Code: Tout sélectionner
$cp = new custom_profile();
$error = $cp_data = $cp_error = array();
$cp->submit_cp_field('register', $user->get_iso_lang_id(), $cp_data, $error);


puis suite à la création de $user_row contenant les données récupérée, on rempli $cp_data :
Code: Tout sélectionner
$cp_data = array(
'pf_nom'            => $data['nom'],
'pf_prenom'            => $data['prenom'],
);


et on crée donc l'utilisateur :
Code: Tout sélectionner
$user_id = user_add($user_row, $cp_data);


Voilà :)

Merci en tout cas, car ça ma bien fait avancer !
Miksimus
Posteur néophyte
Posteur néophyte
 
Messages: 6
Enregistré le: 10 Juil 2007 à 12:02


Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Exabot [Bot] et 4 invités