logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
45 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 109 413 333

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» Modification formulaire enregistrement utilisateur

Modification formulaire enregistrement utilisateur#10612

4Contributeur(s)
PhilGuenTribal-DolphindeveloppeurTito
3 Modérateur(s)
developpeurjpbJireck
PhilGuen PhilGuenicon_post
Bonjour à tous,

J'ai besoin de modifier le formulaire d'enregistrement d'un nouvel utilisateur de manière à ce qu'il soit dans l'obligation de choisir son appartenance à un groupe au moment de son inscription.

J'ai donc fait ceci :

dans formulaire. php - ligne 22 (juste avant //---AVATAR)

/**************************/
/* Ajout pour groupe */
/*************************/
$tmp=array(
"Cycliste"=>array('en'=>"Cycliste", 'checked'=>true),
"Marcheur"=>array('en'=>"Marcheur", 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>"Les deux", 'checked'=>false)
);
$m->add_radio('user_group', 'Votre catégorie *', $tmp,false);
/******************/
/* Fin de l'ajout */
/******************/

:=! le choix s'affiche bien

dans aff_formulaire.php - ligne 22 (juste avant //---AVATAR)

/**************************/
/* Ajout pour groupe */
/*************************/
$m->add_field('user_group', 'Votre catégorie',"$tmp",'text',false,25,"","");
/********************/
/* Fin de l'ajout */
/*******************/

:=! L'option choisie est bien affichée

dans user.php : function finishNew User (après la ligne 205 -
juste avant les instructions d'ajout dans users_status

/**************************/
/* Ajout pour groupe */
/*************************/
$user_group="10,20";
switch ($tmp) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}
/***************/
/* Fin d'ajout */
/**************/

if (($AutoRegUser==1) or (!isset($AutoRegUser))) {
$result = mysql_query("insert into users_status values ('$usr_id','0','$attach','0','1','1','$user_group')");
} else {
$result = mysql_query("insert into users_status values ('$usr_id','0','$attach','0','1','0','$user_group')");
}

:paf La ca va plus car ca enregistre toujours "10,20", donc j'ai perdu la valeur de $tmp :-?

J'ai essayé en modifiant les fonctions et appels en ajoutant $tmp comme argument ... mais bernique.

Doit y avoir quelque chose que j'ai pas compris ou mal fait.

Merci de votre aide car j'ai vraiment besoin de cette modif.

Bon AM à tous.

Philippe
Tribal-Dolphin Tribal-Dolphinicon_post
Faut aussi ajouter ta variable dans hidden_form.
si tu ne le fait pas, la variable se perds en chemin.
PhilGuen PhilGuenicon_post
J'ai donc rajouté après la ligne 125



mais :-| :-| :-|

c'est toujours pas bon

Merci de votre aide
PhilGuen PhilGuenicon_post
Dev Tito, GiamDoc, tout le monde

help me ...............

j'aurais beaucoup besoin de cette modif et je ne m'en sors pas. Je ne connais pas assez le fonctionnement de NPDS

merci d'avance

Amitiés

Philippe
Tito Titoicon_post
Il ne faudrait pas plutot mettre des IF ???
Avec des IF [séléctionné] case [numéro] ?

Enfin, je ne suis pas un boss en PHP et je n'ai pas encore essayé le MySQL... :=!
developpeur developpeuricon_post
**************************/
/* Ajout pour groupe */
/*************************/
$user_group="10,20"; <<======= cette ligne de sert à quoi ?????
switch ($tmp) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}
/***************/
/* Fin d'ajout */
/**************/

A suivre
PhilGuen PhilGuenicon_post
Merci DEV, j'ai grand besoin de ton aide.

3 choix possible :
cycliste = groupe 10
marcheur = groupe 20
les deux = groupe 10,20

donc :

$user_group="10,20" (valeur par défaut)

puis je change $user_group en fonction de $tmp

si $tmp="Cycliste" =>$user_group="10"
si $tmp="Marcheur" => $user_group="20"

donc $user_group reste "10,20" si on n'a choisi ni Cycliste ni Marcheur

En fait ca remplace un troisième case $tmp="Cycliste & Marcheur" =>$user_group="10,20" ou un else si j'employais une structure if ... elseif ... else

Bon, c'est pas très académique, mais ca permet de fonctionner en cas d'erreur dans ma modif. (ce qui est bien le cas en ce moment)

D'ailleur, pour être cohérant, il aurait fallu que dans formulaire.php je fasse plutôt

/**************************/
/* Ajout pour groupe */
/*************************/
$tmp=array(
"Cycliste"=>array('en'=>"Cycliste", 'checked'=>false),
"Marcheur"=>array('en'=>"Marcheur", 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>"Les deux", 'checked'=>true);
$m->add_radio('user_group', 'Votre catégorie *', $tmp,false);

/******************/
/* Fin de l'ajout */
/******************/


Je vais essayer de modifier pour une structure en "if elseif else", mais il n'y a pas de raison que ca fonctionne mieux.

Amicalement

Philippe

[ Message édité par : PhilGuen : 19-03-2004 06:02 ]

[ Message édité par : PhilGuen : 19-03-2004 06:05 ]
Tribal-Dolphin Tribal-Dolphinicon_post
essaye comme ça :

remplace dans ton sfrom $tmp par $tmp_groupes. (car $tmp est souvent utiliser ailleurs et ça peut effacer ta valeur)

**************************/
/* Ajout pour groupe */
/*************************/

if ($tmp_groupes = "Cycliste") { $user_group="10"; }
elseif ($tmp_groupes = "Marcheur") { $user_group="20"; }
else { $user_group="10,20"; }

/***************/
/* Fin d'ajout */
/**************/

Il serait même judicieux de mettre la valeur direct dans le form

$tmp=array(
"Cycliste"=>array('en'=>'10', 'checked'=>true),
"Marcheur"=>array('en'=>'20', 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>'10,20', 'checked'=>false)
);

[ Message édité par : Tribal-Dolphin : 19-03-2004 08:42 ]
PhilGuen PhilGuenicon_post
Je suis désolé Tribal, je ne comprends pas (boulet du jour?)

Je n'ai pas touché à sform.php

j'ai modifié formulaire.php, aff_formulaire.php et user.php

dans user.php,j'ai modifié le test avant l'enregistrement et j'ai remplacé

$user_group="10,20";
switch ($tmp_group) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}

par

if ($tmp_group="Cycliste"){
$user_group='10';
}elseif ($tmp_group="Marcheur"){
$user_group='20';
}else{
$user_group='10,20'

Pour moi ca devrait être la même chose, mais dans le 1° cas $user_group enregistre toujours "10,20" et dans le 2° cas toujours "10".

:paf :paf :paf :paf :paf je n'y comprends plus rien.

Tribal-Dolphin Tribal-Dolphinicon_post
Quand je je parle de SFROM c'est pas le fichier sform.php mais le formulaire créer grace à SFORM, dans ton cas : formulaire.php, aff_formulaire.php

As tu fait la modif donné dans le formulaire ?
(
$tmp=array(
"Cycliste"=>array('en'=>'10', 'checked'=>true),
"Marcheur"=>array('en'=>'20', 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>'10,20', 'checked'=>false)
);
)
PhilGuen PhilGuenicon_post
Oui et j'ai remplacé $tmp par $tmp_group.

Mais il y a qq chose de fondamental que je ne pige pas :

pour moi

$user_group="10,20";
switch ($tmp_group) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}

ca doit faire pareil que

if ($tmp_group="Cycliste"){
$user_group='10';
}elseif ($tmp_group="Marcheur"){
$user_group='20';
}else{
$user_group='10,20'
}

:paf et ben non :paf

le 1) attribue toujours '10,20' à $user_group et le 2) toujours '10', quelque soit le choix qui a été fait dans le formulaire.

