Formulaire et remplissage base de donnés infos recueillies

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 : Formulaire et remplissage base de donnés infos recueillies

par Invité » 13 juil. 2005, 15:12

Toujours sympa de m'avoir aidé au début.
Maintenant, je vais de démerder :arrow:

par Invité » 07 juil. 2005, 14:45

mere-teresa dit :
Peux tu numéroter les lignes ? (édite ton message et mets des commentaires dans le PHP...toutes les 10 lignes par exemple)
Voici une "édition" du code avec un marquage toute les 10 lignes.
Pour ce qui est de l'erreur, c'est toutjours la même hormis le n° de ligne qui change.
Parse error: parse error, unexpected $ in /var/www/free.fr/b/d/buldof/PopSite/page1/verif2.php on line 132

Voici le code :
<?php 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'];
// 10eme ligne ---------------------------------------------------> :
$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'];
// 20eme ligne ---------------------------------------------------> :
$animinter3 = $_POST['animinter3'];
$animinter4 = $_POST['animinter4'];
$animinter5 = $_POST['animinter5'];
$deplamensuel = $_POST['deplamensuel'];
$deplahebdo = $_POST['deplahebdo'];
$deplaquoti = $_POST['deplaquoti'];
$categories = $_POST['categories'];
$remark = $_POST['remark'];
	}
