Page 1 sur 3

Formulaire et remplissage base de donnés infos recueillies

Posté : 03 juil. 2005, 14:02
par buldof
Bonjour,

Ce Week-end, je me lance. J'ai besoin de faire une petite enquête à l'aide d'un formulaire.
Le Formulaire est fait, il est visible ici.
Mais maintenant je suis coincé !!
1) Comment puis-je recueillir les infos qui me seront transmises pour les insérer sur la base de données MySql prévue à cet effet ????
2) Comment lier la base de données MySql pour que les éléments entre dedans ?
3) Enfin, puis-je avoir une base de données sur le Mac et le remplissage du formulaire sur internet (site web dédié) ou dois-je tout avoir sur internet ou tout sur le Mac ?
Comme vous pouvez le constater, je suis un archi-débutant, alors d'avance merci de votre aide.
Buldof

Posté : 03 juil. 2005, 14:25
par Cyrano
Salut,
première chose, tout doit être en ligne, donc à priori sur un serveur externe parce que si tu fais ça sur ta machine, lorsque tu étains la machine, pas de chance pour les internautes, là, c'est la mire avec "Veuillez nous excuser pour cet interruption de nos programmes, un incident technique complètement dépendant de notre volonté empèche la diffusion normale de cette page" :langue:

Ensuite, il te faut donc récupérer et valider les données du formulaire puis, établir une connexion avec le serveur de base de données, cronstruire la requête SQL d'insertion et l'exécuter. Enfin, tester la réussite de l'insertion et passer à la suite.

Pour la récupération et la validation, si tu débutes, voici un script complet de validation commenté pour pouvoir bien suivre les étapes, à télécharger ici

Après, il reste la partie SQL, il y a des tutos sur le site de PHPFrance, jette un coup d'oeil et si tu as une difficulté technique sur un point précis, reviens poser des questions :)

Posté : 03 juil. 2005, 14:37
par buldof
Merci de ton aide.
Il est vrai qu'au début, ces processus sont un peu obscures…
Je vais donc me précipiter sur le lien fourni pour la récupération et le validation des données que tu me donnes.
J'espère pouvoir m'en sortir. :?
Merci encore :)

Posté : 03 juil. 2005, 14:58
par buldof
Merci pour ton lien mais losque je décompresse l'archive, je me trouve avec 1 fichier "lisez-moi_form.txt" + 1 autre celui qui serait le but de la manœuvre "form.php".
Quand je double clique sur ce dernier, Safari ouvre une page blanche et …c'est tout ! :cry:
Que devrait-il se produire ?
Merci

Posté : 03 juil. 2005, 15:32
par buldof
Bon, d'accord, j'ai parlé trop vite…après avoir ouvert le fichier "form.php" avec NVU, c'est déjà beaucoup mieux !
A bientôt très certainement car vu le code, je vais certainement avor besoin de coupsssss de main… :?
Buldof

Posté : 04 juil. 2005, 11:01
par buldof
Voilà, j'ai fait ce que j'ai pu mais il me reste encore pas mal de chose (c'est un euphémisme !!!) à faire, mais là je commence à être un peu perdu, voire abruti, et j'ai juste besoin que tu me dises si tout va bien pour l'instant et aussi, par quoi devrais-je continuer.
Bien sûr, le formulaire à été amélioré dans sa forme ici (merci à ta doc "form.php" !) mais même en ayant un raisonnement basé exclusivement sur la logique, il me manque la compréhension de base des processus PHP (de programmation dans l'ensemble !) et alors quelques questions se posent.
1) Comme je n'ai pas besoin d'une réponse obligatoire pour toutes les cases à cocher (chekbox et radio) dois-je répéter pour chaque case à cocher la vérification et l'écho correspondant. (Si j'ai bien compris, l'écho sert au retour des information (vérification et retour vers…) et la vérif pourrait se faire par un message à valider par le questionné.
2) Comment fait-on pour déclencher la vérification lors de l'appui sur le bouton "envoyez" ? Cela me permettrait se savoir ce qui m'est retourné et ainsi de ne travailler que sur ce qui reste (et oui, je suis un fainéant)
3) comment vont se transférer les infos du formulaire dans la base de données ? là, j'avoue sans peine croire encore à la magie.

Bon, comme tu le vois c'est un peu la cata mais bon ça avance doucement.

Posté : 04 juil. 2005, 11:18
par mere-teresa
1) Comme je n'ai pas besoin d'une réponse obligatoire pour toutes les cases à cocher (chekbox et radio) dois-je répéter pour chaque case à cocher la vérification et l'écho correspondant. (Si j'ai bien compris, l'écho sert au retour des information (vérification et retour vers…) et la vérif pourrait se faire par un message à valider par le questionné.
Pour tester ton script, mieux vaut faire des echo pour toutes les variables. MAIS si certaines données ne sont pas obligatoires, tu peux les laisser de côté au niveau des messages d'erreur à afficher.
Cependant, n'oublie pas de tester le contenu de ces variables contenant des données non-obligatoires avant insertion dans la base, car il pourrait y avoir des chiffres à la place des lettres, etc...


