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 :

Création de fichier html pour une newsletter


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Par défaut Création de fichier html pour une newsletter
    Bonjour à tous,

    Je développe en ce moment une newsletter avec un back office de manière à la remplir facilement.

    Je me confronte à un problème au niveau de l'organisation de mon code.

    J'ai une page admin_newsletter dans laquelle les rédacteurs doivent saisir leurs textes, titres et photos. J'ai séparer chaque partie (cadre de la newsletter) dans des div, et sur ma page principale le contenu est en include dans les div correspondante. En gros ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <!--Bloc Une-->
                <div id="une">
    				<?php include "bloc/bloc_une.php"; ?>
                </div>
                <!--FIN Bloc Une-->
     
                <!--Bloc Com-->
                <div id="com">
    				<?php include "bloc/bloc_com.php"; ?>
                </div>
                <!--FIN Bloc Com-->
    L'intérieur des includes ressemble à ç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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?php if(!isset($_SESSION['titre1'])&&!isset($_SESSION['texte1'])&&!isset($_POST['photo1'])){ ?>
                        <form action="" method="post" enctype="multipart/form-data">
                          <table width="700px" border="0">
                              <tr>
                                <td width="300px" id="texte1"><h2><input name="titre1" type="text" value="" size="30" maxlength="50" /></h2>
                                    <p><textarea name="texte1" cols="50" rows="10"></textarea></p>
                                </td>
                                <td width="400px" id="image1"><input name="photo1" type="file" size="10" /></td>
                              </tr>
                              <tr>
                                <td width="300px"><input name="v1" type="submit" value="Valider" /></td>
                              </tr>
                          </table>
                        </form>
    				<?php }else{
    					$requete="SELECT * FROM cadre WHERE titre='".$_SESSION['titre1']."' AND texte='".$_SESSION['texte1']."'";
    					$lrequete=mysql_query($requete) or die(mysql_error());
     
     
    					while ($reponse = mysql_fetch_array($lrequete)){
    						$rphoto="SELECT * FROM photo WHERE id_photo='".$reponse['id_texte']."'";
    						$lrphoto=mysql_query($rphoto) or die(mysql_error());
     
    						while ($rrphoto = mysql_fetch_array($lrphoto)){
    							$image=$rrphoto['photo'];
    							$fichier=fopen("images_temp/img_tmp".$rrphoto['id_photo'].".jpg","wb");
    							fwrite($fichier,$image);
    							fclose($fichier);
     
    					?>
    							<table width="700px" border="0">
    							  <tr>
    								<td width="300px" id="texte1">
                                    	<h2><?php echo $reponse['titre']; ?></h2>
                                   		<p><?php echo $reponse['texte']; ?></p>
                                    </td>
    								<td width="400px" id="image1"> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <?php echo "<img src=images_temp/img_tmp".$reponse['id_texte'].".jpg WIDTH=350 HEIGHT=150 />" ?></p></td>
    							  </tr>
    						  </table>
     
     
    				<?php 		
    						}
    					}
    				} 
    				?>

    Chaque cadre est donc indépendant dans autres, c'est à dire que le rédacteur rempli le cadre 1, il valide et le contenu remplace le formulaire. Et ainsi de suite pour les autres cadres. De manière à laisser l'affichage des cadres à chaque validation j'ai utiliser des variables de SESSION.

    Le problème qui se pose c'est que lorsque je vais envoyer ma newsletter, chez le destinataire les variables de SESSION seront vides, donc rien ne s'affichera.

    Je pensais donc créer un fichier .html lorsque le rédacteur cliquera sur un bouton aperçu par exemple, et ensuite envoyer ce fichier par mail. Sauf que je ne sais pas comment récupérer mon contenu pour l'écrire dans le nouveau fichier.


    Je ne sais pas si c'est très clair mais je suis un peu pommé dans mon organisation. Donc merci d'avance pour vos réponses.


    Welden

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    e problème qui se pose c'est que lorsque je vais envoyer ma newsletter, chez le destinataire les variables de SESSION seront vides, donc rien ne s'affichera.
    Lorsque tu envoie ta newsletter, tu envoie un document HTML généré par PHP, tu n'envoie pas du code qui devra être interprêté par le destinataire donc aucun souci si tu veux utiliser les sessions et afficher leur valeur.

    Ou alors je n'ai pas compris ta demande

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Par défaut
    Merci de répondre si vite.

    En faite ça répond en partie à ma question. Ce qui faudrait maintenant c'est que je puisse générer un fichier html avec le contenu dedans.

    Je me sers des fonction fopen, fputs, etc... Ca marche mais je n'arrive à copier que la première ligne ma boucle doit être mal construite je pense, mais c'est la deuxième fois que j'utilise les fichiers donc je galère un peu.

    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 if(isset($_GET['apercu'])&&$_GET['apercu']="Prévisualisation"){
     
    	$page_contenu=fopen("admin_newsletter_blob.php","r");
    	$newsletter=fopen("newsletter.html","w+");
     
     
    	$i=1;
    	fseek($page_contenu, 0);
    	while($i>0){
    		$contenu=fgets($page_contenu);
    		fseek($page_contenu, $i);
    		if(empty($contenu)){
    			$i=0;
    		}else{
    			$contenu.=fgets($page_contenu);
    			$i++;
    		}
    	}
    	fputs($newsletter, $contenu);
     
    	fclose($newsletter);
     
    } ?>
    Ce qu'il faudrait c'est qu'il me lise ligne par ligne et les rentre au fur et à mesure dans mon fichier.


    Autre question, si je procède de cette manière est-ce qu'il va m'écrire dans mon nouveau fichier les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include "monfichier.php"; ?>
    Ou va t'il l'interpréter et m'écrire le contenu de monfichier.php ?


    Welden

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Oui tu peux l'enregistrer au format HTML avec les fonction fwrite / fopen.

    Sinon tu peux aussi directement envoyer ton flux HTML sans le générer dans un fichier.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    J'ai eu à faire ce genre de chose, et j'ai procédé de la manière suivante : j'ai créé une page php normale (blanche), dont voici grosso-modo le schéma :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php
      //------------------------------------------------------------------
      //-- récupération des variables dont j'ai besoin dans la page ------
      //------------------------------------------------------------------
     
      //------------------------------------------------------------------
      //-- cette fonction va bufferisé la page générée -------------------
      //-- sans l'envoyer au navigateur ----------------------------------
      //-- ensuite, voir le bas de page ----------------------------------
      //------------------------------------------------------------------
      ob_start();
    ?>
    <html>
      <head>
      </head>
      <body>
        <?php //--- inclusion des variables récupérées ci-dessus -- ?>
      </body>
    </html>
    <?php
      //------------------------------------------------------------------
      //-- cette fonction affecte à une variable le contenu du buffer ----
      //------------------------------------------------------------------
      $html = ob_get_contents();
     
      //------------------------------------------------------------------
      //-- cette fonction termine la bufferisation et vide le buffer -----
      //------------------------------------------------------------------
      ob_end_clean();
     
      //------------------------------------------------------------------
      //-- enfin, écriture du contenu de la variable dans un fichier -----
      //------------------------------------------------------------------
      $fichier = 'fichier.htm';
      file_put_contents($fichier, $html);
    ?>
    Voilà. A toi de peaufiner en fonction de tes besoins et impératifs.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Par défaut
    Merci pour vos réponse.

    Avec la fonction fwrite j'avais une erreur sql dans mon nouveau fichier : "Ressource id#3" (ou un truc du genre).

    Après j'ai commencé à fouiller du côté des buffer (que je n'ai jamais utiliser). J'ai regardé à quoi servaient les fonctions et essayé de les utiliser. Je pense les avoir compris, j'ai bien dit je pense, mais je ne sais pas comment envoyer mes variables dans ma page étant donné que je dois récupérer du contenu php et html. En même temps j'ai passé ma journée dessus donc je dois pas avoir les idées bien clair.
    J'essayerai de regarder tout ça demain mais un petit conseil sur la manière de faire est toujours bienvenue


    Welden

Discussions similaires

  1. Récupérer un fichier html pour changer une div de la page en cours
    Par 69Pierre dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 24/04/2015, 21h16
  2. une graphiste print galère pour une newsletter html
    Par liloo220286 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 03/03/2008, 16h41
  3. Réponses: 3
    Dernier message: 16/02/2006, 12h52
  4. importer les noms de fichiers html dans une table access
    Par abane badis dans le forum Access
    Réponses: 3
    Dernier message: 14/11/2005, 17h25
  5. [débutant]ou mettre un fichier java pour une appli jsp?
    Par zozolh2 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/05/2004, 15h20

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