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éer un fichier et le remplir


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de yorukaze
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 285
    Par défaut créer un fichier et le remplir
    voila mon soucis.
    je voudrai mettre en place une plateforme pour déposer des tuto.
    Les tuto seront sur le serveur a l'adresse /tuto/tuto1.php

    pour l'instant en phase de test j'ai fait un simple formulaire avec un champ titre et un champ contenu.
    quand on valide, on exécute le script ajouter_tuto.php qui est ci dessous:
    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
    <?php
    	$titre= $_POST['titre'].'.php';
    	$donnee= $_POST['contenu'];
     
    	if (!isset($_POST['titre']))
    	{ echo 'il manque le titre';
    		if(!isset($_POST['contenu']))
    		{echo 'vous devez mettre un contenu avant de valider !';
    		}
    	}
    	else{
    	$path = "./tuto/";
    	$path_ref = "./";
    	$cf = fopen($path."$titre",'w+') or die("fichier $titre.html est inaccessible"); //on ecrit dans le fichier dans le repertoire tuto. Si le fichier existe pas, il est créé
    	$ref = fopen($path_ref."gabarit.php", 'r');
    	fwrite($cf, $ref);
    	fclose($ref);
    	fclose($cf);
    	echo 'votre tuto à bien été enregistré et va donc etre soumis a validation par nos équipes';
    	echo'<a href="/">retour à l\'acceuil du site</a>';
    	}
    ?>
    gabarit.php est une copie du gabarit de mes pages que voila :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
     
    	<title>$titre</title>
     
    	<link rel="shortcut icon" type="image/x-icon" href="/image/favicon.ico" />
    	<link rel="stylesheet" type="text/css" media="screen,projection" href="./ecran.css" />
    </head>
     
    <body>
     
    <div id="global">
    <?php
    	include("./header.html");
    ?>
    <?php
    	include("./connexion_utilisateur.html");
    ?>
     
    <?php
    	include("./menu.html");
    ?>
    	<div id="contenu">
    	<?php echo $_post['contenu']; ?>
    	<?php echo $contenu; ?>
    	</div>
     
    <?php
    	include("./footer.html");
    ?>
     
    </div>
     
    </body>
    </html>
    le but du jeu est en fait lorsque je fini de remplir mon formulaire, je le valide est ca me créer une page /tuto/$titre.php.
    cette page $titre.php est formée a partir du gabarit, dans le head, <title> est rempli avec $titre, et dans le div="contenu" on doit trouver la totalité du contenu ecrit
    Avec ma méthode, le fichier est créé sans soucis la ou il faut mais qd je l'ouvre je trouve ressource id # 4.
    voila le dilemne.

  2. #2
    Membre éclairé
    Avatar de yorukaze
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 285
    Par défaut
    en parti resolu puisque j'ai fait mon barbare.
    En argument de fwrite j'ai passé tout le texte de gabarit.
    j'ai donc :
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    	$titre= $_POST['titre'].'.php';
    	$donnee= $_POST['contenu'];
     
    	if (!isset($_POST['titre']))
    	{ echo 'il manque le titre';
    		if(!isset($_POST['contenu']))
    		{echo 'vous devez mettre un contenu avant de valider !';
    		}
    	}
    	else{
    	$path = "./tuto/";
    	$path_ref = "./";
    	$cf = fopen($path."$titre",'w+') or die("fichier $titre.html est inaccessible"); //on ecrit dans le fichier dans le repertoire tuto. Si le fichier existe pas, il est cr&eacute;;&eacute;;
    	fwrite($cf, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
    
    <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\" lang=\"fr\">
    <head>
    	<meta http-equiv=\"Content-Type\" content=\"text/html; charset=\"ISO-8859\" />
    	<title>$titre</title>
    	
    	<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/image/favicon.ico\" />
    	<link rel=\"stylesheet\" type=\"text/css\" media=\"screen,projection\" href=\"../ecran.css\" />
    </head>
    
    <body>
    
    <div id=\"global\">
    <?php
    	include(\"../header.html\");
    ?>
    <?php
    	include(\"../connexion_utilisateur.html\");
    ?>
     
    <?php
    	include(\"../menu.html\");
    ?>
    	<div id=\"contenu\">
    	<?php echo '$donnee' ?>
    	</div>
     
    <?php
    	include(\"../footer.html\");
    ?>
     
    </div>
     
    </body>
    </html>
    ");
    	fclose($cf);
    	echo 'votre tuto &agrave; bien &eacute;t&eacute; enregistr&eacute; et va donc etre soumis a validation par nos &eacute;quipes' .'<br/>';
    	echo'<a href="/index_tuto.php">retour &agrave; la page des tutoriels</a>';
    	}
    ?>
    le hic c'est que je trouve la methode trop barbare mais je sais pas faire autrement.
    Autre soucis, le texte envoyé avec la méthode POST n'apparait pas dans le fchier créé !
    Une idée?

Discussions similaires

  1. Créer un fichier Excel et le remplir depuis une table MySQL
    Par sihamnet dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 13/10/2012, 23h24
  2. Créer un fichier d'enregistrements
    Par Oregor dans le forum Langage
    Réponses: 19
    Dernier message: 02/06/2012, 21h02
  3. Réponses: 7
    Dernier message: 26/06/2003, 10h11
  4. [] [Stratégie] Comment créer un fichier log
    Par Skeezo dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 16/09/2002, 19h30
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 12h17

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