// 30eme ligne : ---------------------------------------------------> :
// Fonction qui servira à tester les listes déroulantes :
// question 1 : 
	{
if($age=="7 à 12 ans"){print "selected=\"selected\"";
if($age=="13 à 16 ans"){print "selected=\"selected\"";
if($age=="17 à 18 ans"){print "selected=\"selected\"";
if($age=="19 à 25 ans"){print "selected=\"selected\"";
if($age=="26 à 40 ans"){print "selected=\"selected\"";
if($age=="41 à 60 ans"){print "selected=\"selected\"";
// 40eme ligne :--------------------------------------------------->
if($age=="61 à 75 ans"){print "selected=\"selected\"";
if($age=="75 ans et plus"){print "selected=\"selected\"";
	}
// question 3,1:	{
if($categories=="Agriculteurs, exploitants"){print "selected=\"selected\"";
if($categories=="Artisans, Commer&ccedil;ants et Assimil&eacute;s"){print "selected=\"selected\"";
if($categories=="Chefs d'entreprise de 10 salari&eacute;s ou plus"){print "selected=\"selected\"";
if($categories=="Professions lib&eacute;rales"){print "selected=\"selected\"";
if($categories=="Cadres de la Fonction publique, Professeurs, professions scientifiques"){print "selected=\"selected\"";
// 50eme ligne ---------------------------------------------------> :
if($categories=="Cadres administratifs et commerciaux d'entreprise"){print "selected=\"selected\"";
if($categories=="Ing&eacute;nieurs et cadres techniques d'entreprise, Contrema&icirc;tres, Agents de ma&icirc;trise"){print "selected=\"selected\"";
if($categories=="Instituteurs et assimil&eacute;s"){print "selected=\"selected\"";
if($categories=="Professions interm&eacute;diaires de la sant&eacute; et du travail social"){print "selected=\"selected\"";
if($categories=="Professions Interm&eacute;diaires administratives de la Fonction publique"){print "selected=\"selected\"";
if($categories=="Professions interm&eacute;diaires administratives et commerciales des entreprises"){print "selected=\"selected\"";
if($categories=="Techniciens"){print "selected=\"selected\"";
if($categories=="Employ&eacute;s civils, administratifs d'entreprise,de commerce,"){print "selected=\"selected\"";
if($categories=="Agents de service de la Fonction publique, Policiers et militaires"){print "selected=\"selected\"";
// 60eme ligne ---------------------------------------------------> :
if($categories=="Personnels des services directs aux particuliers"){print "selected=\"selected\"";
if($categories=="Ouvriers qualifi&eacute;s"){print "selected=\"selected\"";
if($categories=="Anciens agriculteurs exploitants, artisans, commer&ccedil;ants, chefs d'entreprise"){print "selected=\"selected\"";
if($categories=="Anciens cadres et professions interm&eacute;diaires "){print "selected=\"selected\"";
if($categories=="Anciens employ&eacute;s et ouvriers"){print "selected=\"selected\"";
if($categories=="Ch&ocirc;meurs n'ayant jamais travaill&eacute"){print "selected=\"selected\"";
if($categories=="Autres personnes sans activit&eacute; professionnelle "){print "selected=\"selected\"";
if($categories=="Je ne tiens pas &agrave; le pr&eacute;ciser"){print "selected=\"selected\"";
	}
// 70eme ligne ---------------------------------------------------> :
// question 3,2 :
	{
if($tempshabitants=="moins de 1 ans"){print "selected=\"selected\"";
if($tempshabitants=="de 1 à 2 ans"){print "selected=\"selected\"";
if($tempshabitants=="de 3 à 5 ans"){print "selected=\"selected\"";
if($tempshabitants=="de 6 à 8 ans"){print "selected=\"selected\"";
if($tempshabitants=="de 9 à 12 ans"){print "selected=\"selected\"";
if($tempshabitants=="de 13 à 15 ans"){print "selected=\"selected\"";
if($tempshabitants=="d 16 à 20 ans"){print "selected=\"selected\"";
// 80eme ligne :---------------------------------------------------> :
if($tempshabitants=="de 21 à 25 ans"){print "selected=\"selected\"";
if($tempshabitants=="de 26 à 35 ans"){print "selected=\"selected\"";
if($tempshabitants=="+ de 35 ans"){print "selected=\"selected\"";
	}
// question 3,3
	{
if($delaisdemenage=="dans moins de 6 mois"){print "selected=\"selected\"";
if($delaisdemenage=="Entre 6 mois à 1 ans"){print "selected=\"selected\"";
if($delaisdemenage=="dans 1 à 2 ans"){print "selected=\"selected\"";
// 90eme ligne :---------------------------------------------------> :
if($delaisdemenage=="dans plus de 3 ans"){print "selected=\"selected\"";
	} 
// 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 :
// 100eme ligne :---------------------------------------------------> :
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. */
// 110eme ligne :---------------------------------------------------> :
/* 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(($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"; }
// 120eme ligne :---------------------------------------------------> :
/* 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 */
{	
?>
// Action &agrave; adopter>
// 125eme ligne ---------------------------------------------------> :
<h3>Informations
incompl&egrave;tes</h3>
<p>Un (ou plusieurs) champ(s)
n'a(ont) pas &eacute;t&eacute; correctement rempli(s).</p>
<?php }
?>

par mere-teresa » 07 juil. 2005, 10:22

Déjà on ne sourit pas ici. Qu'est-ce que tu crois ?

Et en plus...il faut mettre ton erreur...:)
C'est toujours
"Parse error: parse error, unexpected $ in /var/www/free.fr/b/d/buldof/PopSite/page1/verif2.php on line 67" ?

C'est bien ça ?
Peux tu numéroter les lignes ? (édite ton message et mets des commentaires dans le PHP...toutes les 10 lignes par exemple)

par buldof » 06 juil. 2005, 18:30

Si tu mets l'extension .php à la fin du nom de fichier, tout le PHP contenu dans le fichier (mm s'il ressemble à un masque HTML avec des petites incursions de PHP) sera bien interprété et le HTML aussi.
Ca c'est une bonne nouvelle. Mais maintenant que j'ai séparé les 2 docs… Donc avec 2 docs (le formulaire en html et la vérif en php) j'ai renvoyé l'action du bouton vers le verif.php.
Ca c'est le contexte. Le problème est que je suis toujours ennuyé par la même message d'erreur sur la dernière ligne de mon php sans que celle-ci n'existe. Même après vérification des ";" (qui à priori ne manquent pas) c'est tjrs pareil.
Depuis hier je n'ose plus mettre mon php en affichage… mais je vais quand même le faire juste pour que vous puissiez vous marrer un peu !(et accessoirement que vous me fassiez quelques retours…)

<?php if(isset($_POST['envoi']))
	{
// traitement des cases de texte
$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'];
$remark = $_POST['remark'];
	}
// Fonction qui sert à tester les listes déroulantes :
// question 1 : 
	{
if($age=="7 à 12 ans"){print "selected="selected"";
if($age=="13 à 16 ans"){print "selected="selected"";
if($age=="17 à 18 ans"){print "selected="selected"";
if($age=="19 à 25 ans"){print "selected="selected"";
if($age=="26 à 40 ans"){print "selected="selected"";
if($age=="41 à 60 ans"){print "selected="selected"";
if($age=="61 à 75 ans"){print "selected="selected"";
if($age=="75 ans et plus"){print "selected="selected"";
	}
// question 3,1 :
	{
if($categories=="Agriculteurs, exploitants"){print "selected="selected"";
if($categories=="Artisans, Commer&ccedil;ants et Assimil&eacute;s"){print "selected="selected"";
if($categories=="Chefs d'entreprise de 10 salari&eacute;s ou plus"){print "selected="selected"";
if($categories=="Professions lib&eacute;rales"){print "selected="selected"";
if($categories=="Cadres de la Fonction publique, Professeurs, professions scientifiques"){print "selected="selected"";
if($categories=="Cadres administratifs et commerciaux d'entreprise"){print "selected="selected"";
if($categories=="Ing&eacute;nieurs et cadres techniques d'entreprise, Contrema&icirc;tres, Agents de ma&icirc;trise"){print "selected="selected"";
if($categories=="Instituteurs et assimil&eacute;s"){print "selected="selected"";
if($categories=="Professions interm&eacute;diaires de la sant&eacute; et du travail social"){print "selected="selected"";
if($categories=="Professions Interm&eacute;diaires administratives de la Fonction publique"){print "selected="selected"";
if($categories=="Professions interm&eacute;diaires administratives et commerciales des entreprises"){print "selected="selected"";
if($categories=="Techniciens"){print "selected="selected"";
if($categories=="Employ&eacute;s civils, administratifs d'entreprise,de commerce,"){print "selected="selected"";
if($categories=="Agents de service de la Fonction publique, Policiers et militaires"){print "selected="selected"";
if($categories=="Personnels des services directs aux particuliers"){print "selected="selected"";
if($categories=="Ouvriers qualifi&eacute;s"){print "selected="selected"";
if($categories=="Anciens agriculteurs exploitants, artisans, commer&ccedil;ants, chefs d'entreprise"){print "selected="selected"";
if($categories=="Anciens cadres et professions interm&eacute;diaires "){print "selected="selected"";
if($categories=="Anciens employ&eacute;s et ouvriers"){print "selected="selected"";
if($categories=="Ch&ocirc;meurs n'ayant jamais travaill&eacute"){print "selected="selected"";
if($categories=="Autres personnes sans activit&eacute; professionnelle "){print "selected="selected"";
if($categories=="Je ne tiens pas &agrave; le pr&eacute;ciser"){print "selected="selected"";
	}
// question 3,2 :
	{
if($tempshabitants=="moins de 1 ans"){print "selected="selected"";
if($tempshabitants=="de 1 à 2 ans"){print "selected="selected"";
if($tempshabitants=="de 3 à 5 ans"){print "selected="selected"";
if($tempshabitants=="de 6 à 8 ans"){print "selected="selected"";
if($tempshabitants=="de 9 à 12 ans"){print "selected="selected"";
if($tempshabitants=="de 13 à 15 ans"){print "selected="selected"";
if($tempshabitants=="d 16 à 20 ans"){print "selected="selected"";
if($tempshabitants=="de 21 à 25 ans"){print "selected="selected"";
if($tempshabitants=="de 26 à 35 ans"){print "selected="selected"";
if($tempshabitants=="+ de 35 ans"){print "selected="selected"";
	}
// question 3,3
	{
if($delaisdemenage=="dans moins de 6 mois"){print "selected="selected"";
if($delaisdemenage=="Entre 6 mois à 1 ans"){print "selected="selected"";
if($delaisdemenage=="dans 1 à 2 ans"){print "selected="selected"";
if($delaisdemenage=="dans plus de 3 ans"){print "selected="selected"";
	} 
// Fonction "test()" qui sert 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 : */
/* 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 (email)
if(($email) && !(eregi($valid, $email))) /* Si il y a une adresse inscrite 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. */
{	
?>
// Action &agrave; 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 }
?>
</ol>
Je vous imagine déjà en train de sourire ………………

par mere-teresa » 06 juil. 2005, 10:05

Honte à moi !
Quel présomptueux je fais !
Je n'avais pas saisi le propos tenu par pij dans sa remarque sur le php et l'html.
Enfin, mieux vaut tard que jamais. Oui, en effet, le serveur ne pouvait pas interpréter la page comme du php puisque l'en-tête conservait des données html de l'origine du document réalisé sous NVU, éditeur de page Web donc en html…
Si tu mets l'extension .php à la fin du nom de fichier, tout le PHP contenu dans le fichier (mm s'il ressemble à un masque HTML avec des petites incursions de PHP) sera bien interprété et le HTML aussi.

par pjl » 05 juil. 2005, 23:46

Celà signifie dans 80% des cas que tu as oublié un ; à la fin d'une ligne de code.

par buldof » 05 juil. 2005, 21:39

Honte à moi !
Quel présomptueux je fais !
Je n'avais pas saisi le propos tenu par pij dans sa remarque sur le php et l'html.
Enfin, mieux vaut tard que jamais. Oui, en effet, le serveur ne pouvait pas interpréter la page comme du php puisque l'en-tête conservait des données html de l'origine du document réalisé sous NVU, éditeur de page Web donc en html…
C'est promis, à l'avenir je vais me surveiller !!
Merci à toi pij.:oops:

Le méa culpa étant réalisé, voici ce qui me préoccupe actuellement :
Le serveur me retourne le message d'erreur suivant : "Parse error: parse error, unexpected $ in /var/www/free.fr/b/d/buldof/PopSite/page1/verif2.php on line 67"
Or après avoir résolu les problèmes précédents de cet ordre, je n'ai pas de 67ème ligne !! :?:
De quoi parle le serveur ?
Merci encore.

par buldof » 05 juil. 2005, 18:33

1 petite course et me revoilà…
pjl (elephant) dit :
t comment un serveur hébergé par free va savoir qu'il s'agit d'une page en PHP ou d'une page HTML ?
Buldof (embryon) repond : Si tu avais lu mes message précédents, tu le saurais que je ne fais que le demander… :wink:

Mais au fait, il me semblait que sur un Forum pour débutant php on y voyait les embryons demander de l'aide aux éléphants et non l'inverse. :evil:

Et en plus, il me semble que ce n'est pas le sujet du post. Tu devrais en ouvrir 1 autre et proposer un test de tous les nouveaux arrivants sur le forum. Titre du sujet :
Doit-on posséder une maîtrise suffisante pour faire partie des débutants?? :roll:

Maintenant si tu veux, je voudrais bien continuer à progresser, si tu veux m'aider, OK, autrement fais en sorte que les autres puissent participer au sujet et à l'aide dont j'ai besoin.
merci

par pjl » 05 juil. 2005, 18:00

et comment un serveur hébergé par free va savoir qu'il s'agit d'une page en PHP ou d'une page HTML ?

par buldof » 05 juil. 2005, 17:42

pjl dit :
STOP

Avant d'aller plus loin, j'espère :
1. que tu connais la différence entre une page php et une page html
2. que tu as de temps en temps le réflexe de regarder le code source généré.
Et bien d'après moi, le code html permet le représentation graphique d'élément (page web) et c'est le navigateur qui s'en charge, et le php est un langage seulement pour le serveur qui vient ajouter en complément (du graphisme) des valeurs dynamique. (J'attends ma note sur /20 !! :oops:)
N'empêche que tu as quand même raison pjl, je m'y perd rapidement !!
Merci de me rappeler cela (c'est la base mais pour un grand débutant, il est nécessaire qu'il ne la perde pas).

par pjl » 05 juil. 2005, 17:41

Je vais le mettre plus gros alors.
STOP

Avant d'aller plus loin, j'espère :
1. que tu connais la différence entre une page php et une page html
2. que tu as de temps en temps le réflexe de regarder le code source généré.

par mere-teresa » 05 juil. 2005, 17:38

Mais je ne sais pas si je les enlève, quelles en seront les conséquences.
Je penche pour l'explosion de la Terre, ou l'arrêt complet de ta machine.

par buldof » 05 juil. 2005, 17:35

En fait, si je mets les echo dans les champs input, c'est parce que j'ai pris l'exemple sur le doc de cyrano, qui, je penses, devait le faire pour vérifier s'il s'agissait bien des bons echo pour les bonnes cases.
Mais je ne sais pas comment les enlever, et surtout, si je les enlève, quelles en seront les conséquences.
En tout cas, merci pour tes petits trucs qui m'aident énormément. Il est vrai que je n'ai qu'une vue syncrétique du PHP et que les détails m'échappent (quelques jours seulement…)

par pjl » 05 juil. 2005, 17:33

STOP

Avant d'aller plus loin, j'espère :
1. que tu connais la différence entre une page php et une page html
2. que tu as de temps en temps le réflexe de regarder le code source généré.

par castelli » 05 juil. 2005, 17:26

pour les champ de texte tu fais comme sa :

<td><b><input type="text" name="test"></b></td></tr>

pour recuperer la valeur de ce que l'utilisateur a entré tu fais comme sa :

$test = $_POST['test'];

(en gros je comprends pas pourquoi tu met des echos dans tes champs imput a par pour faire apparaitre des valeurs que tu a deja hors il me semble pas que sa soit le cas ?? si ?