Aide pour générer un ficher via php [Fermé]

Signaler
Messages postés
1521
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
-
drogba7213
Messages postés
1521
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
-
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

9 réponses

Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
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');
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
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.
Messages postés
3603
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
26 mars 2020
943
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
Messages postés
1521
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
21
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
arcadess
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
ouai a
Messages postés
3603
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
26 mars 2020
943
On a posté en même temps, donc juste un petit message pour te prévenir ;)
Messages postés
1521
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
21
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.
Reivax962
Messages postés
3603
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
26 mars 2020
943
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.
Messages postés
1521
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
21
c'est pour toi arcades stp
Messages postés
1521
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
21
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
Reivax962
Messages postés
3603
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
26 mars 2020
943
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
Messages postés
1521
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
21
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?