IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Probleme avec la fonction copy...


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  2. #2
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    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 ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Par défaut
    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...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    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 )).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Par défaut
    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...

  7. #7
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    à 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)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  9. #9
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Pour ton information, j'ai testé ce code-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ( )

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Par défaut
    En fait, cela fonctionne comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...)

  11. #11
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    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à...

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Par défaut
    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...

  13. #13
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Pourquoi vouloir passer par un fichier intermédiaire ? Un mail c'est une chaîne de caractères, donc la pièce jointe aussi.

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/08/2006, 10h55
  2. [LG] Problème avec la Fonction ReadLn en fin de programme
    Par killermano dans le forum Langage
    Réponses: 6
    Dernier message: 23/07/2005, 15h16
  3. Réponses: 16
    Dernier message: 21/02/2005, 17h20
  4. [LG]Probleme avec une fonction
    Par xavier1936 dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2005, 22h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo