Données php dans un fichier excel

Petit nouveau ! | 3 Messages

07 avr. 2012, 20:27

Bonjour à toutes et tous,

je commence à peine le php... Je viens de créer un formulaire d'inscription (bien tant que mal) dont voici le code :

Code : Tout sélectionner

<?php $email_dest = "[email protected]"; if ($_POST['envoi']) { // E-mail headers: $headers ="MIME-Version: 1.0 \n"; $headers .="From: Formulaire php<[email protected]>\n"; $headers .="Content-Type: text/html; charset=iso-8859-1 \n"; $subject = "Inscription CA"; $partie_entete = "<html><head> <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1> </head> <body bgcolor=#FFFFFF>"; for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) { $partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>"; } if ($_POST['nbre_zone_email'] != 0) { $partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>"; } if ($_POST['nbre_zones_texte'] != 0) { $partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>"; $partie_zone_texte = stripslashes($partie_zone_texte); } $fin = "</body></html>"; $sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin; // Send the e-mail if (@!mail($email_dest,$subject,$sortie,$headers)) { echo("Envoi du formulaire impossible"); } else { // Closing if !mail... // Renvoi à la page de remerciement header("Location:Merci"); exit(); } // Fin du else } // Closing if edit ?><html><head><script language="JavaScript">function verifSelection() {if (mail_form.champ1.value == "") { alert("Nom") return false } if (mail_form.champ2.value == "") { alert("Prénom") return false } if (mail_form.champ3.value == "") { alert("Adresse") return false } if (mail_form.champ4.value == "") { alert("Code Postal") return false } if (mail_form.champ5.value == "") { alert("Localité") return false } if (mail_form.champ6.value == "") { alert("GSM") return false } if (mail_form.zone_email.value == "") { alert("Courriel") return false } invalidChars = " /:,;'" for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters? badChar = invalidChars.charAt(i) if (mail_form.zone_email.value.indexOf(badChar,0) > -1) { alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.") mail_form.zone_email.focus() return false } } atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol if (atPos == -1) { alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } periodPos = mail_form.zone_email.value.indexOf(".",atPos) if (periodPos == -1) { // and at least one "." after the "@" alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.') mail_form.zone_email.focus() return false }} // Fin de la fonction </script></head><body><form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()"> <div align="center"></div> <p align="center"> <table width="566" border="0" align="center"> <p align="center"> </p><tr> <td><font face="Verdana" size="2">Nom</font></td> <td><input name="champ1" type="text"></td> </tr><tr> <td><font face="Verdana" size="2">Prénom</font></td> <td><input name="champ2" type="text"></td> </tr><tr> <td><font face="Verdana" size="2">Adresse</font></td> <td><input name="champ3" type="text"></td> </tr><tr> <td><font face="Verdana" size="2">Code Postal</font></td> <td><input name="champ4" type="text"></td> </tr><tr> <td><font face="Verdana" size="2">Localité</font></td> <td><input name="champ5" type="text"></td> </tr><tr> <td><font face="Verdana" size="2">GSM</font></td> <td><input name="champ6" type="text"></td> </tr><tr> <td width><font face="Verdana" size="2">Courriel</font></td> <td width><input name="zone_email" type="text"></td> </tr><tr> <td valign="top"><font face="Verdana" size="2">Commentaire</font></td> <td><textarea name="zone_texte" cols="50" rows="10"></textarea></td> </tr><tr> <td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="6"> <input name="nbre_zones_texte" type="hidden" value="1"> <input name="nbre_zone_email" type="hidden" value="1"> <input name="titre_champ1" type="hidden" value="Nom"><input name="titre_champ2" type="hidden" value="Prénom"><input name="titre_champ3" type="hidden" value="Adresse"><input name="titre_champ4" type="hidden" value="Code Postal"><input name="titre_champ5" type="hidden" value="Localité"><input name="titre_champ6" type="hidden" value="GSM"><input name="titre_email" type="hidden" value="Courriel"><input name="titre_zone" type="hidden" value="Commentaire"></td> <td><div align="center"> <input type="reset" name="Reset" value="Effacer"> <input type="submit" name="envoi" value="Envoyer"> </div></td> </tr> </table> <div align="center"></div> </form></body></html>
Au même temps que je reçois l'email de confirmation, je voudrais aussi que les données soient injectées dans un fichier excel...

Quelqu'un aurait-il l'extrême bonté de bien vouloir m'aider et/ou me montrer la marche à suivre ?

D'avance je vous remercie toutes et tous pour votre aide


Chuipasla

ViPHP
xTG
ViPHP | 7331 Messages

07 avr. 2012, 21:09

Pour travailler les fichiers Excel regardes du côté de la librairie PHPExcel.
Sur leur site tu trouveras une documentation et des exemples d'utilisation.

Petit nouveau ! | 3 Messages

10 avr. 2012, 07:14

Bonjour,

Merci pour l'info... mais je n'y comprends rien. Est-ce si compliqué d'injecter les données de mon formulaire dans un fichier Excel ?



Merci beaucoup pour votre aide

Mammouth du PHP | 1967 Messages

10 avr. 2012, 14:56

Hello,

Tout dépend de à partir de quoi tu part.

Si tu as déjà une feuille existante, tu devras voir avec une solution du type phpexcel

Mais si tu part de rien, tu peux aisément faire un fichier au format CSV, renseigne toi sur le net pour y trouver plus de détail, mais en gros c'est un fichier de texte dont les cases sont séparé par un caractère spécifique (souvent ; ou ,) et les ligne séparé par un autre caractère spécifique (souvent un retour à la ligne). Excel comprendras aisément ce type de fichier.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 3 Messages

10 avr. 2012, 15:13

Merci,

Dans un fichier .csv ça peut aussi le faire... Mais je ne sais pas ce que je dois ajouter/modifier à mon code pour que les données arrivent à la fois par email et soient en même temps injectées dans le fichier .csv


Merci merci