Je vais essayer de mettre la condition + haut (dans aff_formulaire).

Tribal-Dolphin Tribal-Dolphinicon_post
remplace dans ton form :

$tmp=array(
"Cycliste"=>array('en'=>'10', 'checked'=>true),
"Marcheur"=>array('en'=>'20', 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>'10,20', 'checked'=>false)
);

Et dans user.php

$user_group = $tmp_group

Et voilà
PhilGuen PhilGuenicon_post
Je vais essayer comme ca ... mais je n'aurais le tmps que demain

Je vous tiens au courant :#

Merci A tous de votre aide

Amitiés

Philippe
PhilGuen PhilGuenicon_post
Bon ... va ne marche pas !!!! :paf :paf :paf :paf

Comme dirait Guy Roux, on va reprendre les fondementaux !. :-D

1°) dans formulaire.php on a, pour enregistrer une url, ligne 21

$m->add_field('url', translate("Your HomePage"),$url,'text',false,100,"","")

je rajoute une autre ligne sur le même modèle pour enregister une catégorie.

$m->add_field('user_group', 'Votre catégorie',$tmp_group,'text',true,10,"","");

A la saisie, je peux donc correctement saisir un nom de catégorie. C'est ok. :=!

----------

2°) dans aff_formulaire.php, ligne 20, j'ai

