Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/03/2011, 19h40   #1
Invité régulier
 
Inscription : février 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 40
Points : 6
Points : 6
Par défaut Probleme avec la fonction copy...

Bonjour,
voila, j' ai presque fini un code me permettant d'envoyer des infos via un form html, vers une page php (5.php) qui les récupères.
J' envois ensuite le résultat par e-mail (grace à la correction ici même par "Sabotage") jusque là tout va bien, mais j' ai un dernier problème, je voudrais faire une copie des résultats recueillis dans le fichier de récupération (5.php) dans un dossier sur le même serveur nommé "répertoire".
J' emplois :
Code :
1
2
$Fnm = "5.php";
copy($Fnm, "repertoire/$nom.php" );
Ca fonctionne, mais le problème est que je ne récupère pas les infos du formulaire mais le code php et html de la page (5.php).=>alors que dans l' email qui vient aussi de la même page (5.php) je récupère les données du formulaire.
J'ai beaucoup regardé, pouvez vous me dire comment faire pour récupérer dans ce fichier de "copy" la partie html des formulaires...?
(Résumé)
form.php envois les données via formulaires vers 5.php qui les récupère et envoi un e-mail avec les données dedans, mais la fonction copy qui se trouve dans 5.php, ne duplique que la partie php mais pas les données entrés dans form.php... Help !...
Voici plus de code :
Page 5.php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$destinataire = "moi@serveur.com";
$expediteur   = $nom;
$reponse      = $expediteur;
$body =      '<table><td style="border:solid 1px black">Nom : '.$nom.'</td> </table>
    <table>
    <tr>
        <td>'.$D1.'</td>
        <td>'.$D2.'</td>
        <td>'.$D3.'</td>
        <td>'.$D4.'</td>
    </tr>
</table>';
 
mail($destinataire,
     "test email 1bis",
      $body,
     "From: $expediteur\r\nReply-To: $reponse");
?>
<?php $Fnm = "5.php";
copy($Fnm, "repertoire/$nom.php" );
 ?>
<?php echo $body ?><br />
Dans l' email je récupère le code html et les infos $D1, $D2 etc...
Dans la copie logée dans le dossier "repertoire" je ne recupère pas les infos de : $D1, $D2 etc... Sont vides...
J' ai essayé avec :
Code :
1
2
3
4
 
<?php $Fnm = "$body"; ou $Fnm = $body;
copy($Fnm, "repertoire/$nom.php" );
 ?>
La copie s'enregistre comme je veux dans le bon dossier, mais aucunes infos des formulaires dans $D1, $D2 etc...
noviceman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 22h16   #2
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Ce n'est pas très clair ; tu as l'air de vouloir copier 5.php, mais en plus le code copy se trouve lui-même dans 5.php ; ça ne doit pas tenir la route : il vaudrait mieux que l'instruction copy ne se trouve pas dans le fichier à copier. Et d'autre part, la partie de 5.php (ce ne doit pas être complet) ne contient que du code : c'est bien ça que tu veux copier ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 22h30   #3
Invité régulier
 
Inscription : février 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 40
Points : 6
Points : 6
Bonjour, merci pour ton aide
Oui ce n'est pas très clair j' ai beaucoup de mal à expliquer ce qui ne va pas.
Je veux récupérer les données du formulaire et le html.
C'est possible puisque ça marche avec l' e-mail
(qui est aussi dans ma page 5.php)
pour dire encore plus, c'est un formulaire d'inscription pour notre association.
Les gens peuvent s'inscrire en ligne via les formulaires et la page 5.php récupère et envoit par mail les données.
Le prob c'est que ce serait mieux en "pièce jointes."
Je cherche donc à copier la page pour en faire un fichier et joindre ce fichier à l' envoi mail...
Dur dur d'essayer d'expliaquer quand c'est un peu complexe... Pa évident...
Merci pour ta compréhension...
noviceman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 22h34   #4
Invité régulier
 