2) Comment fait-on pour déclencher la vérification lors de l'appui sur le bouton "envoyez" ? Cela me permettrait se savoir ce qui m'est retourné et ainsi de ne travailler que sur ce qui reste (et oui, je suis un fainéant)
Il suffit de mettre dans l'attribut action de ton formulaire l'url de ton script PHP :
<form action="monscript.php" method="post">
et d'avoir un bouton de type submit...
En cliquant dessus, le formulaire sera validé (=les données envoyées en POST au script PHP spécifié dans l'action).


3) comment vont se transférer les infos du formulaire dans la base de données ? là, j'avoue sans peine croire encore à la magie.
Bon, comme tu le vois c'est un peu la cata mais bon ça avance doucement.
Le script PHP qui récupère les informations du formulaire (dans une variable PHP => $_POST[]) va construire une ou des requêtes SQL à partir des informations récupérées, et effectuer la requête sur la BDD.

Posté : 04 juil. 2005, 12:04
par buldof
mere-teresa écrit
l suffit de mettre dans l'attribut action de ton formulaire l'url de ton script PHP :
<form action="monscript.php" method="post">
et d'avoir un bouton de type submit...
En cliquant dessus, le formulaire sera validé (=les données envoyées en POST au script PHP spécifié dans l'action).
C'est sympa, mais je n'ai pas de document en .php quelconque??¿¿¿¿¿???
Perso et je ne sais pas si c'est bien mais j'ai mis tout le code dans le doc qui contient le formulaire ¡¡¡¡!!! (visiblement, c'est pas très courant comme procédé…)
Donc si je comprend, il faudrait que je dissocie tout ce qui concerne le formulaire et la vérif/acheminement des infos en 2 docs dictincts ??
OUAH !! mais comment je fais la différence ?? :?:

Posté : 04 juil. 2005, 12:19
par mere-teresa
Bah, c'est à toi de décider :)
mais un formulaire peut être traité par lui-même.

Posté : 04 juil. 2005, 12:26
par buldof
Bon et bien j'opte pour la solution des docs séparés, cela pourrait, dans l'avenir, s'avérer plus clair (identification des erreurs, lisibilité des processus, page allégée, etc…).
Merci et dès que j'ai avancé suffisamment, je te contacte (enfin si avant je ne suis pas dans une impasse…)
Je fonce————>>>>>>……………
Buldof.

Posté : 05 juil. 2005, 14:32
par buldof
Bonjour, bonjour,
Ca y est, je suis perdu ! shock:
Je m'emmêle les pinceaux sévère et je ne sais plus par quel bout continuer.
J'ai opté pour la séparation des deux docs (formulaire et vérification) et du coup je m'y perd.
Allez voir, svp, le formulaire (ici) et le doc php de vérification et si vous pouviez me dire où j'en suis et ce qu'il faut que je fasse, ce serait vac…ment bien.roll:
Merci d'avance de votre aide et toute intervention sera la bienvenue ! : :

Posté : 05 juil. 2005, 14:56
par mere-teresa
Bonjour, bonjour,
Ca y est, je suis perdu ! shock:
Je m'emmêle les pinceaux sévère et je ne sais plus par quel bout continuer.
J'ai opté pour la séparation des deux docs (formulaire et vérification) et du coup je m'y perd.
Du calme :)
Fais juste un petit schéma avec des flèches pour simuler le passage des variables.
- formulaire HTML (qu'il faut renommer en .php si tu veux pouvoir faire <?php echo $var; ?> dans les champs
- traitement en PHP (qui peut inclure ou rediriger sur la page du formulaire)

Posté : 05 juil. 2005, 15:08
par pjl
c'est quoi ces boutons controler et à valider ?
Commence par faire simple, tu traites une question entièrement et après tu feras la suite de ton formulaire.

Posté : 05 juil. 2005, 15:15
par mere-teresa
c'est quoi c'est boutons controler et à valider ?
Commence par faire simple, tu traites une question entièrement et après tu feras la suite de ton formulaire.
Oui bien dit : KISS (Keep It Simple Stupid) en français : tu fais simple et qui marche

Posté : 05 juil. 2005, 16:32
par buldof
Merci.
Vous avez raison, j'étais parti dans des constructions assez compliquées qui méritaient d'être allégées. C'est chose faite.
De plus avec ce RAZ, cela m'a redonné la pêche et voici ce que pourrait donner un doc de vérification séparé du formulaire :
<body>
<!-- DATE DE CREATION: 04.07.05 --><?php /* On commence par vérifier si le bouton soumettant le formulaire a été cliqué, "envoi" étant l'attribut "name" du bouton "submit": si la condition n'est pas vérifiée, on saute drectement à la ligne 255 de ce script.*/
if(isset($_POST['envoi']))
$tempshabitants = $_POST['tempshabitants'];
$delaisdemenage = $_POST['delaisdemenage'];
$$raisonsdemenage = $_POST['raisonsdemenage'];
$email = $_POST['email'];
$endroitcom1 = $_POST['endroitcom1'];
$endroitcom2 = $_POST['endroitcom2'];
$assodifficulte1 = $_POST['assodifficulte1'];
$assodifficulte1 = $_POST['assodifficulte1'];
$noninvesti = $_POST['noninvesti'];
$investi = $_POST['investi'];
$investi2 = $_POST['investi2'];
$investi3 = $_POST['investi3'];
$comanto = $_POST['comanto'];
$autreinvesti = $_POST['autreinvesti'];
$animinter = $_POST['animinter'];
$animinter2 = $_POST['animinter2'];
$animinter3 = $_POST['animinter3'];
$animinter4 = $_POST['animinter4'];
$animinter5 = $_POST['animinter5'];
$deplamensuel = $_POST['deplamensuel'];
$deplahebdo = $_POST['deplahebdo'];
$deplaquoti = $_POST['deplaquoti'];
$categories = $_POST['categories'];
// Fonction "test()" qui servira au traitement des cases à cocher:
// question 5:
function test($choix) {global $desireinfo;for ($i = 0; $i < count($desireinfo); $i++)if($choix==$desireinfo[$i])return true;}
// question 7:
function test($choix) {global $inforecu;for ($i = 0; $i < count($inforecu); $i++)if($choix==$inforecu[$i])return true;}
//question 11 :
function test($choix) {global $fonctionasso;for ($i = 0; $i < count($fonctionasso); $i++)if($choix==$fonctionasso[$i])return true;}
// question 12 :
function test($choix) {global $dons;for ($i = 0; $i < count($dons); $i++)if($choix==$dons[$i])return true;}
// question 15 :
function test($choix) {global $deplace;for ($i = 0; $i < count($deplace); $i++)if($choix==$deplace[$i])return true;}
// question 16 :
function test($choix) {global $appartenance;for ($i = 0; $i < count($appartenance); $i++)if($choix==$appartenance[$i])return true;}
/* Définition des variables servant au traitement de l'adresse électronique : on utilise ici des expressions régulières. */
/* Définition de validation de l'adresse de courriel (e-mail) */
$valid = "^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\.[a-z]{2,4}$";
// Traitement de vérification des champs vides ou invalides (téléphone et/ou email et/ou url)
// Conditions de mauvaises réponses (champ vide par exemple)
if ($tempshabitants == '' || $deplamensuel == '' || $categories == '' || (eregi($valid, $email)) || )))
{
// Action à adopter>
<h3>Informations
incompl&egrave;tes</h3>
<p>Un (ou plusieurs) champ(s)
n'a(ont) pas &eacute;t&eacute; correctement rempli(s).</p>
<ol>
<?php if ($deplamensuel == '') // Si le champ "deplamensuel" est vide,
{ print "<li>Vous n'avez pas précisé vos type de déplacements</li>\n"; }
if ($categories == '') // Si le champ "categories" est vide,
{ print "<li>Vous n'avez pas précisé votre catégorie professionnelle</li>\n";}
if(($email) && !(eregi($valid, $email))) /* Si il y a une adresse inscrite mais invalide */
/* On vérifie LES DEUX conditions réunies (avec le signe "&&"): si on ne vérifie que la validité, en ne mettant pas d'adresse dans le formulaire, on obtient l'affichage des deux messages, or l'adresse à ce moment là n'est pas invalide, elle est absente: le message d'invalidité ne s'applique donc pas. */
{ print "<li>L'adresse électronique saisie est invalide.</li>\n"; }
/* Si les vérifications ont généré des erreurs, affichage du formulaire
contenant les données déjà saisies par l'utilisateur.
Si aucune erreur n'est relevée, alors le script saute à la ligne 212 */
?>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<br>
</form>

</body>
Sauf que je ne sais pas comment traiter les boutons radios ??
Faut-il les faire comme les checkbox ?
De plus, mere-teresa écrit dans un message précédent :
Il suffit de mettre dans l'attribut action de ton formulaire l'url de ton script PHP :
<form action="monscript.php" method="post">
et d'avoir un bouton de type submit...
En cliquant dessus, le formulaire sera validé (=les données envoyées en POST au script PHP spécifié dans l'action).
Je le met où ce code , au début de la totalité du doc formulaire comme ça :

Code : Tout sélectionner

<div id="contentContainer"> <div id="content"> <form style="margin-left: 0px; width: 540px;" action="monscript.php"" method="post"> <div align="center"> <h1>1 - Vous&hellip; en questions.</h1>
Et si je comprend bien (je n'en suis pas sûr ), il faudrait que je renomme le formulaire en .php ????
Merci de votre aide, doucement, doucement…ça avance !