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.
14 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 108 573 860

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

Top 10  Statistiques

Index du forum »»  SFORM »» Insertion champs obligatoires = passoire :-D

Nouveau sujet
 Insertion champs obligatoires = passoire :-D#17426Répondre

4Contributeur(s)
AnonymelactiqueGiamDocdeveloppeur
3 Modérateur(s)
developpeurjpbJireck
lactique lactiqueicon_post
Salut les amigos.
Voial j'me suis mis a Sform forcément, j'ai pas fait dans le grandiose je suis prudent :-D.
Me voila avec un dossier X dans le rep modules contenant un X.php faisant appel au rep X mais qui lui est dans le dossier SFORM.
Ce dernier donc, contient une copie de contact.php et formulaire.php renomés et rectifiés dans les rêgles de l'art.
Jusque la tout va bien.
Formulaires actifs sans problemes (si ce n'est le format du mail reçu, sans lignes, en simple texte n'est pas tres visuel donc, mais ça on s'en chargera ultérieurement)

Et Bibi se lance dans l'aventure du champs obligatoire genre user.php et l'acceptation de la charte sinon refus de soumission.
ET la ya un HIC, ce champs ajouté est une vrai passoire, certes je reçois le mail et je peu savoir si ça a été accepté mais c'est surrment possible de ne rien faire si cette checkbox n'est pas true :-)

Un precedent sujet de l'année derniere ne m'avance pas plus. Désolé Dev.

Une copie du code ? ok
------------------------------------------------------------------
retouche.php (modules/sform/retouche/retouche.php)


global $ModPath, $ModStart;
$sform_path="modules/sform/";
!include!_once($sform_path."sform.php");

global $m;
$m=new form_handler();
//********************
$m->add_form_title("CONTACT"); <<---- la j'ai un doute je laisse contact comme sur le fichier d'origine si je modifie ça chaneg rien de toute façon.
$m->add_form_method("post");
$m->add_form_check("true");
$m->add_mess(" * désigne un champ obligatoire ");
$m->add_submit_value("ok");
$m->add_!url(!"modules.php");
$m->add_field("ModStart","",$ModStart,'hidden',false);
$m->add_field("ModPath","",$ModPath,'hidden',false);

/************************************************/
!include!($sform_path."retouches/formretouches.php");
/************************************************/
// Manage the <form>
switch($ok) {

case 'Soumettre':
if (!$sformret) {
$m->make_response();
$message=$m->aff_response("class=\"LIGNA\"","not_echo","");
global $notify_email;
$message="<html><body>".$message."</body></html>";
send_email($notify_email, $m->title,$message,"","","html");
opentable();
echo "<p align=\"center\">Votre demande est transmise aux administrateurs. Vous recevrez une réponse dans les plus brefs délais</p>";
closetable();
break;
} else {
$ok="";
}

default:
echo $m->print_form("class=\"LIGNA\"");
break;
}
-----------------------------------------------------------------
formretouche.php (modules/sform/retouche/formretouche.php)

$m->add_form_field_size(50);
$m->add_title("<h3>Bordereau de commande - retouches photos.</h3>");
$m->add_field('nom', "Nom / Raison Sociale",$nom,'text',true,150,"","");
$m->add_field('ad1', "Adresse",$ad1,'text',false,150,"","");
$m->add_field('ville', "Ville",$ville,'text',false,150,"","");

$m->add_field('cpt', "Code Postal",$cpt,'text',false,5,"","0-9");
$m->add_extra("<tr><td colspan=2> </td></tr>");
$m->add_field('email', "Adresse mail",$email,'text',true,255,"","email");
$m->add_checkbox('retouches',"J'ai pris connaissance de la nature du service et accepte ses conditions.", "oui", true, false);
$m->add_extra("<tr><td colspan=2> </td></tr>");
$m->add_field('des', "Description de vôtre requete:",$des,'textarea',true,400,10,"","");
$m->add_comment("<center>Ces informations ne seront pas divulgués, vous disposez en outre, d'un droit permanent de modification.");