$m->add_field('url', translate("Your HomePage"),"$url",'text',false,100,"","");

pour vérification des données "url".

Je rajoute pour vérifier les données "Catégorie"

$m->add_field('user_group', 'Votre catégorie',"$tmp_group",'text',true,10,"","");

L'affichage de l'écran de vérification des données m'affiche bien le nom entré
dans le champ "Votre catégorie". :=!

:| :| :| :| :| :| :| :| :|
MAIS !!!!!!!!!!!!!!
:-? :-? :-? :-? :-? :-? :-?

---------
3°) dans aff_formulaire, tout de suite après les lignes précédentes j'ai ajouté

echo "groupe : ".$tmp_group;
echo "
URL : ".$url;

pour tester les valeurs des variables.

et la, j'ai bien une valeur pour $url mais je n'ai plus rien pour $tmp_group

J'ai donc déjà perdu $tmp_group entre la saisie (formulaire.php) et l'affichage de confirmation (aff_formulaire.php). :-| :-|

Qu'est-ce que j'ai loupé? Un global $tmp_group quelque part? :-?

Pour info, suivant les conseils de Tribal, j'ai ajouté dans hidden_form (en + d'un global $tmp_group)



Je pense que je ne suis pas le premier à avoir essayé de modifier le formuliare d'enregistrement.

Je suis donc preneur de tout conseil

Merci d'avance

Amitiés

Philippe


[ Message édité par : PhilGuen : 19-03-2004 21:02 ]

[ Message édité par : PhilGuen : 19-03-2004 21:03 ]

[ Message édité par : PhilGuen : 19-03-2004 21:04 ]
PhilGuen PhilGuenicon_post
Pour infos j'ai essayé de "passer" par $C8 ... et mm blème ... je perds le contenu de $C8 dès l'affichage de l'écran de vérification des données (aff_formulaire.php).

mdr :-| :-| :-| :-| j'y comprends plus rien !!!!!!!!!!!!!!! :paf :paf :paf :paf :paf
developpeur developpeuricon_post
c'ets donc que ton $tmp_group ne traverse pas les fonctions de users.php ! / en le rajoutant dans les params des fonctions (attention /ya la fonction et son appel)
PhilGuen PhilGuenicon_post
Bien d'accord, dev ... c'est pourquoir j'ai essayé de passer par $C8

sans plus de résultat.

:-| :paf :|
developpeur developpeuricon_post
regarde comment NPDS fait .... / que le champ s'appel C4, C8 ou C23456 c'est toujours la même chose :-)