Envoyer des données d'un formulaire a un autre

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 : Envoyer des données d'un formulaire a un autre

Re: Envoyer des données d'un formulaire a un autre

par zeus » 27 mai 2011, 10:20

Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.

Re: Envoyer des données d'un formulaire a un autre

par AB » 27 mai 2011, 01:47

Perso j'utiliserai plutôt des variables de session, ce qui me parait le plus simple.

Pour ne pas trop polluer ton espace de nom de session tu pourrais les enregistrer dans un tableau :
session_start();

$_SESSION['form_1']['nom'] = $_POST['nom'];
$_SESSION['form_1']['prenom'] = $_POST['prenom'];

//etc
ensuite dans chaque page où tu auras déclaré session_start() tu pourra récupérer ces variables.

Sinon ta façon de nommer tes variables $var3=$_POST['datearr']; c'est juste pour t'embrouiller ? ça serait pas plus lisible pour ton code de faire $datearr=$_POST['datearr']; ?

Re: Envoyer des données d'un formulaire a un autre

par Dux » 26 mai 2011, 15:56

Bonjour,
tu peux utiliser au choix une de ces méthodes: les sessions, les cookies, MySQL ou un fichier TXT temporaire.

Pour les sessions tu peux enregistrer chaque variable indépendamment ou sérialiser avec la fonction serialize() la superglobale $_POST que tu récupères avec unserialize(). Attention aux échappements.

Pour les cookies, à cause de leurs tailles parfois restreintes, enregistre variable par variable

Pour MySQL ou les fichiers TXT temporaires, utilises un numéro d'identification unique pour la transaction en cours. Tu peux utiliser uniqid() + une fonction perso (pour éviter que quelqu'un d'autre ne s'en serve) et enregistre tes valeurs sérialisées ou en fichier texte 1 variable par ligne que tu récupère en tableau avec file().

Dans tous les cas, vérifie bien tes valeurs à la récupération afin d'éviter les hacks malintentionnés.

Envoyer des données d'un formulaire a un autre

par fayol91 » 26 mai 2011, 14:24

Bonjours,
Je m'explique je doit crée une serie de formulaire sans toute fois avoir a remplir les même champs
Voici mes codes
<a href="formangl.php" ><img class="contact" src="/drapeau_anglais.PNG" /></a>
</div>

<script language="javascript" type=text/javascript>
function verifNonVide(formulaire,champs) {
    
     var mess_ini = "Veuillez remplir les champs suivants:\n";
     var mess = mess_ini ;
     for(var i=0; i < champs.length; i=i+2) {
     if ( eval('document.'+formulaire+'.'+champs[i]+'.value.length') < 1 ) {
     mess += " - " ;
     mess += champs[i+1];
     mess += "\n" ;
     }
     }
    
     if ( mess.length != mess_ini.length ) {
     window.alert(mess);
     }
     else {
     eval('document.'+formulaire+'.submit()');
     }
     
}
    

     </script>
<form action="fpdf.php" method="post" name="inscription">
	<fieldset>
<br /> <br />Quel est votre status ? 
	<SELECT name="status" size="1">
		<OPTION>
		<OPTION>Chercheur
		<OPTION>ingénieur - technicien
		<OPTION>CDD
		<OPTION>auxiliaire – vacataire
		<OPTION>doctorant
		<OPTION>post-doctorant
		<OPTION>Stagiaire
		<OPTION>Visiteur
	</SELECT>


	</fieldset>
		<fieldset>

	<br /> <br />Employeur :
	<SELECT name="employeur" size="1">
		<OPTION>
		<OPTION>CNRS
		<OPTION>Université
	</SELECT>
	

		</fieldset>
		<fieldset>

        Date arrivée I A S : 
		<input type='text' name="datearr" size="20"  />

		Date départ : 
		<input type='text' name="datedep" size="20"  />
		</fieldset>

<fieldset>
	Nom : 
	<input type='text' name="nom" size="10"  />
	<br />
	Prenom : 
	<input type='text' name="prenom" size="10"  />
	<br />
	Email :
	<input type='text' size="30" name="email" />
	<br />
	Nom de jeune fille :
	<input type='text' size="10" name="njf" />
	<br />

	Date de naissance :	
	<input type='text' size="10" name="datenai" />
	<br />

	Lieu de naissance :	
	<input type='text' size="20" name="lieunai" />
	<br />

	Nationalité :	
	<input type='text' size="10" name="nationalite" />
	<br />

	N° sécurité sociale :
	<input type='text' size="20" name="numsecu" />
	<br />

	Adresse personnelle :	
	<input type='text' size="50" name="adresse" />
	<br />

	N° de téléphone personnel :
	<input type='text' size="10" name="numtel" />
	<br />
	N° de téléphone professionnel :
		<input type='text' size="10" name="telpro" />
	N° de bureau :
	<input type='text' size="10" name="telbur" />
	N° badge cantine : 
	<input type='text' size="10" name="badge" /><br />

	Situation de famille :
	<SELECT name="famille" size="1">
		<OPTION>
		<OPTION>Célibataire
		<OPTION>Marié(e)
		<OPTION>Veuf (ve)
		<OPTION>Divorcé(e)
		<OPTION>Séparé (e)
	</SELECT>
	Nombre d'enfants à charge :
	<input type='text' size="10" name="enfant" /><br />