-------------------------------------------------------------
lactique lactiqueicon_post
il est a noté que les champs obligatoir d'origine réagissent bien ! avec la fenetre alert qui s'affiche. mais pas mon nouveau champs "acceptation checkbox" pourtant directement récupéré du code de user.php.

ya surement un pendant a corriger dans un autre fichier pour prevenir de ce test mais je ne vois pas ou.
developpeur developpeuricon_post
une checkbox ne peut pas être obligatoire en fait. Il faut gérer cela dans le script (comme dans users.php)
lactique lactiqueicon_post
Ok il me reste donc a trouvé ou est le script qui verifie cette chec box alors...
:-D
je promet rien..
Merci Dev
GiamDoc GiamDocicon_post
je te donne une piste : la charte
lactique lactiqueicon_post
Citation : lactique
Et Bibi se lance dans l'aventure du champs obligatoire genre user.php et l'acceptation de la charte sinon refus de soumission.

-------------------------------------------------------------



Raté Giam c'est la premiere chose que j'ai matté :-b
Mais je vais y retourner...
GiamDoc GiamDocicon_post
8-) enlève tes lunettes!
dans user.php

function confirmNewUser($uname, $name, $email, $url, $user_avatar, $user_icq, $user_occ, $user_from, $user_intrest, $user_sig, $user_viewemail, $user_aim, $user_yim, $user_msnm, $pass, $vpass,$user_lnl,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$M1,$M2,$T1,$T2,$B1) {
    global $smilies, $short_user, $minpass, $memberpass;
    $uname=filter_text($uname);
    if ($user_viewemail!=1) {$user_viewemail="0";}
    $stop=userCheck($uname, $email);
    if ($memberpass) {
       if ((isset($pass)) and ("$pass" != "$vpass")) {
          $stop="<p align=\"center\">".translate("Both passwords are different. They need to be identical.")."</p><br />";
       } elseif (strlen($pass) < $minpass) {
          $stop="<p align=\"center\">".translate("Sorry, your password must be at least")." <b>$minpass</b> ".translate("characters long")."</p><br />";
       }
    }
    if (!$stop) {
       !include!("header.php");
       OpenTable();
          !include! ("modules/sform/extend-user/aff_extend-user.php");
          hidden_form();
          global $charte;
          if (!$charte) {
             echo "<p align=\"center\">".translate("You must accept the terms of use of this website")."<br /><br />";
             echo "<input type=\"hidden\" name=\"op\" value=\"only_newuser\"><input class=\"BOUTON_STANDARD\" type=\"submit\" value=\"".translate("Go Back")."\"></p></form>";
          } else {
             echo "<input type=\"hidden\" name=\"op\" value=\"finish\"><input class=\"BOUTON_STANDARD\" type=\"submit\" value=\"".translate("Finish")."\"></form>";
          }
       CloseTable();
       !include!("footer.php");
    } else {
       message_error($stop,"new user");
    }
}



dans modules/sform/extend-user/formulaire.php


// --- CHARTE du SITE
$m->add_checkbox('user_lnl',translate("Register to web site' mailing list"), "1", false, true);
$m->add_checkbox('charte','<a href="static.php?op=charte.html" target="_blank" class="ROUGE">'.translate("You must accept the terms of use of this website").'</a>', "1", false, false);
// --- CHARTE du SITE


lactique lactiqueicon_post
Oui merci les fichiers font pas 3km de long et j'ai 10/10 aux 2 yeux.
Par contre si tu comprends le code de user.php je veux bien un déchryptage..
$charte je sais pas ou il est créer, !$stop non plus alors je comprend pas la condition.

Dans hidden_form() je ne voit pas la gestion de $charte non plus.

GiamDoc GiamDocicon_post
Citation : lactique 

Oui merci les fichiers font pas 3km de long et j'ai 10/10 aux 2 yeux.
Spoiler
Par contre si tu comprends le code de user.php je veux bien un déchryptage..
$charte je sais pas ou il est créer, !$stop non plus alors je comprend pas la condition.

