Aller au contenu

Comment récupérer les infos d' un formulaire en format CSV...


Sujets conseillés

Posté

Bonjour!!!

Voici mon problème: en fait les données de mon formulaire sont à la fois envoyées par mail et stockées sur un fichier txt. Dans le fichier php qui gère le traitement des infos du formulaire j'ai inséré ces quelques lignes de code:

$datedujour = date('d/m/y/H:i:s');
$filename="./admin/liste.txt";
$fl=fopen($filename,"a+");
fwrite($fl,"''$datedujour'|'$nom'|'$prenom'|'$adressemail'|'$departement'|'$tel'|'$sqlinterets'|'$comments'|\n\r");
/* on ferme le fichier */
fclose($fl);

Tout marche nickel, les résultats du formulaires apparaissent sur le fichier liste.txt ; mais en fait j'aimerai obtenir directement un fichier au format csv avec séparateur point-virgule afin de rendre les données plus facilement exploitables.

Que dois-je faire au niveau du code pour parvenir à ce résultat? Merci d'avance pour votre aide :smartass:

SILV1

Posté

Remplace ton fwrite par

fwrite($fl,"$datedujour;$nom;$prenom;$adressemail;$departement;$tel;$sqlinterets;$comments\n\r");

Après avoir traité toutes les variables pour en enlever les éventuels points-virgules et retours chariots, bien sûr.

Sinon, pourquoi utiliser un séparateur si complexe ? '|'

Posté

Ben

$datedujour = date('d/m/y/H:i:s');
$filename="./admin/liste.csv";
$fl=fopen($filename,"a+");
fwrite($fl,"$datedujour;$nom;$prenom;$adressemail;$departement;$tel;$sqlinterets;$comments;\n\r");
/* on ferme le fichier */
fclose($fl);

Edit : Grillé sur le fil

Posté

Merci à tous les deux pour vos réponses si rapides :thumbsup: Je vais tout de suite faire le changement!

SILV1

Posté

Au fait, pour supprimer les retours chariots, est-ce que ces quelques lignes de code peuvent faire l'affaire?

<?php
$texte=nl2br($texte);
$texte=str_replace(CHR(10),"",$texte);
$texte=str_replace(CHR(13),"",$texte);

?>

Merci bien!

Silv1

Posté (modifié)

Merci Blman pour l'astuce mais je pense que mes connaissances en php sont trop limitées pour utiliser cette fonction :blush:

Pour le moment j'ai simplement remplacé mes anciens séparateurs par des points virgules et ça marche imppécable!

Merci à tous pour votre aide si précieuse ;)

Silv1

Modifié par silv1
Posté

l'exemple utilisé pour cette fonction est très facilement adaptable à ton cas

<?php

$list = array (
'29/04/08/16:45:33;Anseaume;David;nom_AT_domaine.ext;76;0202020202;Internet, littérature...;Test',
'29/04/08/15:38:24;Gates;Bill;bill_AT_microsoft.com;76;0202020202;Internet, littérature...;Test'
);

$fp = fopen('liste.csv', 'w');

foreach ($list as $line) {
fputcsv($fp, split(',', $line));
}

fclose($fp);
?>

Posté

OK j'essaierai d'intégrer ce code...

Là depuis ce matin je galère pour enlever les retours chariots dans le champ commentaires (comments). J'ai essayé ça mais je suis pas du tout sûr de moi: :blush:

$datedujour = date('d/m/y/H:i:s');
$filename="./admin/prospects.txt";
$comments = str_replace( array( "\r", "\n" ), '', $comments );
$fl=fopen($filename,"a+");
fwrite($fl,"''$datedujour;$nom;$prenom;$adressemail;$departement;$tel;$sqlinterets;$comments';\n\r");
fclose($fl);

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...