Inscription : février 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 40
Points : 6
Points : 6
Quand je cliques sur "valider" sur la page form.php, les infos arrivent sur la page 5.php qui reçoit et envoit par e-mail, nikel !
Pourquoi je ne peux pas faire de copie en même temps de ces infos, c'est la même page, j' ai très envie de comprendre, et je me suis cassé la tête...Promis...
Je voudrais faire une copie du style
Code html :
1
2
3
4
5
6
7
8
9
<table><td style="border:solid 1px black">Nom : mon nom</td>
 
    <tr><td style="border:solid 1px black">prenom : le prenom</td></tr>
 
    <tr><td style="border:solid 1px black">Adtresse : l'adresse</td></tr>
 
    <tr><td style="border:solid 1px black">Telephone : le telephone</td></tr>
 
 </table>
Dans le dossier "repertoire"
Avec le code que j' ai fait, j' ai le html dans la copie, mais pas les infos, alors que dans l' e-mail j' ai le html et les infos...
C'est une erreur de ma part mais je ne trouve pas...
noviceman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 22h44   #5
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Vu que tu veux écrire dans un fichier séparé quelque chose, j'utiliserais la fonction fwrite (et pour le choix de l'extension du fichier, ça dépend de qu'il va contenir (si que des données, .txt )).
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 02h25   #6
Invité régulier
 