Situation vis-à-vis du service national :
	<SELECT name="servicemil" size="1">
		<OPTION>
		<OPTION>Effectué
		<OPTION>Sursitaire
		<OPTION>Exempté
		<OPTION>Réformé
		<OPTION>Non appelé
	</SELECT><br />

	Avez-vous déjà été recruté par le CNRS ?
<INPUT type= "radio" name="cnrs" value="oui"> Oui
<INPUT type= "radio" name="cnrs" value="non"> Non
Si oui, dans quelle délégation ?
	<input type='text' size="20" name="delegation" /><br />

Diplôme  :
	<input type='text' size="20" name="diplome" /><br />
Formation initiale :
<br /><br />
Année :
	<input type='text' size="20" name="diplannee" />
Titre :	
	<input type='text' size="20" name="dipltitre" />
Etablissement :	
	<input type='text' size="20" name="dipletabliss" />
Lieu :	
<input type='text' size="20" name="diplieu" /><br />
Année :
	<input type='text' size="20" name="diplannee2" />
Titre :	
	<input type='text' size="20" name="dipltitre2" />
Etablissement :	
	<input type='text' size="20" name="dipletabliss2" />
Lieu :	
<input type='text' size="20" name="diplieu2" /><br />
Sujet de thèse :
<input type='text' size="20" name="sujthese" /><br />

Langues étrangères : 	
<input type='text' size="20" name="langue" /><br />


Niveau :
<input type='text' size="20" name="niveau" />
	</fieldset>
	<fieldset>
		Personne à prévenir en cas d’accident :
		<br />
	Nom :
	<input type='text' name="nom2" size="10"  />
	<br />

	Prénom :
	<input type='text' name="prenom2" size="10"  />
	<br />

	Lien de parenté : 	
	<input type='text' name="lienparente" size="10"  />
	<br />

	Tél. Domicile : 		
		<input type='text' name="teldo" size="10"  />
		<br />
	Tél. Professionnel :	
		<input type='text' name="telpro2" size="10"  />
		<br />
	Tél. portable :	
		<input type='text' name="telport" size="10"  />


	  </fieldset>

    <INPUT TYPE="reset" NAME="reset">
<input type="button" value="Valider" onClick="verifNonVide('inscription',['nom','nom','prenom','prenom','email','email','datenai','date de naissance','lieunai','lieu de naissance','nationalite','nationalité','numsecu','n° de securité social','adresse','adresse','numtel','numero de telephone','telpro','telephone pro','enfant','nombre denfant','diplome','diplome','diplannee','annee de diplome','dipltitre','titre du diplome','dipletabliss','etablissement diplome','langue','langue','niveau','niveau','nom2','nom personne a prevenir','prenom2','prenom personne a prevenir','lienparente','lien de parente','teldo','N°telephone domicile'])" name="valide">
</form>
<?php
$var1=$_POST['status'];
$var2=$_POST['employeur'];
$var3=$_POST['datearr'];
$var4=$_POST['datedep'];
$var5=$_POST['nom'];
$var6=$_POST['prenom'];
$var7=$_POST['email'];
$var8=$_POST['njf'];
$var9=$_POST['datenai'];
$var10=$_POST['lieunai'];
$var11=$_POST['nationalite'];
$var12=$_POST['numsecu'];
$var13=$_POST['adresse'];
$var14=$_POST['numtel'];
$var15=$_POST['telpro'];
$var16=$_POST['telbur'];
$var17=$_POST['badge'];
$var18=$_POST['famille'];
$var19=$_POST['enfant'];
$var20=$_POST['servicemil'];
$var21=$_POST['cnrs'];
$var22=$_POST['delegation'];
$var23=$_POST['diplome'];
$var24=$_POST['diplannee'];
$var25=$_POST['dipltitre'];
$var26=$_POST['dipletabliss'];
$var27=$_POST['diplieu'];
$var28=$_POST['diplannee2'];
$var29=$_POST['dipltitre2'];
$var30=$_POST['dipletabliss2'];
$var31=$_POST['diplieu2'];
$var32=$_POST['sujthese'];
$var33=$_POST['langue'];
$var34=$_POST['niveau'];
$var35=$_POST['nom2'];
$var36=$_POST['prenom2'];
$var37=$_POST['lienparente'];
$var38=$_POST['teldo'];
$var39=$_POST['telpro'];
$var40=$_POST['telport'];