Dans hidden_form() je ne voit pas la gestion de $charte non plus....


 
susceptible :-D
lactique lactiqueicon_post
juste avec toi :-D
GiamDoc GiamDocicon_post
en plus :-P
GiamDoc GiamDocicon_post
Tu peux vérifier si checkbox cochée ou pas comme cela

/*pour tester si la checkbox a été cochée*/
if(isset($_POST['checkbox']))
{
  echo "X";
}
else
{
  echo " ";
}

lactique lactiqueicon_post
Ok Diam ça marche pour le test reste a l'integré de façon stable, je ne comprend pas le code remanié de l'auteur de SFORM et c'est dure donc sans comprendre ou quoi ce decide de remanier soit meme.

Je choppe une belle erreur mysql quand je met mon test tel quel.
ça m'est déja arrivé ça arrive a tous je crois quand on ajoute un hack qui utilise des variables.
Pour mon cas quand je merde dans le code, mes sujets ne sont plus accessibles, à la plave on a un warning mainfile.php not valid mysql result, et la colone "derniere contrib" du forom ets pleine de "ERROR"

Je ne sais donc pas d'ou vient mon erreur mais je réinjecte ma sauvegarde BDD et tout rentre dans l'ordre (apres suppression de mon code php merdeux :-) )
Sans faire gaffe il doit y avoir eu une insertion dans la base qui décale d'autres resultat et npds s'en sort plus. Enfin c'est comme ça que je l'interprette pour le moment.


je continue les tests.
developpeur developpeuricon_post
l'auteur de sform c'ets moi ... et tu analyse correctement ton erreur je dirais ;-)
lactique lactiqueicon_post
:-D
Alors je rectifie
 je ne comprend pas le code remanié de l'auteur "génial" de ce "fabuleux" SFORM



:b

Il me reste a redirigé l'erreur vers le diagnostique d'erreur justement. Soit l'alerte pop up soit le message classique comme pour une mauvaise entrée de mail.

Pour le moment c'est juste: If c'est bon ça affiche "OKOKOKOKOKOKO", If c'est pas bon ça affiche "NONONONONON" en plus sur la page d'apres. Ca réagit donc bien à la checkbox, mai sc'est tout.

Je suis sur module la alors j'ai pas été plus profond, on en reparle plus tard.
Bonne nuit :=!
GiamDoc GiamDocicon_post
Ca réagit donc bien à la checkbox,==> c'est le but dans un formulaire coché / pas coché
lactique lactiqueicon_post
le but c'est que ce soit obligatoire pour achever le formulaire :-D
Ce n'est pas le cas tel quel :-)
GiamDoc GiamDocicon_post
tant que c'est pas coché, c'est retour à la page précédente

global $charte;
          if (!$charte) {
              ;echo "<p align=\"center\">".translate("You must accept the terms of use of this website")."<br /><br />";
              ;echo "<input type=\"hidden\" name=\"op\" value=\"only_newuser\"><input class=\"BOUTON_STANDARD\" type=\"submit\" value=\"".translate("Go Back")."\"></p></form>";
          } else { 
              ;echo "<input type=\"hidden\" name=\"op\" value=\"finish\"><input class=\"BOUTON_STANDARD\" type=\"submit\" value=\"".translate("Finish")."\"></form>";
          }


lactique lactiqueicon_post
Je sais je vois, mais c'est dans user.php ça.
dans mes fichiers retouches.php pour mon formulaire (ou n'importe quel formulaire d'ailleurs ça peut servir a tous) $charte n'existe pas, d'ailleurs en mattant user.php et consor j'ai pas trouvé ou etait créé et modifié cette variable.
Je veux pas copier coller betement.
Laisse moi qques jour la j'ai d'autres chats a foueter 8-)
Anonyme Anonymeicon_post
Citation : GiamDoc 

Tu peux vérifier si checkbox cochée ou pas comme cela

/*pour tester si la checkbox a été cochée*/
if(isset($_POST['checkbox']))
{
  echo "X";
}
else
{
  echo " ";
}