Inscription : février 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 40
Points : 6
Points : 6
J'ai bien pensé à fwrite ou fopen, créer un fichier texte, mais je ne comprends pas pourquoi je serais obligé de créer un fichier en employant ça, alors que je pourrais copier-coller (copy) mes infos et créer le fichier comme dans mon envoi mail qui fonctionne parfaitement...Je fais sûrement des erreurs de jugement, mais je voudrais comprendre.
J'arrive à faire un courrier e-mail avec le contenu de la page et le contenu du formulaire, pourquoi cela ne fonctionne pas avec "copy" ou plutôt si, ça fonctionne mais je n' ai que le html, pas les infos entrées dans le formulaire...C'est ça mon prob...Excusez c'est pas si facile a expliquer...
Je serais si proche du but, il ne manque que le contenu du form.
Le dossier reçoit mes fichiers.
(ps : j' ai simplifié mon form, mais il a 46 entrées (input) envoyées en un clique) c'est pourquoi le "copy" serait bien pour moi...
noviceman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 08h58   #7
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
à mon avis (je ne suis pas un expert, mais c'est ce que je pense) il y a 2 problèmes :
  • l'instruction "copy" se trouve dans la page que tu veux copier (5.php)
  • Les données n'existent pas en dûr, c'est juste la valeur de variables
Et je pense que pour faire ce que tu veux, tu seras obligé de passer par fwrite (et fopen, car il faut faire les 2)
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 12h07   #8
Invité régulier
 
Inscription : février 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 40
Points : 6
Points : 6
Ok, j' ai pourtant l' impression d' avoir suivi le manuel, mais ce bout de code ne fonctionne pas...
J'ouvre en a+, si le fichier n'existe pas, on le cré...
Code :
1
2
3
4
5
6
7
$Fnm = 'repertoire/texte.php';
$fp = fopen('repertoire/texte.php', 'a+');
fwrite($fp, $body);
fclose($fp);
if(file_exists( $Fnm )){
    rename( $Fnm, $nom.".xls" );
}
$body = mon tableau html...
Est-ce que tu, ou quelqu'un voit mon erreur, svp...
Je continue mes recherches...
noviceman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 15h43   #9
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Pour ton information, j'ai testé ce code-là :
Code :
1
2
3
4
5
$body="test";
$Fnm = "repertoire/texte.php";
echo ("fopen : ".($fp = fopen("repertoire/texte.php", "a+")?"true":"false")."<br>");
echo ("fwrite : ");
echo fwrite($fp, $body)?"true":"false";
Le fopen marche bien (le fichier texte.php est créé), mais le fwrite échoue (je ne sais pas pourquoi) et ça affiche "false". Et j'étais obligé d'afficher "fwrite" et "true/false" sur 2 lignes, sinon, ça affichait mal ( )
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 16h39   #10
Invité régulier
 
Inscription : février 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 40
Points : 6
Points : 6
En fait, cela fonctionne comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<?php
$destinataire = "mon_adresse@gmail.com";
$expediteur   = "$nom";
$reponse      = "$expediteur";
 
	$body = 
		 'Bonjour Mr ou Mme '.$nom.'<br /><span style="color:green">Merci de participer au :<br />
		XXXXXXXXXXXXXX.</span>
		 <table><td style="border:solid 1px black">Nom : '.$nom.'</td>
		 <tr><td style="border:solid 1px black">prenom : '.$prenom.'</td></tr>
		 <tr><td style="border:solid 1px black">Adtresse : '.$adresse.'</td></tr>
		 <tr><td style="border:solid 1px black">Telephone : '.$tel.'</td></tr>
		 <tr><td style="border:solid 1px black">Inscription : </td></tr>
</table>
';
mail($destinataire,
     "$prenom",
	 $body, 
"From: $expediteur\r\nReply-To: $reponse");
	  ?>
<?php $Fnm = "5.php";
copy($Fnm, "repertoire/$nom.php" );
 ?>
Le fichier se cré avec comme titre le $nom (ça c'est ok), mais dans ce fichier créé, il n'y a que mon tableau. Les données ne sont pas interprétés. Voila ce que je reçois dans "repertoire/$nom"
Code :
1
2
3
4
5
6
7
 
<table><td style="border:solid 1px black">Nom : </td>
		 <tr><td style="border:solid 1px black">prenom : </td></tr>
		 <tr><td style="border:solid 1px black">Adtresse : </td></tr>
		 <tr><td style="border:solid 1px black">Telephone : </td></tr>
	 <tr><td style="border:solid 1px black">Inscription : </td></tr>
</table>
Les champs renseignés via le formulaire sont vides. Je copie juste mon tableau.
Pourquoi si le fichier est copié et envoyé dans le bon répertoire, il se trouve vide des informations déposées dedans...?
Si j'envois la commande en extension "html" je récupère :
Code :
1
2
3
4
5
6
7
 
 <table><td style="border:solid 1px black">Nom : '.$nom.'</td>
		 <tr><td style="border:solid 1px black">prenom : '.$prenom.'</td></tr>
		 <tr><td style="border:solid 1px black">Adtresse : '.$adresse.'</td></tr>
		 <tr><td style="border:solid 1px black">Telephone : '.$tel.'</td></tr>
	 <tr><td style="border:solid 1px black">Inscription : </td></tr>
</table>
Comment faire pour que ma copie récupère le contenu de '.$nom.' , '.$prenom.' , '.$tel.' ...svp ?
par avance merci beaucoup...
(j' ai tenté avec fwright et fopen, w, a+... sans succès...)
noviceman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 22h43   #11
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
avec fwright pas étonnant, y aurait déjà plus de chance avec fwrite . Je n'ai pas de solution, mais quasi sûr qu'il faudra passer par là...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 09h48   #12
Invité régulier
 
Inscription : février 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 40
Points : 6
Points : 6
Citation:
Envoyé par laurentSc Voir le message
avec fwright pas étonnant, y aurait déjà plus de chance avec fwrite . Je n'ai pas de solution, mais quasi sûr qu'il faudra passer par là...
Oui, lol, effectivement, faute de frappe...
A ce moment là, peut être en 3 étapes.
Formulaire=>envoi et copie du formulaire rempli dans un fichier txt et dans l'e-mail=>redirection vers le fichier php pour affichage en ligne du résultat...
Le top serait même que le fichier txt soit envoyé en + en pièce jointe, mais là je ne rêve pas...
noviceman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 10h20   #13
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Pourquoi vouloir passer par un fichier intermédiaire ? Un mail c'est une chaîne de caractères, donc la pièce jointe aussi.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h52.


 
 
 
 
Partenaires

Hébergement Web