require('fpdf/fpdf.php');
$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',14);
$pdf->Text(10,10,"Status : ".$var1);
$pdf->Text(10,30,"Employeur : ".$var2);
$pdf->Text(10,50,"Date arrivé : ".$var3);
$pdf->Text(90,50,"Date départ :".$var4);
$pdf->Text(10,70,"Nom :".$var5);
$pdf->Text(90,70,"Prenom :".$var6);
$pdf->Text(10,90,"Email :".$var7);
$pdf->Text(10,110,"Nom de jeune fille :".$var8);
$pdf->Text(10,130,"Date de naissance :".$var9);
$pdf->Text(10,150,"Lieu de naissance : ".$var10);
$pdf->Text(10,170,"Nationalité : ".$var11);
$pdf->Text(10,190,"Numero de securité social : ".$var12);
$pdf->Text(10,210,"Adresse : ".$var13);
$pdf->Text(10,230,"Numero de telephone personnel: ".$var14);
$pdf->Text(10,250,"N° de téléphone professionnel : ".$var15);
$pdf->Text(10,270,"N° de bureau : ".$var16);
$pdf->AddPage();
$pdf->Text(10,10,"DN° badge cantine : ".$var17);
$pdf->Text(10,30,"	Situation de famille : ".$var18);
$pdf->Text(90,30,"Nombre d'enfants à charge : ".$var19);
$pdf->Text(10,50,"Situation vis-à-vis du service national : ".$var20);
$pdf->Text(10,70,"Avez-vous déjà été recruté par le CNRS ? ".$var21);
$pdf->Text(10,90,"Si oui, dans quelle délégation ? ".$var22);
$pdf->Text(10,110,"Diplôme : ".$var23);
$pdf->Text(10,150,"Année : ".$var24);
$pdf->Text(90,150,"Titre :	".$var25);
$pdf->Text(10,170,"Etablissement :	".$var26);
$pdf->Text(105,170,"Lieu : ".$var27);
$pdf->Text(30,160,"".$var28);
$pdf->Text(105,160,"".$var29);
$pdf->Text(48,180,"".$var30);
$pdf->Text(105,180,"".$var31);
$pdf->Text(10,210,"Sujet de thèse : " .$var32);
$pdf->Text(10,230,"Langues étrangères : ".$var33);
$pdf->Text(10,130,"Niveau : ".$var34);
$pdf->AddPage();
$pdf->Text(10,10,"Personne à prevenir :");
$pdf->Text(10,30,"Nom :".$var35);
$pdf->Text(10,50,"Prenom :".$var36);
$pdf->Text(10,70,"Lien de parenté :".$var37);
$pdf->Text(10,90,"Téléphone domicile :".$var38);
$pdf->Text(10,110,"Téléphone professionnel :".$var39);
$pdf->Text(10,130,"Télephone portable :".$var40);





$date = date("dd/mm/yyyy");
$pdf->SetAuthor('Fayol');
$pdf->SetCreator('Fayol');
$pdf->SetTitle('Fayol Presentation');
$pdf->SetSubject('Remix by Fayol');
$pdf->Output('GLOP.pdf','F');




  // on génère une frontière
  $boundary = '-----=' . md5( uniqid ( rand() ) );
ini_set('SMTP','smtp.ias.u-psud.fr');
  // on va maintenant lire le fichier et l'encoder
  $path = 'GLOP.pdf'; // chemin vers le fichier
  $fp = fopen($path, 'rb');
  $content = fread($fp, filesize($path));
  fclose($fp);
  $content_encode = chunk_split(base64_encode($content));

  $headers  = "From: \"Thomas Fayol\"<[email protected]>\n";
  $headers .= "MIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";

  $message  = "Ceci est un message au format MIME 1.0 multipart/mixed.\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: application/pdf; charset=\"iso-8859-1\"\n";
  $message .= "Content-Transfer-Encoding: 8bit\n\n";
  
  $message .= "\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: application/pdf; name=\"GLOP.pdf\"\n";
  $message .= "Content-Transfer-Encoding: base64\n";

  // mettez inline au lieu de attachment
  // pour que l'image s'affiche dans l'email
  $message .= "Content-Disposition: attachment; filename=\"GLOP.pdf\"\n\n";
  $message .= $content_encode . "\n";
  $message .= "\n\n";
  $message .= "--" . $boundary . "--\n";
  mail('[email protected]','inscription',$message, $headers);
echo "<HTML><HEAD>";
echo "<TITLE>Envoi effectué</TITLE></HEAD><BODY>";
echo "<H1 align=center>Merci, vos informations ont bien été envoyées.</P>";
echo "</BODY></HTML>";

?>
Et j'aimerais pouvoir recupéré mes variables ( Nom,Prenom par exemple ) afin de ne pas a avoir a les réecrire dans un autre formulaire appellé form2 .

Comment puis-je faire ? ^^