Aide pour générer un ficher via php

Fermé
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 - 20 mai 2008 à 16:18
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 - 21 mai 2008 à 10:47
Bonjour,

J'ai fait un formulaire et quand les personnes rentre leurs données je veux qu'elles stockées dans un fichier texte
Le problème c'est que j'ai vu en cours les fichiers mais on n'y a passé que 2 h et je n'ai pas très bien compris
pouvez vous m'aidez svp je suis en stage et mon tuteur ne sais pas écrire une ligne de code!!!!

Je suis tout seul

Code :

$fp = fopen("/site/fichier.txt","a+");
fputs($fp, "\n"); // on va a la ligne
fputs($fp, "nom | prenom | naissance | lieu | dpt | adresse | telephone | telecopie | portable | mail | classe | option | annee | classe2 | option2 | annee2 | classe3 | option3 | annee3 | classe4 | option4 | annee4 | classe5 | option5 | annee5 | classe6 | option6 | annee6 | classe7 | option7 | annee7 | classe8 | option8 | annee8 | mention | annee9 | mention2 | annee10");
fputs($fp, "$_POST['nom'] | $_POST['prenom'] | $_POST['naissance'] | $_POST['lieu'] | $_POST['dpt'] | $_POST['adresse'] | $_POST['telephone'] | $_POST['telecopie'] |
$_POST['portable'] | $_POST['mail'] | $_POST['classe'] | $_POST['option'] | $_POST['anne'] | $_POST['classe2'] | $_POST['option2'] | $_POST['annee2'] | $_POST['classe3'] |
$_POST['option3'] | $_POST['annee3'] | $_POST['classe4'] | $_POST['option4'] | $_POST['annee4'] | $_POST['classe5'] | $_POST['option5'] | $_POST['annee5'] |
$_POST['classe6'] | $_POST['option6'] | $_POST['annee6'] | $_POST['classe7'] | $_POST['option7'] | $_POST['annee7'] | $_POST['classe8'] | $_POST['option8'] |
$_POST['annee8'] | $_POST['mention'] | $_POST['annee9'] | $_POST['mention2'] | $_POST['annee10'] |

fclose($fp);

Dite moi est ce que ca pourrait ressembler à ca?

il me met des erreurs :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING


aidez moi svp

merci d'avance
A voir également:

9 réponses

arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
20 mai 2008 à 16:23
Bonjour,

déja, un site qui pourrait t'aider : php.net ; tu y trouvera toutes les fct à utiliser et leur fonctionnement.

Pour répondre à ta question, faut faire un truc genre

$fichier = fopen('chemin_de_ton_fichier','w');

fwrite($fichier,'Données : '.$variable_rentrée_par_les_personnes');
0
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
20 mai 2008 à 16:25
Arrête de vouloir faire mille trucs sans savoie en faire un..

Commence doucement , genre avec un input, une variable, un fichier tout bidon ou t'essaies de récup ta variable, tu vas comprendre vite apres, mais forcement là, c'est un peu dur, pis ca pique les yeux ce code.
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
20 mai 2008 à 16:31
Bonjour,

Deux soucis dans ton code :

1 - Les tableaux ne sont pas utilisables directement dans une chaine de caractères.
fputs($fp, "$_POST['nom'] | $_POST['prenom'] ... n'est donc pas valide.
Tu as plusieurs solutions :
- ouvrir fermer la chaine à chaque fois : fputs($fp, $_POST['nom']." | ".$_POST['prenom']." ... Mais c'est pénible et pas très lisible.
- utiliser des accolades : fputs($fp, "{$_POST['nom']} | {$_POST['prenom']} ... C'est à peine moins pénible et plus lisible.
- utiliser des variables "normales". Au début de ton fichier, place le code suivant :
foreach ($_POST as $key => $value)
$$key = $value;
Et du coup, tu peux utiliser directement le nom des colonnes :
fputs($fp, "$nom | $prenom ... C'est beaucoup plus clair.

2 - Ton 2ème fputs n'est pas fermé :
fputs($fp, "$_POST['nom'] | $_POST['prenom'] [...] | $_POST['mention2'] | $_POST['annee10'] |
Il manque la fin !

Voilà :)

Xavier
0
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
20 mai 2008 à 16:31
Non pas w car sinon ca effacera les lignes qui auront été saisi par les utilisateurs précédent c'est a qu'il faut mettre

maintenant je vais aller sur php.net
0
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
20 mai 2008 à 16:39
ouai a
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
20 mai 2008 à 16:33
On a posté en même temps, donc juste un petit message pour te prévenir ;)
0
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
20 mai 2008 à 16:35
désolé je n'ai pas compris ce passage peux tu me le réepliker mais plus en douceur jss noob


- utiliser des variables "normales". Au début de ton fichier, place le code suivant :
foreach ($_POST as $key => $value)
$$key = $value;
Et du coup, tu peux utiliser directement le nom des colonnes :
fputs($fp, "$nom | $prenom ... C'est beaucoup plus clair.
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
21 mai 2008 à 10:41
Alors, en traduisant ça en français :
Pour chaque élément du tableau $_POST, dont le nom est $key et la valeur $value ,
on définit la variable $$key, à laquelle on donne la valeur $value.

Dans la pratique, si $_POST contient "nom" => "Dupond" et "prenom" => "Jean", on obtient
$nom = "Dupond" et $prenom = "Jean".

Comme ça, plus besoin de faire appel à $_POST directement, il te suffit de faire appel aux variables correspondantes, ce qui fonctionne dans une chaîne de caractères.
0
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
20 mai 2008 à 16:49
c'est pour toi arcades stp
0
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
20 mai 2008 à 16:51
Savez vous de quoi peuvent venir ces erreurs svp??

Warning: fopen() [function.fopen]: open_basedir restriction in effect. File(/site/fichier.txt) is not within the allowed path(s): (/mnt/104/sdb/7/8/site.inter) in /mnt/104/sdb/7/8/site.inter/stage/concours_ts.php on line 42

Warning: fopen(/site/fichier.txt) [function.fopen]: failed to open stream: Operation not permitted in /mnt/104/sdb/7/8/site.inter/stage/concours_ts.php on line 42

Warning: fputs(): supplied argument is not a valid stream resource in /mnt/104/sdb/7/8/site.inter/stage/concours_ts.php on line 43

Warning: fputs(): supplied argument is not a valid stream resource in /mnt/104/sdb/7/8/site.inter/stage/concours_ts.php on line 44

Warning: fclose(): supplied argument is not a valid stream resource in /mnt/104/sdb/7/8/site.inter/stage/concours_ts.php on line 46
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
21 mai 2008 à 10:43
Bonjour,

Cela signifie que le fichier auquel tu essaies d'accéder, /site/fichier.txt, n'est pas au bon endroit.
Il faudrait que tu le mettes au même endroit que le reste de ton site : site.inter/stage/fichier.txt.

Xavier
0
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
21 mai 2008 à 10:47
c'est bon j'ai trouver la solution merci

par contre j'ai un autre soucis c'est que quand je remplit le formulaire sous IE pas de problème les données vont dans mon fichier.txt mais quand je le remplit avec firefox aucune donnée ne vient.

Aurais tu une solutioN?
0